See full version of this project on https://rubychangelog.com/
This page was last updated on 2024-07-06 via rake readme
task
- ๐ EOL 2027-03-31
- Implementations: MRI 3.3.3
- โ๏ธ 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.4
- โ๏ธ 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.7
- ๐ 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
- ๐
#then
alias 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
- ๐
rescue
in blocks - ๐
Hash#slice
andHash#transform_keys
- ๐
ERB#result_with_hash
- ๐ New
Array
aliases -#prepend (#unshift)
and#append (#push)
- ๐ Pattern argument on
Enumerable
methods - ๐ 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#truncate
now accept a precision - ๐๏ธ Removed
Fixnum
andBignum
classes (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
- ๐๏ธ
callcc
is obsolete - use Fiber instead - ๐๏ธ
DL
has 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 - ๐
Rational
andComplex
literals - ๐ Generational GC - young / old objects
- ๐ EOL 2016-02-24
- ๐ Keyword arguments
- ๐
Module#prepend
- ๐
Enumerator#lazy
- ๐
%i
a 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
$ yield
# =* Yield is serving your markdown at http://localhost:4000/
- 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 -
bundle exec yield
and on mkdocs - Commit & publish