What happens inside Ruby when you type
Based on CRuby 3.4 and 4.0 with default settings (Prism parser; YJIT off unless the case uses --yjit) on a 64-bit computer. The basic case's bytecode matches real Ruby 4.0.7 output. The Spinel case follows the pipeline in Spinel's README; its generated C is a simplified sketch. Addresses, sizes, register values and cache results are simplified examples; hardware figures are typical x86-64 values. Facts were checked against the sources listed at the bottom of the page (September 2026).
Facts on this page were checked against these sources in September 2026. Where they disagree with the page, trust the sources.
Spotted a mistake? This page is a learning tool and simplifies many details, so parts of it may be wrong or out of date. If you find an error, please ping me on X @ervinismu or on Mastodon at @ervinismu@ruby.social.