The Go Blog
Go 1.17がリリースされました
Goチームは本日、Go 1.17をリリースすることを嬉しく思います。ダウンロードページにアクセスして入手できます。
このリリースでは、コンパイラにさらなる改善が加えられました。具体的には、関数引数と結果を渡す新しい方法です。この変更により、Goプログラムのパフォーマンスが約5%向上し、amd64プラットフォームのバイナリサイズが約2%削減されました。今後、より多くのプラットフォームをサポートする予定です。
Go 1.17では、Windows上の64ビットARMアーキテクチャのサポートも追加され、Goをより多くのデバイスでネイティブに実行できるようになりました。
このリリースでは、モジュールグラフのプルーニングも導入しました。go.mod
ファイルでgo 1.17
以上を指定するモジュールは、モジュールグラフに他のGo 1.17モジュールの直接の依存関係のみが含まれ、完全な推移的な依存関係は含まれません。これは、無関係な依存関係のgo.mod
ファイルをダウンロードまたは読み取る必要性を回避するのに役立ち、日々の開発時間を節約します。
Go 1.17には、言語に対する3つの小さな変更が含まれています。最初の2つは、プログラムがunsafe.Pointer
規則に準拠しやすくするためのunsafe
パッケージの新しい関数です。unsafe.Add
はより安全なポインタ演算を可能にし、unsafe.Slice
はポインタからスライスへのより安全な変換を可能にします。3つ目の変更点は、言語型の変換規則の拡張で、実行時にスライスが配列以上の大きさである場合に、スライスから配列ポインタへの変換を許可します。
最後に、crypto/x509の検証の改善や、URLクエリ解析の変更など、その他多くの改善とバグ修正があります。変更点の完全なリストと上記の改善点の詳細については、完全なリリースノートを参照してください。
コードの作成、バグの報告、フィードバックの共有、ベータ版とリリース候補のテストにご協力いただいた皆様に感謝いたします。皆様のご尽力により、Go 1.17は可能な限り安定したものになりました。いつものように、問題が発生した場合は、問題を報告してください。
新しいリリースをお楽しみください!