Ruby Core Updates: ZJIT Performance Optimizations

Four pull requests merged focusing on ZJIT compiler improvements, including getivar recompilation optimizations and guard instruction deduplication. Performance improvements show ZJIT execution ratio increased from 82.4% to 85.3% on the lobsters benchmark.

Duration: PT1M49S

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-04-04T10:01:25Z
  • Audio duration: PT1M49S

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 April 4th, 2026.

Takashi Kokubun led development activity with three significant ZJIT compiler optimizations. The first merged PR implements getivar recompilation on guard shape failures. This optimization recompiles instance variable access when shape guards fail, adding fallback mechanisms in final versions to prevent side exits.…

The second optimization deduplicates redundant GuardType instructions within the same basic block. When multiple guards check the same value with identical or narrower types, subsequent guards are eliminated as redundant. For example, expressions like `(n - 1) + (n - 2)` previously generated duplicate Fixnum guards,…

Kokubun also merged improvements to ifunc invokeblock handling. When block handler tag checks fail, the compiler now falls back to C calls instead of exiting to the interpreter, reducing performance regression from invokeblock exits.

The fourth merged PR comes from Nobuyoshi Nakada, addressing a testing infrastructure issue. The LeakChecker now properly skips CLOSE_WAIT sockets, which remain in kernel space despite being closed in user space.

Six additional commits refined these implementations,…

Nearby episodes from Ruby Core Updates

  1. Weekly Recap - Dependency Management & Performance
  2. Weekly Recap - Performance Optimizations & Bug Fixes
  3. Development Tool Reliability Fix
  4. Weekly Recap - ZJIT Performance and Infrastructure Improvements
  5. JIT Compiler Optimizations and Bug Fixes
  6. Ractor Fixes and JIT Improvements
  7. Memory Management and JIT Improvements
  8. ZJIT Performance Improvements and GC Optimizations