Goブログ
Go 1.2 がリリースされました
Goプログラミング言語の最新安定版であるGo 1.2のリリースを発表できることを嬉しく思います。
バイナリディストリビューションは、通常の場所からダウンロードするか、ソースからコンパイルする場合は、release
またはgo1.2
タグを使用する必要があります。
この新しいリリースは、5月のGo 1.1のリリースから約7か月後に行われました。これは、1.1と1.0の間の14か月よりもはるかに短い期間です。今後のメジャーリリースでは同等の間隔になると予想しています。
Go 1.2には、いくつかのマイナーな言語変更、言語実装とツールへのいくつかの改善、パフォーマンスの向上、および標準ライブラリへの多くの追加と(後方互換性のある)変更が含まれています。
いくつかの変更は既存の(バグのある)プログラムの動作に影響を与える可能性があるため、詳細についてはリリースノートをお読みください。以下はリリースのハイライトです。
新しい3インデックスのスライス構文は、長さだけでなく容量も指定する機能を追加します。これにより、プログラマーは、以前はunsafeパッケージの使用が必要だった、基になる配列の限られた部分にのみアクセスできるスライス値を渡すことができます。
ツールチェーンの主要な新機能は、テストカバレッジの結果を計算して表示する機能です。詳細については、go test
およびcoverツールのドキュメントを参照してください。今週後半に、この新機能について詳しく説明する記事を公開します。
ゴルーチンは、関数へのエントリ時にスケジューラーが時々呼び出されるため、プリエンプティブにスケジュールされるようになりました。これにより、ビジーなゴルーチンが同じスレッド上の他のゴルーチンを飢えさせるのを防ぐことができます。
デフォルトのゴルーチンスタックサイズが増加すると、一部のプログラムのパフォーマンスが向上するはずです。(古いサイズでは、パフォーマンスが重要なセクションでコストのかかるスタックセグメントの切り替えが発生する傾向がありました。)もう一方の端では、スタックサイズとオペレーティングシステムのスレッド数に対する新しい制限により、誤動作するプログラムがマシンのすべてのリソースを消費するのを防ぐ必要があります。(これらの制限は、runtime/debug
パッケージの新しい関数を使用して調整できます。)
最後に、標準ライブラリへの多くの変更の中で、重要な変更には、新しいencoding
パッケージ、Printf
書式文字列のインデックス付き引数、およびテンプレートパッケージへのいくつかの便利な追加が含まれます。
リリースの一環として、Go PlaygroundがGo 1.2に更新されました。これは、Go Tourやこのブログなど、Playgroundを使用するサービスにも影響します。このアップデートでは、サンドボックス内でスレッドとos
、net
、unsafe
パッケージを使用できるようになり、実際のGo環境に近づきました。
バグレポートを提出してくれた多くのユーザーから、コアに1600以上の変更をコミットした116人(!)の貢献者まで、このリリースを可能にしたすべての人に感謝します。皆様のご協力はプロジェクトにとって非常に貴重です。ありがとうございました!
このブログ記事は、 Goアドベントカレンダー の最初の記事であり、12月1日から25日まで Gopher Academyによって提供される一連の毎日記事です。
次の記事: カバーストーリー
前の記事: Goでのテキストの正規化
ブログインデックス