[jruby] [ANN] JRuby released!

Thomas E Enebo tom.enebo at gmail.com
Wed Jan 27 03:04:05 JST 2016

The JRuby community is pleased to announce the release of JRuby

  -  Homepage: http://www.jruby.org/
  -  Download: http://www.jruby.org/download

JRuby 9000 is the newest major version of JRuby, representing years of
effort and large-scale reboots of several JRuby subsystems. It is expected
to be compatible with Ruby 2.2.x and stay in sync with C Ruby. JRuby is our latest release…

Major features of JRuby 9000:

  - Ruby 2.2 compatibility
  - A new optimizing runtime based on a traditional compiler design
  - New POSIX-friendly IO and Process
  -  Fully ported encoding/transcoding logic from MRI

If you do find issues then report them on using 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.
Notable updates since

  -  Fixed leaks in IO.select and IO.copy_stream.
  -  Implemented DATA support lost in 9k.
  -  Fixed regression breaking empty-body define_method methods.
  -  Windows stat crashing on 32 bit JVMs
  -  53 issues fixed for


JRuby 9000 includes an preliminary version of support for the Truffle
language implementation framework and Graal JIT compiler from Oracle Labs.
In future releases, Truffle will provide an extremely high performance and
compatible backend for JRuby. The Truffle backend supports almost all Ruby
language features and the majority of the core library, and is able to run
simple gems and web frameworks such as Sinatra. It has no support for
RubyGems, Rails or any database drivers, and does not work on Windows.
However we are now interested in people submitting issues for small gems
with minimal dependencies who see issues running on JRuby+Truffle

Graal has been integrated into Java 9 early access builds, and can be used
today as part of the GraalVM, which is currently the recommended way to run

More information on Truffle and Graal can be found in the JRuby Wiki.
Github Issues resolved for

    #3609 - Incompatible method lookup under Kernel.load(file,true), aka
wrap, on 9.x
    #3602 - Fix cache-constructed-proxies
    #3599 - jrubyc won't compile a file with method in outer scope
(NoMethodError: undefined method `new_method' for nil:NilClass)
    #3597 - Fix SizedQueue#num_waiting regression
    #3591 - Unhandled Java exception:
java.lang.ArrayIndexOutOfBoundsException: -3
    #3590 - IO.copy_stream leaves opened files in ObjectSpace
    #3588 - Leak in select for a UNIXSocket (at least)
    #3586 - org.jruby.runtime.load.ClassExtensionLibrary.tryFind fails on
certain classnames
    #3581 - Cache proxies of newly constructed Java objects
    #3579 - JRuby doesn't support DATA and __END__
    #3577 - Block call IR optimization failures by
    #3576 - ConstructorInvoker isn't storing the proxy in the
    #3574 - autoload + const_defined? inconsistent with Ruby 2.0+
    #3573 - MRI 2.2.2 / JRuby difference given explicit `self`
receiver for private method call.
    #3564 - Rational suffix doesn't work with 0
    #3563 - jdk9 produces warning on launcher
    #3558 - case doesn't match empty array
    #3542 - StopIteration does not propagate a result
    #3540 - Fix Enumerable#{min_by, max_by} with nil
    #3539 - Prevent to make subclass of Class
    #3538 - Regexp match raises java.lang.ArrayIndexOutOfBoundsException in
numbered backreference
    #3537 - Fix Array#collect! that returns a sized enumerator as Array#map!
    #3530 - Calling IO.console twice raises NoMethodError for `#open?`
    #3527 - BigDecimal.new("5-6").to_i returns 0 on 9k where 1.7 and MRI
returns 5
    #3520 - Having Problems With Celluloid::IO / Nonblocking IO
    #3494 - Proper support for UNIXSocket.for_fd
    #3493 - Wrong name mangling. V8Utils => v8utils instead of v8.utils
    #3492 - UNIXSocket#recv_io, UNIXSocket#send_io implementation using JNR
    #3488 - forcing a nil (no) backtrace with Java APIs
    #3483 - define_method with empty body throws RuntimeError in interpreter
    #3478 - Print warning when JRuby.objectspace is enabled
    #3472 - Hash keys should only be deduplicated for direct literal forms
    #3453 - AOT compile of method with conditional return results in "is
not compiled Ruby; use java_import to load normal classes"
    #3452 - AOT compile of empty module results in NullPointerException
    #3437 - Fix for issue 3402: String#encode with :replace option does not
return correct value
    #3433 - Getting back different values between Time#to_r and Time#to_i
    #3412 - [Truffle] make j+tr part of the distribution
    #3411 - Convert chinese encoding GB18030 to UTF-8 doesn't work
    #3405 - Hash has bug to set encoding into key string wrongly when the
key string is used once with different encoding
    #3402 - String.encode :replace option does not work when encoding to
    #3331 - Fix 3303 refactor zoneHelper into getRubyTimeZoneName
    #3328 - remove support for aliasing Java indexed getters as Ruby readers
    #3262 - jruby Java::JavaLang::Character.name
    #3209 - Correct a format string in Signal#trap.
    #3208 - Trapping reserved signals doesn't print a meaningful message
    #3193 - Java::JavaLang::StackOverflowError running spec which works on
    #3121 - jruby performance regressions
    #3120 - Add some more tests for bignum pow
    #3119 - Fix date.rewrite_frags
    #2149 - Failing DateTime.strptime for weird dates near epoch
    #2142 - Struct#inspect does not produce the same output as MRI 2.2
    #940 - Implement UNIXServer and UNIXSocket.for_fd
    #455 - RubyUDPSocket swallows exceptions

blog: http://blog.enebo.com       twitter: tom_enebo
mail: tom.enebo at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ruby-lang.org/pipermail/jruby/attachments/20160126/f5cf9e6f/attachment.html>

More information about the JRuby mailing list