JRuby 9.0.0.0-pre2 Released

Tuesday, April 28 2015

The JRuby community is pleased to announce the release of JRuby 9.0.0.0-pre2

JRuby 9000 is the new version of JRuby, representing years of effort and large-scale reboots of several JRuby subsystems.

Major features of JRuby 9000:

Ruby 2.2 compatibility, minus features listed below

A new optimizing runtime based on a traditional compiler design

New POSIX-friendly IO and Process

Fully ported encoding/transcoding logic from MRI

This is our second preview release, and we are getting much closer to reaching
our first .0 release. We are releasing this update to get user feedback on Ruby 2.2 functionality and overall stability.

We hope all Ruby users will try out this release and report issues on 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.

Kernel#spawn close-on-exec support

ObjectSpace::WeakMap#each and Enumerable inclusion

Thread#handle_interrupt is not yet fully functional

Notable changes since pre1:

Startup time has improved but is a tiny bit slower than 1.7.x.

Memory usage has improved but still a ways to go.

Straight-line performance has improved since pre1

Windows support improved, but still needs further work and testing

Many keyword arguments problems fixed

88 issues fixed for 9.0.0.0.pre2

The new runtime gathers more information about Ruby code and performs more analysis and optimization than our old runtime. There’s great potential here to bring Ruby performance to native Java or C, but we are just starting the optimization phase of that work. We will do our best to get startup time, memory use, and performance on par with 1.7.x (or better) before the final release of JRuby 9000.

Truffle

JRuby 9000 includes an in-development 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 all Ruby language features, but so far only some of the core and standard libraries. It has no support for RubyGems or Rails, 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.