「Go 1.12」リリース、TLS 1.3サポートやモジュール機能の強化などが行われる
Googleの「Go」プログラミング言語開発チームは2月25日、最新版となる「Go 1.12」を公開した。TLS 1.3のオプトインサポート、モジュールのサポート強化など、次期1.13に向けた強化が加わった。
GoはGoogleが開発するプログラミング言語。コンパイル型の言語で、Pythonのようなプログラミングの容易性や速度とC/C++の安全性の両方を備えることを目指す。
Go 1.12は、2018年8月に公開されたGo 1.11に続く最新版。本バージョンではcrypto/tlsパッケージにRFC8446で定義されているTLS 1.3のサポートが加わっている。GODEBUG環境変数に「tls13=1」を追加することで有効になり、ConnectionStateのTLSUniqueなど一部を除くすべてのTLS 1.2の機能がTLS 1.3で利用できるという。TLS 1.3は次期1.13ではデフォルトで有効になる。
次期1.13に向けたモジュールサポートも強化した。GO111MODULE環境変数を「on」に設定すると、Goコマンドがモジュール関連機能が有効になる。
ランタイムも強化し、ヒープ上で大きなメモリ断片が存在する状態でのスイープの性能を強化した。これによってガベージコレクション後のメモリアロケーション遅延を改善するという。あわせてメモリプロファイルの精度も改善している。runtime.Callerとruntime.Callersも強化された。LinuxではMADV_FREEを使って使用していないメモリを解放するようになり、効率性を改善した。
コンパイラツールチェーンでは、ライブの変数解析などを強化した。
Go 1.12ではWindows/armポートをサポート、Raspberry Pi 3などのWindows 10 IoT Core/Arm(32ビット)で使えるようになった。一方で、FreeBSD 10.x、macOS 10.10 Yosemiteをサポートする最後のリリースとなった。Go 1.13では、FreeBSD 11.2+/12.0+、macOS 10.11 El Capitan以降が必要となる。また、バイナリオンリーパッケージのサポートも1.12で最後になる。