diff options
| author | Junyang Shao <shaojunyang@google.com> | 2025-01-27 17:44:44 +0000 |
|---|---|---|
| committer | Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2025-02-11 11:14:30 -0800 |
| commit | 7512f72bc91728411e0b5cf4a850e0c1dbb7144a (patch) | |
| tree | 9249ab5a9e6152646492f485bbebf645b1b6b8ae | |
| parent | 83dcf2eafae84fedd44f5a38d5634ea99b4504c4 (diff) | |
| download | go-x-website-7512f72bc91728411e0b5cf4a850e0c1dbb7144a.tar.xz | |
_content/blog: 1.24 release blog
Change-Id: Iccfad311a4ce034ee84482bc5dbac21eb3b8c3b6
Reviewed-on: https://go-review.googlesource.com/c/website/+/644755
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Commit-Queue: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
| -rw-r--r-- | _content/blog/go1.24.md | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/_content/blog/go1.24.md b/_content/blog/go1.24.md new file mode 100644 index 00000000..51b6847c --- /dev/null +++ b/_content/blog/go1.24.md @@ -0,0 +1,94 @@ +--- +title: Go 1.24 is released! +date: 2025-02-11 +by: +- Junyang Shao, on behalf of the Go team +summary: + Go 1.24 brings generic type aliases, map performance improvements, FIPS 140 + compliance and more. +--- + +Today the Go team is excited to release Go 1.24, +which you can get by visiting the [download page](/dl/). + +Go 1.24 comes with many improvements over Go 1.23. Here are some of the notable +changes; for the full list, refer to the [release notes](/doc/go1.24). + +## Language changes + +<!-- go.dev/issue/46477 --> +Go 1.24 now fully supports [generic type aliases](/issue/46477): a type alias +may be parameterized like a defined type. +See the [language spec](/ref/spec#Alias_declarations) for details. + +## Performance improvements + +<!-- go.dev/issue/54766, go.dev/cl/614795, go.dev/issue/68578 --> +Several performance improvements in the runtime have decreased CPU overhead +by 2–3% on average across a suite of representative benchmarks. These +improvements include a new builtin `map` implementation based on +[Swiss Tables](https://abseil.io/about/design/swisstables), more efficient +memory allocation of small objects, and a new runtime-internal mutex +implementation. + +## Tool improvements + +- <!-- go.dev/issue/48429 --> + The `go` command now provides a mechanism for tracking tool dependencies for a + module. Use `go get -tool` to add a `tool` directive to the current module. Use + `go tool [tool name]` to run the tools declared with the `tool` directive. + Read more on the [go command](/doc/go1.24#go-command) in the release notes. +- <!-- go.dev/issue/44251 --> + The new `test` analyzer in `go vet` subcommand reports common mistakes in + declarations of tests, fuzzers, benchmarks, and examples in test packages. + Read more on [vet](/doc/go1.24#vet) in the release notes. + +## Standard library additions + +- The standard library now includes [a new set of mechanisms to facilitate + FIPS 140-3 compliance](/doc/security/fips140). Applications require no source code + changes to use the new mechanisms for approved algorithms. Read more + on [FIPS 140-3 compliance](/doc/go1.24#fips140) in the release notes. + Apart from FIPS 140, several packages that were previously in the + [x/crypto](/pkg/golang.org/x/crypto) module are now available in the + [standard library](/doc/go1.24#crypto-mlkem). + +- Benchmarks may now use the faster and less error-prone + [`testing.B.Loop`](/pkg/testing#B.Loop) method to perform benchmark iterations + like `for b.Loop() { ... }` in place of the typical loop structures involving + `b.N` like `for range b.N`. Read more on + [the new benchmark function](/doc/go1.24#new-benchmark-function) in the + release notes. + +- The new [`os.Root`](/pkg/os#Root) type provides the ability to perform + filesystem operations isolated under a specific directory. Read more on + [filesystem access](/doc/go1.24#directory-limited-filesystem-access) in the + release notes. + +- The runtime provides a new finalization mechanism, + [`runtime.AddCleanup`](/pkg/runtime#AddCleanup), that is more flexible, + more efficient, and less error-prone than + [`runtime.SetFinalizer`](/pkg/runtime#SetFinalizer). Read more on + [cleanups](/doc/go1.24#improved-finalizers) in the release notes. + +## Improved WebAssembly support + +<!-- go.dev/issue/65199, CL 603055 --> +Go 1.24 adds a new `go:wasmexport` directive for Go programs to export +functions to the WebAssembly host, and supports building a Go program as a WASI +[reactor/library](https://github.com/WebAssembly/WASI/blob/63a46f61052a21bfab75a76558485cf097c0dbba/legacy/application-abi.md#current-unstable-abi). +Read more on [WebAssembly](/doc/go1.24#wasm) in the release notes. + +--- + + +Please read the [Go 1.24 release notes](/doc/go1.24) for the complete and +detailed information. Don't forget to watch for follow-up blog posts that +will go in more depth on some of the topics mentioned here! + +Thank you to everyone who contributed to this release by writing code and +documentation, reporting bugs, sharing feedback, and testing the release +candidates. Your efforts helped to ensure that Go 1.24 is as stable as possible. +As always, if you notice any problems, please [file an issue](/issue/new). + +Enjoy Go 1.24! |
