See full version of this project on https://rubychangelog.com/
This page was last updated on 2025-11-13 via rake readme task
- π EOL 2028-03-31
- Implementations: MRI 3.4.7
- π
itblock parameter reference - βοΈ Prism becomes the default parser
- βοΈ Major YJIT performance improvements with compressed context
- βοΈ Happy Eyeballs Version 2 (RFC 8305) support in socket library
- βοΈ Modular GC architecture allowing alternative garbage collector implementations
- βοΈ Array methods rewritten in Ruby for better performance
- βοΈ JSON.parse approximately 1.5x faster than json-2.7.x
- π EOL 2027-03-31
- Implementations: MRI 3.3.10
- βοΈ Introduced Prism parser as a default gem
- βοΈ Lrama replaces Bison as parser generator
- βοΈ Major YJIT performance improvements, introduction of RJIT
- βοΈ Introduction of M:N thread scheduler
- βοΈ Several performance improvements in the Garbage Collector
- βοΈ Enhancements in IRB: advanced irb:rdbg integration; pager support
- π EOL 2026-03-31
- Implementations: MRI 3.2.9
- βοΈ WASI based WebAssembly support
- βοΈ Production-ready YJIT
- βοΈ Regexp improvements against ReDoS
- βοΈ IRB improvements (SyntaxSuggest, ErrorHighlight)
- βοΈ Bundler 2.4 now uses PubGrub resolver instead of Molinillo
- π EOL 2025-03-31
- Implementations: MRI 3.1.6
- π debug gem: A new debugger
- π error_highlight: Fine-grained error location in backtrace
- π IRB Autocomplete and Documentation Display
- π Values in Hash literals and keyword arguments can be omitted.
- π Updates in RBS / TypeProf
- βοΈ YJIT: New experimental in-process JIT compiler π§ͺ
- π EOL 2024-04-23
- Implementations: MRI 3.0.7
- π Ractor - Actor-model like concurrent abstraction π§ͺ
- π Fiber Scheduler for light-weight concurrency π§ͺ
- π RBS - a language to describe the structure of Ruby classes
- π TypeProf - type analysis tool, generates RBS type signatures π§ͺ
- π
Hash#except - π Keyword arguments are separated from other arguments
- π Rightward assignment statement
- π Reversed (again) order of backtrace π§ͺ
- π Endless method definition
def square(x) = x * x - βοΈ MJIT improvements
- π EOL 2023-03-31
- Implementations: MRI 2.7.8
- π Pattern Matching π§ͺ
- π REPL improvements
- π Separation of positional and keyword arguments
- π Argument forwarding
- βοΈ Compaction GC
- π EOL 2022-04-13
- Implementations: MRI 2.6.10
- π endless ranges
(1..) - π
Enumerable#chain - π function composition operators
<<, >>toProc - π
#thenalias for#yield_self - βοΈ JIT compiler
--jit - βοΈ Bundler is installed as a default gem
- π EOL 2021-04-06
- Implementations: MRI 2.5.9, JRuby 9.2.0.0
- π
yield_self - π
rescuein blocks - π
Hash#sliceandHash#transform_keys - π
ERB#result_with_hash - π New
Arrayaliases -#prepend (#unshift)and#append (#push) - π Pattern argument on
Enumerablemethods - π Keyword arguments on
Struct.new - π Removed Top-level constant lookup
- π Reverse order of backtrace (oldest call first) π§ͺ
- π EOL 2020-04-01
- Implementations: MRI 2.4.10
- π
Enumerable#sum - π
Integer#digits - π
Regexp#match?,Regexp#named_captures - π New constructor
Logger.new(STDOUT, level:, progname:) - π Float:
#round,#ceil,#floor, and#truncatenow accept a precision - ποΈ Removed
FixnumandBignumclasses (unified toInteger)
- π EOL 2019-03-31
- Implementations: MRI 2.3.8, JRuby 9.1.17.0
- π Safe navigation operator
&. - π Frozen string literals
- π
Array#dig - π
Hash#fetch_values,Hash#to_proc,Hash#dig - π 'Did you mean?'
- π EOL 2018-03-31
- ποΈ
callccis obsolete - use Fiber instead - ποΈ
DLhas been removed from stdlib - use Fiddle instead - βοΈ Incremental GC - fixes performance for 'old' objects
- βοΈ The introduction of GC for symbols (mortal/immortal)
- π EOL 2017-03-31
- π Refinements
- π
Exception#cause- for libraries exceptions - π
RationalandComplexliterals - π Generational GC - young / old objects
- π EOL 2016-02-24
- π Keyword arguments
- π
Module#prepend - π
Enumerator#lazy - π
%ia literal for symbol array
Documentation app is built using mkdocs with mkdocs-material theme.
To rebuild documentation pages from templates/docs/**:
$ rake doc
# Writing to mkdocs-material/docs/versions-latest.md .. Done
# Writing to docs/docs/versions-all.md .. Done
# ...
To start documentation app locally:
$ cd docs
$ mkdocs serve
Deployment to github Pages is set up via github actions using mkdocs gh-deploy command.
To rebuild this README.md from templates/README.md.erb:
$ rake readme
# Writing to README.MD .. Done
$ mdserve README.md
# Server running at http://localhost:3000
- Compare Ruby releases page with ruby_versions.json if there are new Ruby versions.
- update ruby_versions.json with new versions details
- Update latest info about CVE - run
rake fetch:cve - Regenerate all artifacts -
rake doc readme - Verify -
mdserve README.mdand on mkdocs - Commit & publish