DevHeads.net

JRuby 9.0.0.0.pre1 Released

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

- Homepage: <a href="http://www.jruby.org/" title="http://www.jruby.org/">http://www.jruby.org/</a>
- Download: <a href="http://www.jruby.org/download" title="http://www.jruby.org/download">http://www.jruby.org/download</a>

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 a preview release, and we know there’s work to do. We are releasing
now 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 <a href="http://bugs.jruby.org" title="http://bugs.jruby.org">http://bugs.jruby.org</a>. We also encourage users to join our
IRC channel (#jruby on Freenode) and mailing lists. You may also follow
@jruby on Twitter for updates.

Ruby 2.2 features yet to be implemented:

- Refinements #1062
- Enumerator#feed
- Kernel#spawn close-on-exec support
- ObjectSpace::WeakMap#each and Enumerable inclusion
- ObjectSpace::count_objects
- Thread#handle_interrupt is not yet fully functional
- POSIX-friendly IO, TTY, and Process logic is not used on Windows

We also have additional work to do on the new runtime:

- Startup time is a bit slower.
- Memory usage is higher.
- Straight-line performance is a little bit slower.

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.