JRuby 1.7.0 defaults to Ruby 1.9 compatibility
With the release of JRuby 1.7.0, JRuby has now switched to behaving like Ruby 1.9.3 as a default. The new edition of the Java virtual machine-based implementation of Ruby also promises to bring performance improvements in highly concurrent applications, thanks to the one and a half years of development that has gone into enhancing all the subsystems of the language. Users still have the option to use the "-1.8" command line switch to Ruby 1.8.7 compatibility mode. The 1.7 release is the first full release since the core JRuby developers moved from EngineYard to Red Hat in May.
The developers do note that there are parts of 1.9 support which are missing, such as the Ruby 1.9.3 Ripper Ruby Parser, but they feel they are "at a stable point where people can use JRuby in 1.9 more to host production applications". That said, they also plan to be producing point releases of 1.7 every 2 to 3 weeks for the foreseeable future as they fix any problems and fill out the missing parts of 1.9's libraries.
JRuby 1.7 is also the first version of the language to support the new "invokedynamic" feature of the Java 7 and later JVMs; this should improve the performance of JRuby. Currently the feature is disabled by default on Java 7 due to JVM problems, but developers working with the in-work Java 8 will find that it is enabled by default. In contrast to that, Java 5 support has been dropped and Java 6 or later is now required. Other updates include Rubygems (1.8.24) and Rake (0.9.2.2), true native Kernel#exec on all platforms and better support for native features on Solaris and ARM Linux.
Full details of all the changes, including fixes made since the various previews and release candidates, are in the announcement. JRuby 1.7.0 is available to download as Java binaries, a Mac OS X installer, Windows executable, source code or as a gem file. Source code is also clonable from the project's GitHub repository and is licensed under the tri-licence of CPLv1.0, GPLv2 and LGPL 2.1.