See full version of this project on https://rubychangelog.com/
This page was last updated on 2024-01-09 via rake readme
task
- π EOL 2027-03-31
- Implementations: MRI 3.3.0
- βοΈ Introduced Prism parser as a default gem, replacing Ripper
- βοΈ Lrama replaces Bison as parser generator
- βοΈ Major YJIT performance improvements and introduction of RJIT, a pure-Ruby JIT compiler
- βοΈ Introduction of M:N thread scheduler for efficient thread management
- βοΈ Several performance improvements in the Garbage Collector
- βοΈ Enhancements in IRB including advanced irb:rdbg integration and pager support
- π EOL 2026-03-31
- Implementations: MRI 3.2.2
- βοΈ 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.4
- βοΈ YJIT: New experimental in-process JIT compiler π§ͺ
- π 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
- π EOL 2024-03-31
- Implementations: MRI 3.0.6
- βοΈ MJIT improvements
- π 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
- π 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