Ruby 2.5.0-rc1 Released

We are pleased to announce the release of Ruby 2.5.0-rc1.

Ruby 2.5.0-rc1 is the first release candidate of Ruby 2.5.0. It introduces some new features and performance improvements, for example:

New Features

  • Print backtrace and error message in reverse order if STDERR is unchanged and a tty. [Feature #8661] [experimental]

  • Top-level constant look-up is removed. [Feature #11547]

  • rescue/else/ensure are allowed inside do/end blocks. [Feature #12906]

  • Add yield_self. [Feature #6721]

Performance improvements

  • Dynamic instrumentation for TracePoint hooks instead of using “trace” instruction to avoid overhead. [Feature #14104]

  • Performance of block passing using block parameters is improved by lazy Proc allocation. [Feature #14045]

  • Mutex is rewritten to be smaller and faster. [Feature #13517]

  • SecureRandom now prefers OS-provided sources over OpenSSL. [Bug #9569]

Other notable changes since 2.4

  • Update to Onigmo 6.1.3. It adds the absence operator. Note that Ruby 2.4.1 also includes this change.
  • Add Bundler to standard libraries.
  • Update to RubyGems 2.7.0.
  • Update to RDoc 6.0.0.
    • Change lexer from IRB based one to Ripper; this much improves the speed of generating documentation. [https://github.com/ruby/rdoc/pull/512]
    • Fix so many bugs from the last dozen years or so.
    • Support new Ruby syntaxes from the last several years.
  • Update supported Unicode version to 10.0.0.

See NEWS or commit logs for details.

With those changes, 6162 files changed, 339744 insertions(+), 28699 deletions(-) since Ruby 2.4.0!

Enjoy Ruby 2.5.0-rc1!

Download