# Copyright 2012 The Go Authors.  All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# These function names are also known to
# (and are the plan for transitioning to) run.go.

compile() {
	$G $D/$F.go
}

build() {
	$G $D/$F.go && $L $F.$A
}

run() {
	$G $D/$F.go && $L $F.$A && ./$A.out "$@"
}

cmpout() {
	$G $D/$F.go && $L $F.$A && ./$A.out 2>&1 | cmp - $D/$F.out
}

errorcheck() {
	errchk $G -e $D/$F.go
}
