From 5a347b775e051060f6f52ce25ec82a024a3a9365 Mon Sep 17 00:00:00 2001 From: thepudds Date: Wed, 12 Nov 2025 20:50:39 -0500 Subject: [PATCH] runtime: set GOEXPERIMENT=runtimefreegc to disabled by default This CL is part of a set of CLs that attempt to reduce how much work the GC must do. See the design in https://go.dev/design/74299-runtime-freegc The plan has been for GOEXPERIMENT=runtimefreegc to be disabled by default for Go 1.26, so here we disable it. Also, we update the name of the GOEXPERIMENT to reflect the latest name. Updates #74299 Change-Id: I94a34784700152e13ca93ef6711ee9b7f1769d9a Reviewed-on: https://go-review.googlesource.com/c/go/+/720120 Reviewed-by: Junyang Shao LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Knyszek --- src/internal/buildcfg/exp.go | 1 - src/internal/goexperiment/exp_runtimefree_off.go | 8 -------- src/internal/goexperiment/exp_runtimefree_on.go | 8 -------- src/internal/goexperiment/exp_runtimefreegc_off.go | 8 ++++++++ src/internal/goexperiment/exp_runtimefreegc_on.go | 8 ++++++++ src/internal/goexperiment/flags.go | 4 ++-- 6 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 src/internal/goexperiment/exp_runtimefree_off.go delete mode 100644 src/internal/goexperiment/exp_runtimefree_on.go create mode 100644 src/internal/goexperiment/exp_runtimefreegc_off.go create mode 100644 src/internal/goexperiment/exp_runtimefreegc_on.go diff --git a/src/internal/buildcfg/exp.go b/src/internal/buildcfg/exp.go index 31195f94c0..f1a1d8632e 100644 --- a/src/internal/buildcfg/exp.go +++ b/src/internal/buildcfg/exp.go @@ -83,7 +83,6 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (*ExperimentFlags, error) { RegabiArgs: regabiSupported, Dwarf5: dwarf5Supported, RandomizedHeapBase64: true, - RuntimeFree: true, SizeSpecializedMalloc: true, GreenTeaGC: true, } diff --git a/src/internal/goexperiment/exp_runtimefree_off.go b/src/internal/goexperiment/exp_runtimefree_off.go deleted file mode 100644 index 3affe434f2..0000000000 --- a/src/internal/goexperiment/exp_runtimefree_off.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build !goexperiment.runtimefree - -package goexperiment - -const RuntimeFree = false -const RuntimeFreeInt = 0 diff --git a/src/internal/goexperiment/exp_runtimefree_on.go b/src/internal/goexperiment/exp_runtimefree_on.go deleted file mode 100644 index 176278b542..0000000000 --- a/src/internal/goexperiment/exp_runtimefree_on.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build goexperiment.runtimefree - -package goexperiment - -const RuntimeFree = true -const RuntimeFreeInt = 1 diff --git a/src/internal/goexperiment/exp_runtimefreegc_off.go b/src/internal/goexperiment/exp_runtimefreegc_off.go new file mode 100644 index 0000000000..195f031b0b --- /dev/null +++ b/src/internal/goexperiment/exp_runtimefreegc_off.go @@ -0,0 +1,8 @@ +// Code generated by mkconsts.go. DO NOT EDIT. + +//go:build !goexperiment.runtimefreegc + +package goexperiment + +const RuntimeFreegc = false +const RuntimeFreegcInt = 0 diff --git a/src/internal/goexperiment/exp_runtimefreegc_on.go b/src/internal/goexperiment/exp_runtimefreegc_on.go new file mode 100644 index 0000000000..2afe0558ec --- /dev/null +++ b/src/internal/goexperiment/exp_runtimefreegc_on.go @@ -0,0 +1,8 @@ +// Code generated by mkconsts.go. DO NOT EDIT. + +//go:build goexperiment.runtimefreegc + +package goexperiment + +const RuntimeFreegc = true +const RuntimeFreegcInt = 1 diff --git a/src/internal/goexperiment/flags.go b/src/internal/goexperiment/flags.go index b3a3c8a497..957c41c0f5 100644 --- a/src/internal/goexperiment/flags.go +++ b/src/internal/goexperiment/flags.go @@ -113,8 +113,8 @@ type Flags struct { // platforms. RandomizedHeapBase64 bool - // RuntimeFree enables the runtime to free and reuse memory more eagerly in some circumstances with compiler help. - RuntimeFree bool + // RuntimeFreegc enables the runtime to free and reuse memory more eagerly in some circumstances with compiler help. + RuntimeFreegc bool // SizeSpecializedMalloc enables malloc implementations that are specialized per size class. SizeSpecializedMalloc bool -- 2.52.0