JRuby 1.7.0.RC1 Released

JRuby 1.7.0.RC1 Released, Tuesday, September 25 2012

The JRuby community is pleased to announce the release of JRuby

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

This is the first (and hopefully only) release candidate of JRuby 1.7.
The JRuby 1.7 release series represents a tremendous amount of work by
dozens of contributors, and there are improvements in every subsystem.
Users of highly-concurrent applications will see improvements in
throughput and raw parallelism. And we have upped our compatibility
level to match Ruby 1.9.3.

We know that there are still pieces of 1.9 support we dont have yet,
like Ripper, but we think we are at a stable point where people can
use JRuby in 1.9 mode to host production applications. Barring any
significantly serious issues, RC1 will become 1.7.0. Our plan after
the release of 1.7.0 is a set of smaller point releases to address
bugs and to add the few missing pieces of Ruby 1.9.

JRuby 1.7 is the first JRuby to support the new invokedynamic
feature of the JVM. You can enable invokedynamic use on Java 7, but it
is disabled normally due to JVM issues. On Java 8 builds, it is
enabled by default. http://wiki.jruby.org/PerformanceTuning

Please, please, please test your applications against 1.7.0.RC1. We
want to make 1.7.0 a rock solid release and your contribution is
extremely helpful.

Notable Changes:

  • 1.9.3 is now our default runtime mode (1.8 is needed for 1.8.7
  • Many 1.9.x compatibility fixes
  • Several IO transcoding issues
  • Improvements and fixes to Java integration
  • 113 issues resolved

Issues resolved:


[JRUBY-3622] - newInstance and getDeclaredConstructor fail to

respect class overridden in JRuby
[JRUBY-3765] - DummyDynamicScope should never be used for backref
[JRUBY-3786] - RubyGems tests are not green; fix remaining
[JRUBY-4732] - Clean up anything that calls dataGetStruct on a
wrapped Java object to get the object
[JRUBY-4756] - Interface that has abstract methods final in Ruby
hierarchy break “real class” implementation
[JRUBY-5226] - ri error while installing Rails – Cannot create a
file named ‘<’
[JRUBY-5284] - Create full Exception hierarchy in Java types
[JRUBY-5303] - [1.9] Wrong parameters parse for method signatures
with default values
[JRUBY-5314] - Classloader-sourced “load” will attempt to read a
dir as a Ruby file
[JRUBY-5323] - control-c in cmd while running webrick rails app
does not kill jruby.exe
[JRUBY-5583] - Profiling should not bomb out trying to find method
[JRUBY-5675] - Difference in include behaviour in --1.9 mode
[JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
[JRUBY-5700] - Segmentation fault - IBM JDK
[JRUBY-5848] - jruby-core maven artifact has broken dependencies
[JRUBY-5902] - STDIN.gets under cygwin doesn’t work
[JRUBY-5908] - exec regression in windows since 1.6.0 (?)
[JRUBY-6026] - OS X install postfligh script does not work with
[JRUBY-6074] - Re-release jruby-win32ole with Java 5
[JRUBY-6105] - become_java! returns nil for Ruby classes that
inherit from Java classes
[JRUBY-6106] - JRuby 1.9 coverage library reports different
results than ruby 1.9
[JRUBY-6126] - [1.9] [RubySpec] In 1.9 mode, for should yield only
as many values as there are arguments
[JRUBY-6195] - [1.9] Process.spawn (and related methods) ignore
option hash
[JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN:
Resource temporarily unavailable
[JRUBY-6346] - Error establishing SSL connections:
OpenSSL::SSL::SSLError: Socket closed
[JRUBY-6447] - 1.9 patched oniguruma issues a number of warnings
(e.g. for character classes, unknown coderanges) we omit silently
[JRUBY-6516] - IO.select times out with ssl connection
[JRUBY-6550] - [1.9] yield yields incorrect args when splatted
args passed as 2nd arg to yield
[JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but
not in 1.9 mode
[JRUBY-6578] - File.readlink with chdir
[JRUBY-6581] - “yield called out of block” for Enumerators created
with enum_for
[JRUBY-6595] - segfault with win32/registry
[JRUBY-6620] - On windows if JAVA_HOME ends in a ‘’ then native
launcher bombs
[JRUBY-6622] - Unable to Load encrypted Private Key pem file
[JRUBY-6632] - BigDecimal.new fails when passed anything but
string (Float, BigDecimal, Fixnum)
[JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA
constructors don’t accept File objects
[JRUBY-6640] - stat.st_gid unsupported or native support failed to
load org/jruby/RubyFileStat.java:432
[JRUBY-6656] - JRuby subclass cannot call super with arguments if
parent constructor is varargs
[JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
[JRUBY-6696] - 32 bit jruby cannot run with 64 bit JVM installed
[JRUBY-6699] - OpenSSL::PKey::RSA.new fails on Windows
[JRUBY-6704] - JRuby should provide couterparts of MRI Ruby bundled
[JRUBY-6738] - Kernel.load(…, true) --> scope problem
[JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
[JRUBY-6773] - ERB parsing in JRuby 1.6.6
[JRUBY-6777] - RubyFixnum.java - two methods fail to detect some
long integer overflows
[JRUBY-6790] - Possible long integer overflow in fixnumStep in
[JRUBY-6799] - Reopening Java class fails if set with
ScriptingContainer#put and Java class
[JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
[JRUBY-6824] - Missing files/dirs in source tarball/zip
[JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode
on jruby-1.7.0-preview2
[JRUBY-6827] - ClassCastException with DummyDynamicScope in
String#rpartition? with -X+C
[JRUBY-6828] - TypeError when returning non-nil from a proc called
from Java by interface
[JRUBY-6832] - self is wrong in set_trace_func when raising
[JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL
[JRUBY-6836] - Strange interactions between a break statement and
ensure blocks
[JRUBY-6837] - Encoding Problems in Rails 3.2
[JRUBY-6839] - issuing ‘jruby -v’ causes Java exception “Ruby:
org.objectweb.asm.ClassReader java.lang.ClassNotFoundException:
[JRUBY-6840] - Java package class calls no longer working in
[JRUBY-6841] - State file use in UUID gem causes severe
performance degradation
[JRUBY-6843] - Encoding::UndefinedConversionError when reading
from IO stream given by open-uri’s Kernel#open()
[JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique
number for each object.
[JRUBY-6851] - IO#set_encoding doesn’t work with Encoding object
[JRUBY-6852] - Setting compile mode when using ScriptingContainer
[JRUBY-6855] - Signal.list missing ‘KILL’ on Windows
[JRUBY-6858] - OpenSSL::HMAC missing reset method
[JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using
–profile.api . MAX_PROFILE_METHODS too low?
[JRUBY-6860] - String#slice on strings with multibyte chars fails
[JRUBY-6863] - multibyte strings after String#slice get wrong
result on String#index(rindex)
[JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises
[JRUBY-6867] - Parsing issues with long lines
[JRUBY-6868] - Exceptions thrown when running with Coverage enabled
[JRUBY-6871] - Encoding::UndefinedConversionError when dropping a
mongo database with Mongoid 3
[JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
[JRUBY-6875] - JRuby should load “some_path/some_file.jar.rb” if
“some_path/some_file.jar” is required and “some_path/some_file.jar”
does not exist.
[JRUBY-6884] - Unexpected stack trace using ARM based linux
[JRUBY-6885] - method_missing and private methods behave differently
[JRUBY-6888] - Loading a newer joda-time seems to not work
[JRUBY-6891] - SSLSocket.accept forces reverse DNS lookup, not
required for most SSL and sometimes causes very poor performance
[JRUBY-6892] - Calling #drop on an Enumerator doesn’t work properly
[JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent
[JRUBY-6896] - nil treated as 0 in call to Thread#join


[JRUBY-5380] - Use Hotspot-specific features for calculating CPU

time when available
[JRUBY-6275] - double locking a mutex could use a better error
message, line number
[JRUBY-6445] - Allow a way to resolve interface methods from with
Ruby proxy modules
[JRUBY-6500] - Compiler improvements
[JRUBY-6643] - jrubyc AOT Java compilation doesn’t identify failure
[JRUBY-6890] - Rework paths to be similar to MRI + redefinable +
defined in one place only

New Feature

[JRUBY-4670] - Plug ruby2java java2ruby marshalling
[JRUBY-6835] - A way to send a block of code across processes.
[JRUBY-6883] - Enable subclassing of Java classes on Dalvik


[JRUBY-6466] - externalize build_lib dependencies


[JRUBY-6873] - jruby-1.7.0.preview2 much slower jruby-1.6.3 (192s 


Github Issues

307 Specs for DirectedGraph Library
306 removed snapshot in versions
304 DirectedGraph Specs : Removing a vertex doesnt remove edges

from the graph
303 DirectedGraph Specs : Removing a vertex doesnt remove edges
from the graph
301 Dynamic String/Symbol/Regexp create too much garbage
300 Symbol table cant look up from ByteList directly
294 no need to report memory/stack as properties
293 Fix for issue #276
282 call Kernel.require ruby method from autoload callback instead
of calling internal require
281 call Kernel.require ruby method from autoload callback instead
of callin
280 Kernel require
275 Remove left-over Javadoc params from Java class generator
274 Implicit blocks from Symbol#to_proc does surprising and wrong
things (with 1.9)
273 1.6 backport: JRUBY-6810
267 Various fixes for psych
266 When call Kernel#singleton_class. And instance variables
disappeared from Kernel#inspect.
265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym
261 Fixnum#to_sym is not defined in Ruby 1.9
259 native threads disabled with C extensions
258 YAML.load_file to empty file gives false


On 2012-09-25, at 18:11, Thomas E Enebo [email protected] wrote:

JRuby 1.7.0.RC1 Released, Tuesday, September 25 2012

Uwe K.
[email protected]