support ABI0 and ABIInternal
-
ABI0 stack-based ABI
-
ABIInternal register-based Go calling convention proposal
- Go1.17: amd64
- Go1.18: amd64 arm64 ppc64/ppc64le
- Go1.18 type parameters
- Go1.18 fuzzing
go get -u github.com/goplus/gossa/cmd/gossa
Commands
gossa run # interpret package
gossa test # test package
run go source
package main
import (
"github.com/goplus/gossa"
_ "github.com/goplus/gossa/pkg/fmt"
)
var source = `
package main
import "fmt"
func main() {
fmt.Println("hello")
}
`
func main() {
_, err := gossa.RunFile("main.go", source, nil, 0)
if err != nil {
panic(err)
}
}
run gop source
package main
import (
"github.com/goplus/gossa"
_ "github.com/goplus/gossa/gopbuild"
_ "github.com/goplus/gossa/pkg/fmt"
)
var source = `
println "Hello, Go+"
`
func main() {
_, err := gossa.RunFile("main.gop", source, nil, 0)
if err != nil {
panic(err)
}
}