NEWS for Ruby 3.0.0

This document is a list of user visible feature changes since the 2.7.0 release, except for bug fixes.

Note that each entry is kept so brief that no reason behind or reference information is supplied with. For a full list of changes with all sufficient information, see the ChangeLog file or Redmine (e.g. https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER).

Language changes

Command line options

--help option

When the environment variable RUBY_PAGER or PAGER is present and has a non-empty value, and the standard input and output are tty, the --help option shows the help message via the pager designated by the value. [Feature #16754]

--backtrace-limit option

The --backtrace-limit option limits the maximum length of a backtrace. [Feature #8661]

Core classes updates

Outstanding ones only.

Stdlib updates

Outstanding ones only.

Compatibility issues

Excluding feature bug fixes.

Stdlib compatibility issues

C API updates

Implementation improvements

JIT

Static analysis

RBS

TypeProf

# test.rb
def foo(x)
  if x > 10
    x.to_s
  else
    nil
  end
end

foo(42)
$ typeprof test.rb
# Classes
class Object
  def foo : (Integer) -> String?
end

Miscellaneous changes