米GoogleのGo言語開発チームは、7度目のメジャーリリースとなる「Go 1.6」を2月17日(現地時間)にリリースした。
「Go 1.6」は、6か月前にリリースされた「Go 1.5」に大きな変更が加えられており、とりわけ大きな変更点としては、主要なWebブラウザベンダーやWebサイトで採用されている新プロトコルであるHTTP/2の、net/httpパッケージにおけるサポートが挙げられる。「Go 1.6」では、デフォルトでHTTP/2のサポートを有効にしている。
テンプレートパッケージでは、テンプレートアクション周囲の空白を取り除き、クリアなテンプレート出力を実現したほか、テンプレートから他のテンプレートを作成できる{{block}}アクションが追加された。
さらに、「Go 1.5」では実験的なサポートだった、さまざまな環境への対応を可能にするvenderディレクトリにも、デフォルトで対応する。
ランタイムには、軽量なマップ誤使用の検出機能や、プログラム終了にともなうパニック発生を知らせる機能を搭載した。
このほか、「Go 1.6」による変更にともない、cgoの利用にあたってはGoとCとのポインタ共有に関する留意が求められる。なお、linux/amd64版のコンパイラ、リンカ、およびGoのコマンドには、-raceに似た-msanフラグが用意されており、cgoのコードが新しいポインタのルールに対応しているかの確認に使える。
なお、「Go 1.6」でビルドしたコードのパフォーマンスは、「Go 1.5」でビルドしたものとほぼ同じ。一方、ガベージコレクションによる停止は「Go 1.5」よりも長いが、プログラムが巨大なメモリ領域を利用している場合は、特筆すべき効果を発揮する。
【関連リンク】
・Go(英語)
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です