Conflicts:
- src/cmd/compile/internal/walk/builtin.go
On dev.typeparams, CL 330194 changed OCHECKNIL to not require manual
SetTypecheck(1) anymore; while on master, CL 331070 got rid of the
OCHECKNIL altogether by moving the check into the runtime support
functions.
- src/internal/buildcfg/exp.go
On master, CL 331109 refactored the logic for parsing the
GOEXPERIMENT string, so that it could be more easily reused by
cmd/go; while on dev.typeparams, several CLs tweaked the regabi
experiment defaults.
Merge List:
+ 2021-06-30
4711bf30e5 doc/go1.17: linkify "language changes" in the runtime section
+ 2021-06-30
ed56ea73e8 path/filepath: deflake TestEvalSymlinksAboveRoot on darwin
+ 2021-06-30
c080d0323b cmd/dist: pass -Wno-unknown-warning-option in swig_callback_lto
+ 2021-06-30
7d0e9e6e74 image/gif: fix typo in the comment (io.ReadByte -> io.ByteReader)
+ 2021-06-30
0fa3265fe1 os: change example to avoid deprecated function
+ 2021-06-30
d19a53338f image: add Uniform.RGBA64At and Rectangle.RGBA64At
+ 2021-06-30
c45e800e0c crypto/x509: don't fail on optional auth key id fields
+ 2021-06-29
f9d50953b9 net: fix failure of TestCVE202133195
+ 2021-06-29
e294b8a49e doc/go1.17: fix typo "MacOS" -> "macOS"
+ 2021-06-29
3463852b76 math/big: fix typo of comment (`BytesScanner` to `ByteScanner`)
+ 2021-06-29
fd4b587da3 cmd/compile: suppress details error for invalid variadic argument type
+ 2021-06-29
e2e05af6e1 cmd/internal/obj/arm64: fix an encoding error of CMPW instruction
+ 2021-06-28
4bb0847b08 cmd/compile,runtime: change unsafe.Slice((*T)(nil), 0) to return []T(nil)
+ 2021-06-28
1519271a93 spec: change unsafe.Slice((*T)(nil), 0) to return []T(nil)
+ 2021-06-28
5385e2386b runtime/internal/atomic: drop Cas64 pointer indirection in comments
+ 2021-06-28
956c81bfe6 cmd/go: add GOEXPERIMENT to `go env` output
+ 2021-06-28
a1d27269d6 cmd/go: prep for 'go env' refactoring
+ 2021-06-28
901510ed4e cmd/link/internal/ld: skip the windows ASLR test when CGO_ENABLED=0
+ 2021-06-28
361159c055 cmd/cgo: fix 'see gmp.go' to 'see doc.go'
+ 2021-06-27
c95464f0ea internal/buildcfg: refactor GOEXPERIMENT parsing code somewhat
+ 2021-06-25
ed01ceaf48 runtime/race: use race build tag on syso_test.go
+ 2021-06-25
d1916e5e84 go/types: in TestCheck/issues.src, import regexp/syntax instead of cmd/compile/internal/syntax
+ 2021-06-25
5160896c69 go/types: in TestStdlib, import from source instead of export data
+ 2021-06-25
d01bc571f7 runtime: make ncgocall a global counter
Change-Id: I1ce4a3b3ff7c824c67ad66dd27d9d5f1d25c0023
// Note: must agree with runtime.framepointer_enabled.
var FramePointerEnabled = GOARCH == "amd64" || GOARCH == "arm64"
- func parseExperiments(goarch string) goexperiment.Flags {
+ // ParseGOEXPERIMENT parses a (GOOS, GOARCH, GOEXPERIMENT)
+ // configuration tuple and returns the enabled and baseline experiment
+ // flag sets.
+ //
+ // TODO(mdempsky): Move to internal/goexperiment.
+ func ParseGOEXPERIMENT(goos, goarch, goexp string) (flags, baseline goexperiment.Flags, err error) {
- regabiSupported := goarch == "amd64" && (goos == "android" || goos == "linux" || goos == "darwin" || goos == "windows")
++ regabiSupported := goarch == "amd64" || goarch == "arm64"
+
+ baseline = goexperiment.Flags{
+ RegabiWrappers: regabiSupported,
- RegabiG: regabiSupported,
+ RegabiReflect: regabiSupported,
- RegabiDefer: regabiSupported,
+ RegabiArgs: regabiSupported,
+ }
+
// Start with the statically enabled set of experiments.
- flags := experimentBaseline
+ flags = baseline
// Pick up any changes to the baseline configuration from the
// GOEXPERIMENT environment. This can be set at make.bash time
flags.RegabiArgs = false
}
// Check regabi dependencies.
- if flags.RegabiG && !flags.RegabiWrappers {
- err = fmt.Errorf("GOEXPERIMENT regabig requires regabiwrappers")
- }
- if flags.RegabiArgs && !(flags.RegabiWrappers && flags.RegabiG && flags.RegabiReflect && flags.RegabiDefer) {
- err = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers,regabig,regabireflect,regabidefer")
+ if flags.RegabiArgs && !(flags.RegabiWrappers && flags.RegabiReflect) {
- Error = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers,regabireflect")
++ err = fmt.Errorf("GOEXPERIMENT regabiargs requires regabiwrappers,regabireflect")
}
- return flags
+ return
}
// expList returns the list of lower-cased experiment names for