JRuby 9.0.0.0.rc1 Released

Wednesday, June 10 2015

The JRuby community is pleased to announce the release of JRuby 9.0.0.0.rc1

JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems. It is expected to be compatible with Ruby 2.2.x and stay in sync with C Ruby.

Major features of JRuby 9000:

Ruby 2.2 compatibility

A new optimizing runtime based on a traditional compiler design

New POSIX-friendly IO and Process

Fully ported encoding/transcoding logic from MRI

This release is approaching a level of compatibility and stability where we have moved into a release candidate stage. We will address concerns reported before going final, so now is the time to find any problems…

If you do find issues then report them on using our issue tracker at http://bugs.jruby.org. We also encourage users to join our IRC channel (#jruby on Freenode) and mailing lists. You may also follow @jruby on Twitter for updates.

It is important to point out that when we do put out JRuby 9.0.0.0 that this is only the starting point. Our new internals gives us lots of potential to keep pushing the bar higher on JRuby performance.

Notable updates since pre2

Updated to Rubygems 2.4.8 addressing CVE-2015-1855

Several parser issues (also fixed in ripper)

Optimized multiple assignment

Several added smaller missing methods for better 2.2 compatibility

A couple of bugs involving nested exceptions/ensures and $!

46 issues fixed for 9.0.0.0.rc1

Truffle

JRuby 9000 includes an preliminary version of support for the Truffle language implementation framework and Graal VM from Oracle Labs. In future releases, Truffle will provide an extremely high performance and compatible backend for JRuby. The Truffle backend supports almost all Ruby language features and the majority of the core library, and is able to run simple gems and web frameworks such as Sinatra. It has no support for RubyGems, Rails or any database drivers, does not work on Windows, and is not ready to be tested with applications at this stage. More information on Truffle and Graal can be found in the JRuby Wiki.

Github Issues resolved for 9.0.0.0.rc1

#3022 - Don't call modify() on RubyStrings so eagerly when freezing them

#3019 - Small string values backed by HUGE non-shared ByteList leading to large memory usage under 9k