diff options
| author | Carlos Amedee <carlos@golang.org> | 2026-02-04 11:43:59 -0500 |
|---|---|---|
| committer | Junyang Shao <shaojunyang@google.com> | 2026-02-10 11:57:30 -0800 |
| commit | 7a7f59d531aa75c41fc908545dc24623610b1ba6 (patch) | |
| tree | 1b00b68a4accb38954eb5e8e958a20ef58271a30 | |
| parent | eb9efb930efa9971d3a9a76f0c06bc7b853f1c30 (diff) | |
| download | go-x-website-7a7f59d531aa75c41fc908545dc24623610b1ba6.tar.xz | |
_content/blog: add Go 1.26 release post
This post attempts to highlight some of the more exciting changes in
the release while also not discouraging the reader from reading the
release notes.
Change-Id: I71e3e7fa18b480d216444d6a637a794225f9ee8a
Reviewed-on: https://go-review.googlesource.com/c/website/+/741980
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
| -rw-r--r-- | _content/blog/go1.26.md | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/_content/blog/go1.26.md b/_content/blog/go1.26.md new file mode 100644 index 00000000..f8475957 --- /dev/null +++ b/_content/blog/go1.26.md @@ -0,0 +1,98 @@ +--- +title: Go 1.26 is released +date: 2026-02-10 +by: +- Carlos Amedee, on behalf of the Go team +summary: Go 1.26 adds a new garbage collector, cgo overhead reduction, experimental simd/archsimd package, experimental runtime/secret package, and more. +--- + +Today the Go team is pleased to release Go 1.26. +You can find its binary archives and installers on the [download page](/dl/). + +## Language changes + +Go 1.26 introduces two significant refinements to the language +[syntax and type system](/doc/go1.26#language). + +First, the built-in `new` function, which creates a new variable, now allows its operand to be an +expression, specifying the initial value of the variable. + +A simple example of this change means that code such as this: + +```go +x := int64(300) +ptr := &x +``` + +Can be simplified to: + +```go +ptr := new(int64(300)) +``` + +Second, 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](/doc/go1.26#new-garbage-collector) +is now enabled by default. + +The baseline [cgo overhead has been reduced](/doc/go1.26#faster-cgo-calls) +by approximately 30%. + +The compiler can now [allocate the backing store](/doc/go1.26#compiler) for +slices on the stack in more situations, which improves performance. + +## Tool improvements + +The `go fix` command has been completely rewritten to use the +[Go analysis framework](/pkg/golang.org/x/tools/go/analysis), and now includes a +couple dozen "[modernizers](/pkg/golang.org/x/tools/go/analysis/passes/modernize)", analyzers +that suggest safe fixes to help your code take advantage of newer features of the language +and standard library. It also includes the +[`inline` analyzer](/pkg/golang.org/x/tools/go/analysis/passes/inline#hdr-Analyzer_inline), 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](/doc/go1.26#tools), the [runtime](/doc/go1.26#runtime), +[compiler](/doc/go1.26#compiler), [linker](/doc/go1.26#linker), +and the [standard library](/doc/go1.26#library). +This includes the addition of three new packages: [`crypto/hpke`](/doc/go1.26#new-cryptohpke-package), +[`crypto/mlkem/mlkemtest`](/doc/go1.26#cryptomlkempkgcryptomlkem), and +[`testing/cryptotest`](/doc/go1.26#testingcryptotestpkgtestingcryptotest). +There are [port-specific](/doc/go1.26#ports) changes +and [`GODEBUG` settings](/doc/godebug#go-126) updates. + +Some of the additions in Go 1.26 are in an experimental stage +and become exposed only when you explicitly opt in. Notably: + +- An [experimental `simd/archsimd` package](/doc/go1.26#simd) provides access to "single instruction, +multiple data" (SIMD) operations. + +- An [experimental `runtime/secret` package](/doc/go1.26#new-experimental-runtimesecret-package) provides +a facility for securely erasing temporaries used in code that manipulates secret +information, typically cryptographic in nature. + +- An [experimental `goroutineleak` profile](/doc/go1.26#goroutineleak-profiles) +in the `runtime/pprof` package that reports leaked goroutines. + +These experiments are all expected to be generally available in a +future version of Go. We encourage you to try them out ahead of time. +We really value your feedback! + +Please refer to the [Go 1.26 Release Notes](/doc/go1.26) for the complete list +of additions, changes, and improvements in Go 1.26. + +Over the next few weeks, follow-up blog posts will cover some of the topics +relevant to Go 1.26 in more detail. Check back later to read those posts. + +Thanks to everyone who contributed to this release by writing code, filing bugs, +trying out experimental additions, sharing feedback, and testing the release candidates. +Your efforts helped make Go 1.26 as stable as possible. +As always, if you notice any problems, please [file an issue](/issue/new). + +We hope you enjoy using the new release! |
