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

We finally made it to 9.0.0.0. As the flood gates open and we get some people trying this new major version for the first time we expect to get a stream of issue reports. JRuby 9k should be stable and production ready but real world users hitting it for the first time generally uncovers new issues. Because of this, we expect to fairly quickly have followup point releases.

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 rc2

Two reverts on classloading to restore behavior to be like JRuby 1.7.x

Non-lambda return passing through a lambda could return improperly

Fixed two visibility issues on methods (#3123, #3135)

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.