- 言語の変更点
- Go 1.24 は、ジェネリック型エイリアスを完全にサポートするようになった。型エイリアスは、定義済みの型のように型パラメータを受け取れる。
- 性能改善
- ランタイムで複数の性能改善が行われ、代表的なベンチマークで平均 2〜3% の CPU オーバーヘッド削減を実現。
- 新しい組み込みマップ実装、小さなオブジェクトのメモリ割り当て効率の向上、新しいランタイム内部ミューテックス実装を含む。
- ツールの改善
go コマンドは、モジュールのツール依存関係を追跡する仕組みを提供する。go get -tool を使って、現在のモジュールにツールディレクティブを追加できる。
go vet サブコマンドの新しいテストアナライザーは、テストパッケージのテスト、ファザー、ベンチマーク、サンプル宣言における一般的なミスを報告する。
- 標準ライブラリの追加
- 標準ライブラリには、FIPS 140-3 準拠のための新しい仕組みが含まれており、承認済みアルゴリズムの利用にソースコードの変更は不要。
- これまで x/crypto モジュールにあった複数のパッケージが、標準ライブラリで利用可能になった。
- ベンチマークでは、より高速でエラーが少ない
testing.B.Loop メソッドを使えるようになった。
- 新しい
os.Root 型は、特定のディレクトリ配下でファイルシステム操作を実行する機能を提供する。
- ランタイムは
runtime.AddCleanup という新しいクリーンアップ機構を提供し、runtime.SetFinalizer より柔軟で効率的かつエラーが少ない。
- WebAssembly サポートの改善
- Go 1.24 は、Go プログラムが WebAssembly ホストに関数をエクスポートできる
go:wasmexport ディレクティブを追加し、Go プログラムを WASI リアクター/ライブラリとしてビルドすることをサポートする。
1件のコメント
Hacker Newsの意見
text/templateが関数型をサポートするようになったことがうれしいrangeが導入されたが、ようやく Go テンプレートでも動くようになったgo install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latestを使用os.Rootのユースケースが何なのか気になるChrootを使っていないので、結局誰かが Root から脱出する方法を見つけられるのではないかと想像しているtools.goを削除できるはずGODEBUG=fips140=onlyを使うと、FIPS 140-3 に準拠していない暗号アルゴリズムがエラーまたはパニックを返すGOAUTHのおかげで今回のリリースを楽しみにしていたgo help goauthを見る限り、あまり大きな期待はしていない