88 points by tekknolagi 4 days ago | 19 comments | View on ycombinator
mananaysiempre 1 day ago |
diablevv about 21 hours ago |
YJIT's profile-guided approach is powerful but pays a cost every time a hot path diverges from the expected type. The BBV approach in ZJIT bakes type assumptions directly into the compiled code, so you get the same specialization without the deopt overhead on the happy path. The tradeoff is code size — more type combinations means more compiled variants — but for server-side Rails apps where the method profile is fairly stable, that's usually fine.
Curious whether they're planning to share any of the escape analysis machinery upstream to YJIT, or if the JIT designs are diverging permanently.
smj-edison about 19 hours ago |
claudiug 1 day ago |
mchusma 1 day ago |
riteshyadav02 1 day ago |
(I passed over this article thinking it was a “look how mysteriously smart the mysteriously smart compiler is” acticle, not a “here’s how the smarts in a compiler work” one.)