Go 1.24 released with new features including generic type aliases and enhanced toolchain
Go (Programming Language) has unveiled version 1.24. This latest update prioritizes improvements to the toolchain, runtime, and libraries, maintaining backward compatibility. A significant addition is the complete support for generic type aliases, which can be parameterized like defined types. Although users can currently disable this feature using GOEXPERIMENT=noaliastypeparams, it will become a permanent fixture in Go 1.25.
The update also introduces tool directives in Go modules, enabling go.mod files to track executable dependencies without blank imports, and a new -tool flag for go get that simplifies tool management. Enhancements in this release include improved caching of executables, with go run and go tool now storing executables in the Go build cache for better performance. The go build and go install commands now support a -json flag for structured JSON output. For private modules, the GOAUTH environment variable provides versatile authentication, and version control metadata is embedded in compiled binaries by default.
Additional improvements encompass expanded disassembly support in objdump, a new vet analyzer for test declaration errors, stricter printf checks, and optimized runtime performance, achieving a 2-3% reduction in CPU overhead. The release also includes stricter cgo method definitions and linker enhancements, with an updated bootstrap requirement to Go 1.22.6 or later. You can see all the changes in detail in the release notes.