Closed3

Goのリリースノートを読む/読んだメモ

miyatakamiyataka

Release Policy
Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release. We fix critical problems, including critical security problems, in supported releases as needed by issuing minor revisions (for example, Go 1.6.1, Go 1.6.2, and so on).

メモ

  • 最新の二つのメジャーバージョンがサポート対象となる.
  • セキュリティ関連も含む重大な問題を修正したときはマイナーリビジョンが発行される.
miyatakamiyataka

Go 1.20

https://go.dev/doc/go1.20

メモ

  • 変更のほとんどがツールチェーン,ランタイム,ライブラリである.

  • 言語自体の変更

    • 1.17で対応されたsliceからarrayへの型変換を拡張し,新たな型変換ができるようになった.
      • given a slice x, [4]byte(x) can now be written instead of *(*[4]byte)(x).
    • 仕様の文言書き換え.実装に変化なし.struct比較の際に,fieldが(ランダムではなく)定義した通りの順序で比較されること,それによって,最初のミスマッチ時点で比較を終了することができることが仕様に明記された.
    • Comparableが型引数が厳密にcomparableを満たさなくても,comparable制約を満たすようになった.
  • サポート対象のOS

    • Go 1.21では(1.20ではないことに注意)windows10, windows server 2016より以前はサポート対象外となる
    • Go 1.21では(1.20ではないことに注意)macOS 10.15より以前はサポート対象外となる
    • Go 1.20からFreeBSD,RISC-Vのexperimentalサポートが追加された
  • Tools

    • $GOROOT/pkg は使われなくなった.Goの配布削減とCGOを使うライブラリで起きていた問題の回避のため.
    • go generate で一部の//go:generate~~をskipできるオプション(-skip)が追加された
    • go testで〜(同上)
このスクラップは2024/05/07にクローズされました