March 21, 2026

Speed boost, title beef, leadership tea

ZJIT removes redundant object loads and stores

Ruby’s new turbo mode sparks title wars and leadership gossip

TLDR: ZJIT’s new optimization makes Ruby code run much faster, beating YJIT on a key test (about 2ms vs 5ms). Commenters cheered the speed, bickered over a title edit that misled readers, and debated whether ZJIT becomes the default—and who leads it after Maxime Chevalier-Boisvert’s exit from Shopify.

Ruby’s latest brain upgrade has the crowd buzzing: ZJIT’s new load–store optimization just made it beat YJIT on a key test, clocking about 2ms vs 5ms on repeated instance variable assignments and running over 25x faster than the regular interpreter. But the real fireworks? The comments. One thread exploded over Hacker News’ auto-edit that removed the word “How” from the title, turning a careful explainer into what looked like bragging. Cue the chorus: readers say they skipped it because it read like hype, not a breakdown of the actual tricks.

Meanwhile, the speed flex sparked a bigger question: is ZJIT about to become the default Ruby turbo button? Some are cheering “make it happen,” while others are side-eyeing the future of the project now that Maxime Chevalier-Boisvert, a key figure in Ruby JIT land, has left Shopify. The vibe is a mix of celebration and “who’s steering the ship?”

For the non-nerds: ZJIT is Ruby’s just-in-time compiler that speeds up code as it runs. This update cleans up redundant memory moves and, thanks to its high-level code view (HIR), it scores big wins—even in places you wouldn’t expect. Commenters joked about the “two-millisecond club,” argued over title etiquette, and turned a compiler tweak into a full-on community soap opera. Peak Ruby drama, peak Ruby speed.

Key Points

  • ZJIT adds a new load-store optimization pass at the HIR stage to remove redundant object field operations.
  • The optimization leverages HIR’s SSA form and effect system to analyze and eliminate repeated loads/stores.
  • Inserted as run_pass!(optimize_load_store), the pass complements existing ZJIT optimizations and cleanup passes.
  • On the RubyBench setivar microbenchmark, ZJIT improved to ~2 ms/iteration versus YJIT’s ~5 ms after 2026-03-06.
  • The optimization influences instance variable assignment because HIR’s LoadField/StoreField cover both instance vars and object shapes.

Hottest takes

"removing “How” from titles is the worst one" — mananaysiempre
"curious if zjit will be ready to be default over yjit next ruby release. hope so!" — mchusma
"for me is more interesting that Maxime Chevalier-Boisvert left shopify and is doing other stuff, who will carry on with zjit" — claudiug
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.