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
13
現場のトークンマネジメント
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
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
データ_AIの事業の勝敗をわけるもの
nek0128
0
370
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
2
1.6k
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
1
530
10分で知る最近のOmarchy
komagata
0
340
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
180
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
110
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
0
130
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
iOSDC Japan 2026 day1 TrackC 10:50
feedtailor
1
160
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
110
Omarchy Quattro の日本語設定周り
simosako
2
180
Featured
See All Featured
Docker and Python
trallard
47
4.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Making the Leap to Tech Lead
cromwellryan
135
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The SEO Collaboration Effect
kristinabergwall1
1
560
Music & Morning Musume
bryan
48
7.4k
Leo the Paperboy
mayatellez
10
2.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
KATA
mclloyd
PRO
35
15k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
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 楽しんでいきたい
カジュアル面談はこちらから!