The design and implementation of ZJIT & the next five years
The ZJIT team talked about ZJIT briefly last year right before it was merged. Now I will talk about what has changed, where the optimization ideas come from, and what the future holds, including constant-folding, value numbering, escape analysis, scalar replacement, register allocation, and more. I will walk through the rich history of dynamic language compiler research and how it can be applied to a language as dynamic as Ruby. Last, we will see if Ruby 4 holds up to the performance expectations from RubyKaigi 2022.
-
Max BernsteinMax learned Ruby back when it was at version 1.9 and he is now in his second era of writing Ruby code. He leads the ZJIT team at Shopify. He loves reading about and writing about compilers. When he is not doing that, he is teaching, baking, cooking, riding his bike, and climbing.