Ruby Core Updates: ZJIT Optimization and Performance Improvements

Thirteen pull requests were merged focusing heavily on ZJIT compiler optimizations, including exit profiling for unprofiled method calls and support for negative array indices. Additional improvements include class allocator inheritance fixes and Windows symlink fallback handling.

Duration: PT2M1S

Episode overview

This episode is a short developer briefing from Ruby Core Updates.

It explains recent repository work in plain language.

  • Show: Ruby Core Updates
  • Published: 2026-03-26T10:24:08Z
  • Audio duration: PT2M1S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good morning. This is Ruby Core Updates for Friday, March 26th, 2026.

The development team merged thirteen pull requests yesterday, with most activity concentrated on ZJIT performance improvements. Takashi Kokubun led the effort with six merged PRs targeting the just-in-time compiler.

The most significant change introduces exit profiling for ZJIT. Kokubun's PR converts unprofiled method calls into side exits that collect runtime data, then triggers recompilation after five exits. This allows the compiler to optimize previously unknown call sites with direct method calls.

Kokubun also merged support for negative array and string indices in ZJIT, eliminating unnecessary side exits when accessing elements with negative indexing. Additional ZJIT improvements include removing eager nil-filling of local variables in JIT-to-JIT calls and fixing random test failures in the CI pipeline.

John Hawthorn contributed a notable optimization to class inheritance, copying allocator functions from superclass to subclass at creation time rather than walking the ancestor chain during allocation. This eliminates repeated lookups for memory allocation.

The RubyGems integration saw an important Windows…

Nearby episodes from Ruby Core Updates

  1. Weekly Recap - ZJIT Performance & Core Infrastructure
  2. ZJIT Optimization and Developer Tools
  3. ZJIT Performance Optimizations and Source Location Revert
  4. ZJIT Performance Improvements and CI Stability Fixes
  5. ZJIT Performance Enhancements and Regexp Freezing
  6. ZJIT Compilation Improvements and Bug Fixes
  7. Documentation Improvements and Bundler Restructuring
  8. Weekly Recap - JIT Optimization & Performance Enhancement