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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mazrean
August 18, 2026
Programming
430
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
320
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
230
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
680
Go Proposal Weekly Digestの作り方 / Go Connect #11
mazrean
0
360
WebComponentとSSGで作る 個人開発Webフロントエンド / TechTalk #69
mazrean
0
280
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
830
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
670
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
640
KessokuのDIにおけるgoroutineスケジューリング / golang.tokyo #41
mazrean
0
750
Other Decks in Programming
See All in Programming
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
190
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
3
720
No More NoSuchMethodError
exoego
1
110
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
960
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.7k
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
200
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
120
APNsからLive Activityを開始する話
yumnumm
0
180
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
210
golang-bob.pdf
iwatsukayura
0
140
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
1
200
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
190
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
1.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Believing is Seeing
oripsolob
1
250
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
620
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
420
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Unsuck your backbone
ammeep
672
58k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Prompt Engineering for Job Search
mfonobong
0
540
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