internal/goexperiment: move baseline configuration to objabi

We need to adjust baseline experiment configuration based on the
configured GOOS and GOARCH, so it can't live in goexperiment. Move it
to objabi.

Change-Id: I65f4ce56902c6c1a82735050773c58f2d1320cc6
Reviewed-on: https://go-review.googlesource.com/c/go/+/310169
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
Austin Clements 2021-04-14 12:35:00 -04:00 committed by Russ Cox
parent f08c552dab
commit cf2396c70e
2 changed files with 10 additions and 7 deletions

View file

@ -20,6 +20,11 @@ import (
// was built with.) // was built with.)
var Experiment goexperiment.Flags = parseExperiments() var Experiment goexperiment.Flags = parseExperiments()
// experimentBaseline specifies the experiment flags that are enabled by
// default in the current toolchain. This is, in effect, the "control"
// configuration and any variation from this is an experiment.
var experimentBaseline goexperiment.Flags
// FramePointerEnabled enables the use of platform conventions for // FramePointerEnabled enables the use of platform conventions for
// saving frame pointers. // saving frame pointers.
// //
@ -31,7 +36,7 @@ var FramePointerEnabled = GOARCH == "amd64" || GOARCH == "arm64"
func parseExperiments() goexperiment.Flags { func parseExperiments() goexperiment.Flags {
// Start with the statically enabled set of experiments. // Start with the statically enabled set of experiments.
flags := goexperiment.BaselineFlags flags := experimentBaseline
// Pick up any changes to the baseline configuration from the // Pick up any changes to the baseline configuration from the
// GOEXPERIMENT environment. This can be set at make.bash time // GOEXPERIMENT environment. This can be set at make.bash time
@ -135,7 +140,7 @@ func expList(exp, base *goexperiment.Flags) []string {
// GOEXPERIMENT is exactly what a user would set on the command line // GOEXPERIMENT is exactly what a user would set on the command line
// to get the set of enabled experiments. // to get the set of enabled experiments.
func GOEXPERIMENT() string { func GOEXPERIMENT() string {
return strings.Join(expList(&Experiment, &goexperiment.BaselineFlags), ",") return strings.Join(expList(&Experiment, &experimentBaseline), ",")
} }
// EnabledExperiments returns a list of enabled experiments, as // EnabledExperiments returns a list of enabled experiments, as

View file

@ -41,6 +41,9 @@ package goexperiment
// When specified in the GOEXPERIMENT environment variable or as build // When specified in the GOEXPERIMENT environment variable or as build
// tags, experiments use the strings.ToLower of their field name. // tags, experiments use the strings.ToLower of their field name.
// //
// For the baseline experimental configuration, see
// objabi.experimentBaseline.
//
// If you change this struct definition, run "go generate". // If you change this struct definition, run "go generate".
type Flags struct { type Flags struct {
FieldTrack bool FieldTrack bool
@ -78,8 +81,3 @@ type Flags struct {
// register arguments to defer/go). // register arguments to defer/go).
RegabiArgs bool RegabiArgs bool
} }
// BaselineFlags specifies the experiment flags that are enabled by
// default in the current toolchain. This is, in effect, the "control"
// configuration and any variation from this is an experiment.
var BaselineFlags = Flags{}