Go 1.24 Release Notes
Go 1.24, released on November 5, 2025, introduces several significant enhancements, including the new range over integers feature, stable support for min/max built-in functions, and improved performance across the toolchain. This version continues the six-month release cycle, with contributions from over 1,800 individual changes by 610 contributors.
Go 1.24 requires a 64-bit architecture and supports Linux kernels 3.10 and later. It maintains backward compatibility while delivering up to 1.5% faster execution on the Go 1 billion benchmarks compared to Go 1.23.
Range over Integers
The most notable addition is range over integers (proposal #62217), allowing iteration over integer ranges directly:
sum := 0
for i := range 10 {
sum += i
}
This expands to for i := 0; i < 10; i++, but supports any integer type and optional lower bound:
for i := range 1..=10 {
// i from 1 to 10
}
It also works with byte slices for efficient string processing, improving readability and performance in loops.
Stable min/max Built-ins
The min and max built-in functions, experimental in Go 1.23, are now stable and no longer require the GOEXPERIMENT=rangefunc flag. They work with any ordered types:
a := min(3, 7) // int
b := max("cat", "dog") // string
Performance Improvements
The compiler generates up to 2% better code due to refined bounds check elimination. The race detector is 1.3% faster, and fuzzing sees a 5% speedup.
Runtime enhancements include faster string([]byte) conversions (up to 4x in some cases) and improved map iteration consistency.
| Benchmark | Go 1.23 | Go 1.24 | Delta |
|---|---|---|---|
| Game of Life | 100% | 102.1% | +2.1% |
| Binary Trees | 100% | 101.7% | +1.7% |
| Go 1 Billion | 100% | 101.5% | +1.5% |
Toolchain Changes
go test now supports -bench with -short, running only short-mode benchmarks. go mod tidy handles workspace mode better.
The go command adds go help documentation for module documentation. Vetting improvements detect more subtle errors.
Runtime and Library Changes
The race detector supports setuid binaries on Linux and detects more data races. net/http adds Trailer support in responses.
sync.OnceValue and sync.OnceValues are new for lazy initialization. time package adds Location methods for offset queries.
crypto/ecdh is standardized, and slices/maps gain Compact functions.
Platform Support Changes
Added experimental support for Windows on ARM64. Linux/Loong64 is now tier 2. Removed support for Linux/386 with glibc older than 2.16.
FreeBSD/arm64 is now a fully supported port.
Deprecations and Removals
The GOEXPERIMENT options fieldtrack and osusergo_osuseruser are removed. runtime/metrics histogram buckets are standardized.
Migration and Support
Go 1.24 maintains compatibility with Go 1.23 source code. Update using go get or download binaries from go.dev/dl.
Full support until May 2026. Security fixes continue beyond.