Go 1.4 リリース
Go 1.4 is released by Andrew Gerrand
本日、Goの5番目のメジャー安定版リリースとなるGo 1.4を発表します。前回のメジャーリリースである Go 1.3から6ヶ月が経ちました。今回のリリースには小さな言語仕様の変更、 対応OSおよびプロセッサアーキテクチャの追加、そしてツールチェインとライブラリの改善が含まれています。 これまでと同様、Go 1.4も互換性の約束を守っており、ほとんどのコードは1.4に移行しても変更なしに コンパイルでき、そのまま実行できます。詳細についてはGo 1.4のリリースノートを参照してください。
今回のリリースでもっとも注目すべき新機能は、Androidの正式サポートです。コアにある対応機能と golang.org/x/mobileリポジトリのライブラリを使うことで、 GoのコードだけでシンプルなAndroidアプリを書けるようになりました。現時点ではサポートライブラリはまだ 発展途上で、活発に開発が進められています。早期に試す方には多少の不安定さを覚悟してほしいところですが、 コミュニティの皆さんの参加を歓迎します。
言語仕様の変更は、for-rangeループの構文に対する小さな調整です。値、ループのインデックス、あるいは
マップのキーを代入する必要なく、for range s {と書くだけでsの各要素をループできるようになりました。
詳細はリリースノートを参照してください。
goコマンドには新しいサブコマンドであるgo generateが加わりました。これはコンパイル前にソースコードを
生成するツールの実行を自動化するものです。たとえば、新しい
stringerツールを使って型付き定数のStringメソッドの
生成を自動化するのに使えます。詳しくは設計ドキュメントを参照してください。
ほとんどのプログラムは1.3のときとほぼ同じ速度か、やや高速に動作しますが、中にはやや遅くなるものも あります。変更点が多いため、何が起きるかを正確に述べるのは難しいところです。詳しい議論は リリースノートを参照してください。
もちろん、他にも多くの改善とバグ修正が行われています。
お気づきでない方のために触れておくと、数週間前にサブリポジトリが新しい場所へ移動しました。たとえば、
go.toolsパッケージは現在golang.org/x/toolsからインポートするようになっています。詳細は
アナウンス投稿を参照してください。
今回のリリースは、プロジェクトがソース管理をMercurialからGitへ、コードレビューをRietveldからGerritへ、 そして課題管理とWikiをGoogle CodeからGitHubへ移行するタイミングとも重なっています。この移行はGoの コアリポジトリとそのサブリポジトリの両方に影響します。正式なGitリポジトリは go.googlesource.comに、課題トラッカーとWikiは golang/goのGitHubリポジトリにあります。
開発自体はすでに新しいインフラへ移行済みですが、1.4リリースに関しては、 ソースからインストールするユーザーには引き続きMercurial リポジトリの利用を推奨します。
App Engineをお使いの方には、Go 1.4がベータテスト向けに提供され始めています。詳細は アナウンスを 参照してください。
Goチーム一同より、Go 1.4をお楽しみください。そしてよい休暇シーズンをお過ごしください。
By Andrew Gerrand