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
登壇その後 - ZJIT への興味とハック
Search
dak2
September 05, 2026
Technology
12
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
登壇その後 - ZJIT への興味とハック
2026/09/05 RubyKaigi 2026 Followup LT 資料
https://rhc.connpass.com/event/392503/
dak2
September 05, 2026
More Decks by dak2
See All by dak2
特殊変数大全
dak2
0
12
現場のトークンマネジメント
dak2
1
280
KaigiEffect.new(name: "dak2").generate
dak2
1
110
No Types Needed, Just Callable Method Check
dak2
1
8.9k
MCP Security Best Practices に見るセキュリティリスクとmodelcontextprotocol/ruby-sdk の authorization の現在地
dak2
0
70
自然言語で ActiveRecord を操作する試み
dak2
0
65
DoD x RBS
dak2
0
35
Other Decks in Technology
See All in Technology
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
29
24k
10分で知る最近のOmarchy
komagata
0
340
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
730
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
0
140
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
220
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
170
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
1
260
LLMに渡さなかった仕事
nanaism
0
180
Railsのように考える: See through the Master
snoozer05
PRO
3
890
AI に書かせたその API、 “信頼” できますか?
nagix
0
110
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
160
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
180
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
For a Future-Friendly Web
brad_frost
183
10k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
WENDY [Excerpt]
tessaabrams
14
39k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
BBQ
matthewcrist
89
10k
How to Talk to Developers About Accessibility
jct
2
550
Why Our Code Smells
bkeepers
PRO
340
58k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Transcript
登壇その後 - ZJIT への興味と Hack - RubyKaigi 2026 follow up
| 2026-09-05 Daichi Kamiyama (@_dak2_)
1 自己紹介
自己紹介 Daichi Kamiyama(@_dak2_) • • 株式会社タイミー バックエンド / 新規事業開発
来年の RubyKaigi 2027 予習をしました Hideji Beer / 日向夏ラガー
2 本編
本日のお品書き • 登壇の振り返り • ZJIT への興味 • 今後
None
興味を引かれた セッションがあった
None
FFI スタイルの Ruby を C 拡張に自動変 換する FFX + ZJIT
トランポリンの jump 命令の直後に型情 報を仕込み、ZJIT のコンパイル時だけ読 む
興味深い Hack だった かっこいい!!!
ZJIT は型をどう扱ってる? 気になって読み始めた
つまり、あまり自分の発表に 関する進捗はありません!
3 ZJIT の仕組み
YARV bytecode HIR (SSA) optimize() LIR
機械語
• 何度か実行し、型を観測(プロファイ ル) • 「この値は◦◦型」を収集 • それを根拠に速い機械語を吐く
4 例: 割り算を速く
None
プロファイルの結果、`a` も `b` も `Integer` だった。 じゃあ CPU の割り算命令を直接呼び出 す形に置き換えていい?
ちょっと待って、 Integer って2種類ある
• Fixnum ◦ 63ビット 符号付き整数 ◦ ポインタ埋め込みの値 • Bignum ◦
多倍長 ◦ ヒープ上
• CRuby ◦ 実行時に値を見て判断(FIXNUM_P) • ZJIT ◦ コンパイル時に解決したい
Fixnum か Bignum の 判別を型レベルで表現
None
• u64 は 64ビット の符号なし整数 • 1u64 は u64 型の整数リテラル
• << はシフト演算
• コンパイル時には「この値が取りうる 型」を1つに断定できない ◦ → 型を「可能性の集合」として持つ
5 割り算が Fixnum にならない
• さっきの `div`、Fixnum / Fixnum の 結果も必ず Fixnum? • 割り算は絶対値が小さくなるから、ほ
ぼ Yes
• FIXNUM_MIN / -1 が例外 ◦ Fixnum の範囲は負側が 1 つ広い(2
の補 数) ◦ 最小値の符号反転だけ溢れる
桁あふれしてBignum
ZJIT は HIR の命令に「結果の型」を宣言してい る 下流の最適化が「Fixnum 確定」と信じて guard を消していた =
miscompile
• Expected ◦ 0 • Actual ◦ false
6 FixnumDiv の戻 り値の型を直す
https://github.com/ruby/ruby/pull/17165
面白い
• 実行時プロファイルして型をハンドリ ングする奥深さ • 必要に応じてインタプリタへside exit する、安全側に倒す設計
7 とはいえ
Method-Ray(自作型検査器)を改善 するための準備もしていました
None
Ruby RBS の crate を拡 充する 自分の gem で使いたい強い気持ちがある
8 まとめ
実装を読んで小さな違和感を 追うと、Ruby本体への貢献 につながる
Hack 楽しんでいきたい
カジュアル面談はこちらから!