NEWS for Ruby 3.3.0
This document is a list of user-visible feature changes
since the 3.2.0 (see #7517 for 3.2 support) release, except for bug fixes.
Note that each entry is kept to a minimum, see links for details.
Language changes
Command line options
Core classes updates
Note: We're only listing outstanding class updates.
-
Array
-
Dir
-
MatchData
-
Module
-
ObjectSpace::WeakKeyMap
-
ObjectSpace::WeakMap
-
Proc
-
Process
-
Process::Status
-
Queue
-
Range
-
Refinement
-
SizedQueue
-
String
-
TracePoint
Stdlib updates
The following default gem is added.
The following default gems are updated.
The following bundled gem is promoted from default gems.
The following bundled gems are updated.
See GitHub releases like Logger or
changelog for details of the default gems or bundled gems.
Compatibility issues
Stdlib compatibility issues
Implementation improvements
Undocumented:
NEWS for Ruby 3.3.0
This document is a list of user-visible feature changes
since the 3.2.0 (see #7517 for 3.2 support) release, except for bug fixes.
Note that each entry is kept to a minimum, see links for details.
Language changes
Command line options
A new
performancewarning category was introduced.They are not displayed by default even in verbose mode.
Turn them on with
-W:performanceorWarning[:performance] = true. [Feature #19538]A new
RUBY_CRASH_REPORTenvironment variable was introduced to allowredirecting Ruby crash reports to a file or sub command. See the
BUG REPORT ENVIRONMENTsection of the ruby manpage for further details. [Feature #19790]
Core classes updates
Note: We're only listing outstanding class updates.
Array
Dir
by the provided directory file descriptor. [Feature #19347]
by the provided directory file descriptor. [Feature #19347]
the provided
Dirobject. [Feature #19347]MatchData
symbolize_nameskeyword. [Feature #19591]
Module
module. [Feature #19521]
ObjectSpace::WeakKeyMap
The class use equality semantic to lookup keys like a regular hash,
but it doesn't hold strong references on the keys. [Feature #18498]
ObjectSpace::WeakMap
ObjectSpace::WeakMap#deletewas added to eagerly clear weak mapentries. [Feature #19561]
Proc
#initialize_dupand#initialize_clonehooks respectively. [Feature #19362]
Process
Process.warmupmethod that notify the Ruby virtual machine that the boot sequence is finished,and that now is a good time to optimize the application. This is useful
for long-running applications. The actual optimizations performed are entirely
implementation-specific and may change in the future without notice. [Feature #18885]
Process::Status
Queue
Range
Refinement
Refinement#refined_class is deprecated and will be removed in Ruby
3.4. [Feature #19714]
SizedQueue
String
source string to be copied. [Feature #19314]
TracePoint
rescueevent. When the raised exception was rescued,the TracePoint will fire the hook.
rescueevent only supports Ruby-levelrescue. [Feature #19572] (Add support for a rescue trace event #7788)Stdlib updates
RubyGems and Bundler warn if users require gem that is scheduled to become the bundled gems
in the future version of Ruby. [Feature #19351] [Feature #19776] [Feature #19843]
Targeted libraries are:
Socket#recv and Socket#recv_nonblock returns
nilinstead of an empty string on closedconnections. Socket#recvmsg and Socket#recvmsg_nonblock returns
nilinstead of an empty packet on closedconnections. [Bug #19012]
Random::Formatter#alphanumeric is extended to accept optional
charskeyword argument. [Feature #18183]
The following default gem is added.
The following default gems are updated.
The following bundled gem is promoted from default gems.
The following bundled gems are updated.
See GitHub releases like Logger or
changelog for details of the default gems or bundled gems.
Compatibility issues
Subprocess creation/forking via the following file open methods is deprecated. [Feature #19630]
When given a non-lambda, non-literal block, Kernel#lambda with now raises
ArgumentError instead of returning it unmodified. These usages have been
issuing warnings under the
Warning[:deprecated]category since Ruby 3.0.0.[Feature #19777]
The
RUBY_GC_HEAP_INIT_SLOTSenvironment variable has been deprecated andremoved. Environment variables
RUBY_GC_HEAP_%d_INIT_SLOTSshould beused instead. [Feature #19785]
Stdlib compatibility issues
raccis promoted to bundled gems.raccto yourGemfileif you useraccunder bundler environment.ext/readlineis retiredrelinethat is pure Ruby implementation compatible withext/readlineAPI. We rely onrelinein the future. If you need to useext/readline, you can installext/readlinevia rubygems.org withgem install readline-ext.libreadlineorlibedit.Implementation improvements
defined?(@ivar)is optimized with Object Shapes.Socket.getaddrinfocan now be interrupted. [Feature #19965]Undocumented: