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
27
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
55
特殊変数大全
dak2
0
540
現場のトークンマネジメント
dak2
1
330
KaigiEffect.new(name: "dak2").generate
dak2
1
150
No Types Needed, Just Callable Method Check
dak2
1
9.3k
MCP Security Best Practices に見るセキュリティリスクとmodelcontextprotocol/ruby-sdk の authorization の現在地
dak2
0
78
自然言語で ActiveRecord を操作する試み
dak2
0
69
DoD x RBS
dak2
0
42
Other Decks in Technology
See All in Technology
Vibe-to-Spec開発_実践ガイド
happysamurai294
0
140
Vue で書く 空間コンピューティング、TresJS と WebXR を使ったXR デバイスのフロントエンド開発
hiranuma
0
150
Consistency for mere mortals - A gentle guide to consistency
ufried
0
120
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
0
190
複雑な業務システムを高速でつくるため、チーム全員をつくれる人へ
ayakurabuchi
0
120
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
160
ALBのLCU予約とトラフィックの波によるプロダクト理解 / Understanding ALB LCU and Traffic Spikes
mito201
1
130
Deep Data Security 機能解説
oracle4engineer
PRO
3
1k
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
1
110
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
2.8k
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
2.9k
キヨさん、67歳。AIコーディングエージェントに挑む
happysamurai294
0
140
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
810
RailsConf 2023
tenderlove
30
1.6k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
The untapped power of vector embeddings
frankvandijk
2
2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Optimizing for Happiness
mojombo
378
71k
GraphQLとの向き合い方2022年版
quramy
50
15k
How to Talk to Developers About Accessibility
jct
2
610
Game over? The fight for quality and originality in the time of robots
wayneb77
1
320
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
610
A Modern Web Designer's Workflow
chriscoyier
699
190k
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 楽しんでいきたい
カジュアル面談はこちらから!