Tuesday, March 22, 2011

JRuby 1.6 Released

  • Ruby 1.9.2 API and language features: JRuby 1.6 is the first release where we recommend people start trying 1.9 mode. We’ve put in months of work making sure the new APIs function, we’ve updated the standard library to the current MRI 1.9.2 copy, and we’re actively looking for missing or buggy features to add or fix. If you’ve been waiting for 1.9 support in JRuby, now’s your time to give it a try…pass –1.9 at the command line or put it in the JRUBY_OPTS environment variable and you’re ready to go!
  • Improved Ruby performance: As with every release, there’s tons of incremental perf improvements in JRuby 1.6. We never get as much time to focus on performance as we’d like, but this time there’s been more attention paid to execution performance specifically. Small benchmarks are running 1.5 to 2x faster, and CPU-bound applications should perform better as a result. We’ve also laid groundwork to enable our own optimizing compiler modes and to make it easier for the JVM to optimize things for us. It’s even better now, with enormous potential for JRuby 1.7.
  • RubyGems updates and enhancements: We’ve bumped RubyGems up to version 1.5.1, which greatly improves startup time. We’ve disabled (by popular demand) the generation of ri and rdoc during gem installation. We’ve added support for installing Java libraries directly from Maven as if they’re regular gems. And you get all this in both 1.8 and 1.9 modes.
  • Profiling and debugging: JRuby 1.6 improves the flat profiler from 1.5.6 (–profile or –profile.flat) and adds a graph-based profiler for more detail (–profile.graph). We’ve also resolved release issues for the ruby-debug gems, so you can gem install them from JRuby without hassle.
  • Platform and native: This release marks the first time we’ve called Windows an “officially supported” platform. All that really means is we’ve got a Windows CI server and we’re keeping it green for all the suites we run on Linux and OS X. We’re also previewing experimental support for installing C extensions written to MRI’s C API. Not every extension works, and there’s certainly some caveats…but it’s a hell of a thrill seeing sqlite3_ruby or rubysdl installing and working.
  • JVM and JVM languages: For 1.6, I wired up a lot more Ruby logic to the new “invokedynamic” JVM bytecode, which may enable us to run Ruby code many times faster than we do today. We also included enhancements to make it easier to call from Ruby into Scala libraries, which has enabled the Lift web framework to offer support for Ruby. The JVM is is becoming an amazing polyglot environment, and JRuby’s leading the charge.
  • All-around improvements: JRuby starts up faster, runs faster, uses less memory, and integrates with the JVM and JVM libraries better. It behaves consistently across platforms, runs anywhere the JVM runs (including on Android!), and lets you remain a Rubyist while you take advantage of an amazing VM and solid libraries. It’s the best of both the Ruby and the JVM worlds, together in one package.
http://www.engineyard.com/blog/2011/jruby-1-6-released-now-what/

No comments: