Ruby Internals, Implementations and Version History
53.1 How CRuby Runs Your Code
Objects are VALUE pointers. Small integers, symbols, nil, true, and false are immediate values (no heap allocation).
Method caching (inline caches), object shapes (3.2+) for fast instance variable access.
Source → Parser (Prism, the default since Ruby 3.4; parse.y before) → AST
→ Compiler → YARV bytecode (instruction sequences)
→ YARV VM interpreter (+ YJIT/ZJIT compiling hot code to machine code)
→ GC-managed object heap (RVALUE slots, variable-width allocation)puts RubyVM::InstructionSequence.compile("1 + 2").disasm
Prism.parse("x = 1 + 2").value # Prism AST (3.3+)
RubyVM::YJIT.enabled?53.2 Version History Highlights
Rails era begins YARV VM, encodings, new hash syntax, lambdas ->
Keyword arguments, refinements, %i[], prepend, UTF-8 default
Generational GC, &. (2.3), frozen string comment, yield_self/then, pattern matching preview (2.7), numbered params
"Ruby 3x3": Ractors, Fiber Scheduler, RBS/TypeProf, pattern matching stable, endless methods, keyword argument separation
YJIT (experimental), the debug gem, error_highlight, hash shorthand {x:}, anonymous block forwarding
YJIT production-ready, WASI support, Data class, Regexp.timeout, object shapes, anonymous rest/kwrest forwarding
Prism parser, M:N threads (opt-in), YJIT speedups, ObjectSpace::WeakKeyMap, IRB improvements
it block parameter, Prism as the default parser, chilled (frozen-ready) strings, new Hash#inspect format, modular GC, faster JSON, YJIT improvements
30th anniversary release: ZJIT (experimental JIT), Ruby::Box (namespace isolation, experimental), Ractor API improvements (Ractor::Port), Set and Pathname in core, further performance work (check the release notes for details)
53.3 Community and Governance
Matz is the "Benevolent Dictator for Life." Core development happens on bugs.ruby-lang.org (issue tracker and feature requests) and GitHub (ruby/ruby). A new version ships every December 25th.
Conferences: RubyKaigi (Japan), RailsConf/RubyConf (now merged as RubyConf), Euruko, Rails World. Ruby Central maintains RubyGems.org and Bundler.