Skip to content

Ruby latest versions changelog

Ruby 3.3.0

  • Internals Introduced Prism parser as a default gem, replacing Ripper
  • Internals Lrama replaces Bison as parser generator
  • Internals Major YJIT performance improvements and introduction of RJIT, a pure-Ruby JIT compiler
  • Internals Introduction of M:N thread scheduler for efficient thread management
  • Internals Several performance improvements in the Garbage Collector
  • Internals Enhancements in IRB including advanced irb:rdbg integration and pager support

Ruby 3.2.2

  • Internals WASI based WebAssembly support
  • Internals Production-ready YJIT
  • Internals Regexp improvements against ReDoS
  • Internals IRB improvements (SyntaxSuggest, ErrorHighlight)
  • Internals Bundler 2.4 now uses PubGrub resolver instead of Molinillo

Ruby 3.1.4

  • Internals YJIT: New experimental in-process JIT compiler (experimental)

  • Added debug gem: A new debugger

  • Added error_highlight: Fine-grained error location in backtrace
  • Added IRB Autocomplete and Documentation Display
  • Updated Values in Hash literals and keyword arguments can be omitted.

  • Updated Updates in RBS / TypeProf


Ruby 3.0.6

  • Internals MJIT improvements
  • Added Ractor - Actor-model like concurrent abstraction (experimental)
  • Added Fiber Scheduler for light-weight concurrency (experimental)
  • Added RBS - a language to describe the structure of Ruby classes

  • Added TypeProf - type analysis tool, generates RBS type signatures (experimental)

  • Added Hash#except
  • Updated Keyword arguments are separated from other arguments

  • Updated Rightward assignment statement

  • Updated Reversed (again) order of backtrace (experimental)

  • Updated Endless method definition def square(x) = x * x


Ruby 2.7.7

  • Added Pattern Matching (experimental)

  • Updated REPL improvements

  • Updated Separation of positional and keyword arguments

  • Updated Argument forwarding

  • Internals Compaction GC


Ruby 2.6.10

  • Added endless ranges (1..)
  • Added Enumerable#chain
  • Added function composition operators <<, >> to Proc
  • Updated #then alias for #yield_self
  • Internals JIT compiler --jit
  • Internals Bundler is installed as a default gem

Ruby 2.5.9

  • Added yield_self

  • Added rescue in blocks

  • Added Hash#slice and Hash#transform_keys
  • Added ERB#result_with_hash
  • Updated New Array aliases - #prepend (#unshift) and #append (#push)
  • Updated Pattern argument on Enumerable methods
  • Updated Keyword arguments on Struct.new
  • Updated Removed Top-level constant lookup
  • Updated Reverse order of backtrace (oldest call first) (experimental)

Ruby 2.4.10

  • Added Enumerable#sum
  • Added Integer#digits
  • Added Regexp#match?, Regexp#named_captures
  • Updated New constructor Logger.new(STDOUT, level:, progname:)
  • Updated Float: #round, #ceil, #floor, and #truncate now accept a precision
  • Removed Removed Fixnum and Bignum classes (unified to Integer)

Ruby 2.3.8

  • Added Safe navigation operator &.
  • Added Frozen string literals
  • Added Array#dig
  • Added Hash#fetch_values, Hash#to_proc, Hash#dig
  • Added 'Did you mean?'

Ruby 2.2

  • Removed callcc is obsolete - use Fiber instead
  • Removed DL has been removed from stdlib - use Fiddle instead
  • Internals Incremental GC - fixes performance for 'old' objects
  • Internals The introduction of GC for symbols (mortal/immortal)

Ruby 2.1

  • Added Refinements
  • Added Exception#cause - for libraries exceptions
  • Added Rational and Complex literals
  • Added Generational GC - young / old objects

Ruby 2.0

  • Added Keyword arguments
  • Added Module#prepend
  • Added Enumerator#lazy
  • Added %i a literal for symbol array

(Last updated on 2024-01-09 19:06:25 +0100)