タラバガニー設計局stalins.clubNOTE/notes/size-specialized-malloc-not-generic-methods

「バイナリサイズ +60KB」は別機能の話

Go 1.27 について調べていると「バイナリサイズが +60KB 増える」という数字がよく出てくるが、これはジェネリクスメソッドの話ではない。Go 1.27 の別機能である size-specialized malloc の話である。size-specialized malloc は GOEXPERIMENT=nosizespecializedmalloc で opt-out でき、Go 1.28 では削除予定の実験フラグ付き機能なので、ジェネリクスメソッドとは実装上も無関係。混同して資料に書かないよう注意が必要な罠だった。

2026-08-15 時点で調査した限り、ジェネリクスメソッド起因のコンパイル時間・バイナリサイズの数値は、リリースノート・issue・コミットのいずれからも見つかっていない。

似た構造の混同として、#80657 (method 内で simd を使うと ICE になる不具合) もある。これはジェネリクスメソッドではなく、メソッドと GOEXPERIMENT=simd の組み合わせで起きる問題であり、やはり generic method 固有の不具合ではない。

どちらも「Go 1.27 の目玉機能はジェネリクスメソッドだ」という思い込みから、別の実験的機能の話を generic method の話だと早合点しやすいという共通点がある。実装方式そのものについては GC shape stenciling と dictionary を参照。

出典

  • Go Release Party 1.27 の発表資料リポジトリ memo.md §2
  • Go Release Party 1.27 の発表資料リポジトリ issues.md §6

▸ ノート一覧に戻る