Go 1.26 is released
Source: Go Blog
Today the Go team is pleased to release Go 1.26.
You can find its binary archives and installers on the download page.
Language changes
Go 1.26 introduces two significant refinements to the language syntax and type system.
-
The built‑in
newfunction, which creates a new variable, now allows its operand to be an expression, specifying the initial value of the variable.x := int64(300) ptr := &xcan be simplified to:
ptr := new(int64(300)) -
Generic types may now refer to themselves in their own type‑parameter list. This change simplifies the implementation of complex data structures and interfaces.
Performance improvements
- The previously experimental Green Tea garbage collector is now enabled by default.
- The baseline cgo overhead has been reduced by approximately 30 %.
- The compiler can now allocate the backing store for slices on the stack in more situations, improving performance.
Tool improvements
The go fix command has been completely rewritten to use the
Go analysis framework and now includes a
couple dozen “modernizers”, analyzers
that suggest safe fixes to help your code take advantage of newer language and standard‑library features.
It also includes the
inline analyzer, which
attempts to inline all calls to each function annotated with a //go:fix inline directive.
Two upcoming blog posts will address these features in more detail.
More improvements and changes
Go 1.26 introduces many improvements over Go 1.25 across its
tools, the runtime,
compiler, linker,
and the standard library.
This includes the addition of three new packages:
There are also port‑specific changes and
GODEBUG settings updates.
Experimental additions
- An experimental
simd/archsimdpackage provides access to “single instruction, multiple data” (SIMD) operations. - An experimental
runtime/secretpackage offers a facility for securely erasing temporaries used in code that manipulates secret information, typically cryptographic in nature. - An experimental
goroutineleakprofile in theruntime/pprofpackage reports leaked goroutines.
These experiments are expected to become generally available in a future Go version. We encourage you to try them out and provide feedback.
Please refer to the Go 1.26 Release Notes for the complete list of additions, changes, and improvements. Over the next few weeks, follow‑up blog posts will cover some of the topics in more detail. Thanks to everyone who contributed by writing code, filing bugs, testing release candidates, and sharing feedback. If you notice any problems, please file an issue.
We hope you enjoy using the new release!