mirror of
https://github.com/golang/go
synced 2024-11-19 00:54:42 -07:00
e779aa49e3
The go/ssa/interp tests have been a maintenance nightmare for years because the interpreter requires intrinsics for all low-level or non-Go code functions, and the set of such functions in the standard library naturally changes from day to day. This CL finally drops support for interpreting real packages (which has anyway been broken for ages) and restricts the test suite to small programs that use a handful of simple functions in packages bytes, strings, errors, runtime, reflect, and unicode. These functions are declared in a tiny fake standard libary in testdata/src, and the implementations of these functions are provided by interpreter intrinsics that delegate to the real Go implementation---all their parameters and results are basic datatypes. The test suite is now very fast and should be easy to maintain going forward. It is still possible that a change to some file in $GOROOT/test/*.go adds a dependency to a symbol not present in our standard library, but this is rare. I will either delete the test or add the intrinsic on a case-by-case basis. We no longer attempt to interpret major functionality like fmt.Sprintf or "testing". The interpreter always pretends to be in linux/amd64 mode. Happy Christmas, Brad. ;) Fixes golang/go#27292 Change-Id: I715cf63e3534e2e0dab4666a5d7c669bf1d92674 Reviewed-on: https://go-review.googlesource.com/c/tools/+/168898 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> |
||
---|---|---|
.. | ||
analysis | ||
ast | ||
buildutil | ||
callgraph | ||
cfg | ||
expect | ||
gccgoexportdata | ||
gcexportdata | ||
internal | ||
loader | ||
packages | ||
pointer | ||
ssa | ||
types | ||
vcs |