JRuby 1.1.6 Released, Improves Ruby 1.9 Support
JRuby 1.1.6 is now available for download (JRuby 1.1.6 release notes).
A major feature is the Ruby 1.9 parser support committed in late November. As the release notes state, JRuby comes with most of Ruby 1.9 libraries, with full support planned for Q1 2009. The Ruby 1.9 support can be turned on with the
--1.9 command line switch. JRuby embedders can set the version, for instance, with a org.jruby.RubyInstanceConfig instance, which can be passed to the
JavaEmbedUtils.initialize(List loadPaths, RubyInstanceConfig config) method.
The release notes also note improvements to the
org.jruby.javasupport.JavaEmbedUtils class, which is useful for everyone embedding JRuby in regular Java code. Interacting with JRuby can require the use of internal JRuby APIs which are prone to change between releases. Solutions for this have been available eg. with BSF, or the JSR 223 hosting API introduced in Java 6. Using the BSF requires the BSF library, whereas JSR 223 will tie the code to Java 6. The JavaEmbedUtils class allows to initialize a JRuby instance, call methods, convert Ruby types to Java types, etc. without dependency on either BSF or JSR 223.
The release notes further list:
- An evergrowing list of dead IO references bug fixed
- Much faster Array.sort
- Run gems out of jar files without having to unpack them.
- Store gem repositories in jars and load them via the classpath.[..]
- Removed two measurable memory leaks during RC process
- 74 bugs fixed since 1.1.5
A sample of the fixed bugs is
- JIRA-3189 "java.lang.Iterable should have an each method"
- JIRA-3230 fixes Hpricot which was broken in the 1.1.5 release
- JIRA-3233 fixes a problem with instantiating Java objects with Rails 2.2.2
- JIRA-3126 "Allow Rubygems to be loaded and used from within jar files"