Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
Search
mazrean
August 18, 2026
Programming
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
August 18, 2026
More Decks by mazrean
See All by mazrean
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
280
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
180
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
630
Go Proposal Weekly Digestの作り方 / Go Connect #11
mazrean
0
320
WebComponentとSSGで作る 個人開発Webフロントエンド / TechTalk #69
mazrean
0
250
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
790
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
640
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
600
KessokuのDIにおけるgoroutineスケジューリング / golang.tokyo #41
mazrean
0
720
Other Decks in Programming
See All in Programming
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
570
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.6k
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
200
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
460
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
600
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
400
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
Are APIs Still Relevant in the AI Era?
soyuka
0
380
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
410
Agents on Rails - Rails at Scale 2026
irinanazarova
0
300
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
setup-vp GitLab対応の裏側
naokihaba
0
140
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Un-Boring Meetings
codingconduct
0
430
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
30 Presentation Tips
portentint
PRO
1
410
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
We Have a Design System, Now What?
morganepeng
55
8.3k
The browser strikes back
jonoalderson
0
1.7k
Product Roadmaps are Hard
iamctodd
55
13k
RailsConf 2023
tenderlove
30
1.6k
Become a Pro
speakerdeck
PRO
31
6.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
750
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Transcript
Go 1.27 リリースパーティ Go 1.27からのGODEBUG @mazrean
マズリーン mazrean ▪ Goでツール等を作っている • DIツール Kessoku ▪ Proposalまとめサイト開発 ▪
SRE @DeNA @mazrean22 2
GODEBUG知っている✋
1.27でGODEBUGフラグが いくつか消えるのに気が付いた✋
目次 1 GODEBUGとは 2 GODEBUG削除ポリシー策定 3 これからの注意点 4 まとめ 5
Go 1の後方互換性 ソースコードレベルの後方互換性を保障[1] ▪ 新バージョンでもコンパイル が通る ▪ 正しく実行できる ▪ 例外はある
• • セキュリティ上の問題・コンパイラバグ 過去にも複数回発生 [1]: https://go.dev/doc/go1compat 6
Q. バージョン更新で絶対に壊れないか?
Q. バージョン更新で絶対に壊れないか? A. 壊れるときは壊れる
Kubernetesの事例 毎年1つ程度、Go起因の破壊的変更 が発生[2] ▪ 1.17: net.ParseIPで先頭0付きアドレス拒否 • • • 一部の設定が拒否されるようになった
最終的に1.17以前のコピー実装を使用して対応 例) 0127.0000.0000.0001 が拒否されるように ▪ 1.15: SANsなし証明書CN fallback削除 • リリースノートでユーザーへ警告して対応 [2]: https://github.com/golang/go/discussions/55090 9
GODEBUGによる後方互換性拡張 1.21 以降、GODEBUGで挙動を戻せる ように[3] ▪ フラグを設定して切り替え • • 環境変数・//go:debug コメント・go.modで設定
例) GODEBUG=http2client=0 ▪ 一度入れたフラグは、最低2年維持 • 永続含む、2年以上維持する場合もあり [3]: https://go.dev/blog/compat 10
目次 1 GODEBUGとは 2 GODEBUG削除ポリシー策定 3 これからの注意点 4 まとめ 11
増えていくGODEBUGフラグ 1.26時点、フラグは53個にまで増加 ▪ Go Teamのメンテナンス負担 が大きい • テストで網羅しきれない ▪ 削除数より追加数の方が多い
• 削除自体はされているが少ない 12
13
GODEBUGフラグ削除手順 永続 or 削除予定 を導入時点で決める ▪ 削除予定なら削除予定リリース も設定 ▪ 1リリース前
に削除予定を必ず宣言 新規フラグ 既存フラグ Go issue trackerに記録 permanent slated for removal Proposal accept 必須 removed 14
GODEBUGフラグ削除手順 永続 or 削除予定 を導入時点で決める ▪ 削除予定なら削除予定リリース も設定 ▪ 1リリース前
に削除予定を必ず宣言 新規フラグ 既存フラグ Go issue trackerに記録 permanent slated for removal Proposal accept 必須 removed 15
GODEBUGフラグ削除手順 永続 or 削除予定 を導入時点で決める ▪ 削除予定なら削除予定リリース も設定 ▪ 1リリース前
に削除予定を必ず宣言 新規フラグ 既存フラグ Go issue trackerに記録 permanent slated for removal Proposal accept 必須 removed 16
削除済みGODEBUGフラグの挙動 最終的なデフォルト値以外 の有効値は拒否 ▪ コンパイルエラー ・起動時panicする • ただし、実行中のos.Setenvでの動的設定は例外 ▪ 最終的なデフォルト値なら正常に動作
例) gotypesalias バージョン デフォルト値 1.22(導入) gotypesalias=0 1.23 gotypesalias=1 1.27 フラグ削除 gotypesalias=0で コンパイルエラー・panic! 17
削除済みフラグの扱い internal/godebugs/table.go に記述 古い値を判定する関数が設定 18
削除予定GODEBUGフラグのwarn 削除予定フラグはgo vetで報告する ▪ go.mod・コメント設定 のみが対象 • 環境変数 で設定しているものは気づけない ▪
まだ削除予定フラグがないため未実装 19
目次 1 GODEBUGとは 2 GODEBUG削除ポリシー策定 3 これからの注意点 4 まとめ 20
1.27時点で考えるべきこと 削除フラグを使用箇所がないことを確認 ▪ 環境変数で使っていると起動時panic ▪ 1.27で削除されるのは以下 • • • •
• • • gotypesalias tlsunsafeekm tlsrsakex tls3des tls10server x509keypairleaf asynctimerchan 21
将来的に考えるべきこと GODEBUGフラグは短期かつ最小限で使う ▪ 使用しているGODEBUGフラグ把握 ▪ 非permanentフラグからの脱却 • 4バージョン後、削除可能性あり ▪ 使わないで良いのがベスト(個人的見解)
• 使うならリリースノートは注視する 22
目次 1 GODEBUGとは 2 GODEBUG削除ポリシー策定 3 これからの注意点 4 まとめ 23
まとめ ▪ 後方互換性 のためGODEBUGフラグがある ▪ GODEBUGフラグの削除ルール が決まった • • 永続のもの以外は導入時に削除予定リリースが設定
1リリース前までに削除予定であることが宣言 ▪ 削除されると最終デフォルト値以外拒否 • コンパイルエラー ・起動時panic ▪ 1.27で7個のフラグが削除される • 特に環境変数 で設定している場合は注意 24