JRuby 1.7.0. Released

Monday, October 22 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0

After a long journey (1.5 years..oh my) we have released JRuby 1.7.0. 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 JRuby now defaults to 1.9 mode, with compatibility level targeting Ruby 1.9.3.

We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we are at a stable point where people can use JRuby in 1.9 mode to host production applications. At this point, we plan on putting out point releases of 1.7.x every 2-3 weeks for the foreseeable future. These point releases will be made to address any reported problems users run into; and also to fill out the few missing 1.9 libraries not yet finished.

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. https://github.com/jruby/jruby/wiki/PerformanceTuning

  • 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
  • Ruby standard library updated to 1.9.3p286
  • Many 1.9.x compatibility fixes
  • Support for invokedynamic
  • Performance and concurrency improvements throughout
  • Java 5 support dropped (Java 6+ required)
  • All known 1.9 encoding issues resolved
  • Kernel#exec now does a true native exec on all platforms
  • Improvements and fixes to Java integration and embedding
  • Native features now better supported on Solaris, ARM Linux, and others
  • Update to Rubygems 1.8.24
  • Update to Rake 0.9.2.2

Issues resolved since RC2:

  • [JRUBY-3294] - Ruby code can make JRuby fail with java.lang.ArrayIndexOutOfBoundsException, Stack trace of SystemStackError is errorneous
  • [JRUBY-6732] - FFI+InvokeDynamic and wrong number of arguments produces java backtrace
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [JRUBY-6811] - Time.at rounding errors below milliseconds
  • [JRUBY-6845] - FFI: IndexError in AbstractMemory#write_string
  • [JRUBY-6857] - Upgrade to newer Joda-time version
  • [JRUBY-6904] - IO.popen '' throws wrong exception
  • [JRUBY-6907] - Regression: ruby,java(thread),ruby exception path results in nilClass exception
  • [JRUBY-6917] - "already initialized constant ClassReader" when embedding JRuby
  • [JRUBY-6923] - UTF-8 string is not matching //i properly
  • [JRUBY-6926] - zlib corruption in 1.9 mode
  • [JRUBY-6930] - yaml escaping of non-printable characters
  • [JRUBY-6932] - ruby block without arguments for itemStateChanged in 1.9 can fail
  • [JRUBY-6933] - String#split fails after doing a regex on UTF-8 chars.
  • [JRUBY-6936] - JRuby doesn't seem to run on ARMv5-platform
  • [JRUBY-6937] - unable to use JAVA_HOME pointed to a jre in windows 7
  • [JRUBY-6946] - Object.id still exists in 1.7.0.RC2
  • [JRUBY-6947] - Call to "free" wrapped up via FFI causes JVM to exit with a malloc error.
  • [JRUBY-6952] - Time#+ gives off-by-one error with fractional microseconds
  • [JRUBY-6906] - error message for Process.kill 'EXIT' is wrong

Jira Issues resolved for RC2:

  • [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
  • [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
  • [JRUBY-6510] - String#encode! not correctly implemented.
  • [JRUBY-6804] - Jruby cannot work with sendmail in a rails environment (or IO.popen does not function in jruby)
  • [JRUBY-6838] - Kernel#rand(Range) not supported
  • [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
  • [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
  • [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
  • [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
  • [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars
  • [JRUBY-6942] - gets returns nil very early in the process lifetime.
  • [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
  • [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.

Jira Issues resolved for RC1:

  • [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
  • [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
  • [JRUBY-5318] - syntax error in jruby unix startup
  • [JRUBY-5583] - Profiling should not bomb out trying to find method name
  • [JRUBY-5615] - __FILE__ corrupts cyrillic characters
  • [JRUBY-5623] - Enumerable doesn't wrap objects properly
  • [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-5804] - First call of Time.now is slow and confuses benchmark result
  • [JRUBY-5848] - jruby-core maven artifact has broken dependencies
  • [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
  • [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
  • [JRUBY-6074] - Re-release jruby-win32ole with Java 5
  • [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
  • [JRUBY-6360] - invokedynamic performance degradation on a certain workload
  • [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-6595] - segfault with win32/registry
  • [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
  • [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
  • [JRUBY-6773] - ERB parsing in JRuby 1.6.6
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [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-6831] - Enumerator combined with reduce using symbols fails
  • [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
  • [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
  • [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: org.objectweb.asm.ClassReader"
  • [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
  • [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-6854] - EXCEPTION_ACCESS_VIOLATION
  • [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 exception)
  • [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-6892] - Calling #drop on an Enumerator doesn't work properly
  • [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
  • [JRUBY-6896] - nil treated as 0 in call to Thread#join
  • [JRUBY-4516] - Load a properties file for distribution-presets
  • [JRUBY-4517] - Allow property to override the binary directory
  • [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-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only
  • [JRUBY-6835] - A way to send a block of code across processes.
  • [JRUBY-6883] - Enable subclassing of Java classes on Dalvik

Jira Issues resolved for preview2:

  • [JRUBY-4107] - Java method selection is subject to reflection ordering
  • [JRUBY-5053] - memory leak in rubygems
  • [JRUBY-5082] - exec() would be more useful if it really exec()ed
  • [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
  • [JRUBY-5691] - gem update --system wipes out RubyGems Maven support
  • [JRUBY-5753] - Library `fcntl' can not be loaded on Solaris/Weblogic (JRuby 1.6.1) -> NullPointerException
  • [JRUBY-5785] - BUG: invoking UndefinedMethod.call
  • [JRUBY-5899] - NotImplementedError: Process::Status#exited? not implemented
  • [JRUBY-5902] - STDIN.gets under cygwin doesn't work
  • [JRUBY-5939] - [:space:] does not match unicode 0x3000: fullwidth whitespace
  • [JRUBY-6024] - Platform.getPackageName() NPE when embedded.
  • [JRUBY-6056] - High CPU Loop with parallel Etc.group iterrations
  • [JRUBY-6121] - Local variables cross eval scopes
  • [JRUBY-6124] - Yielding no values to a block gives ArrayIndexOutOfBoundsException
  • [JRUBY-6125] - Yielding a single object to a block with |a, b| arguments does not call #to_ary
  • [JRUBY-6148] - UnsatisfiedLinkError on Solaris
  • [JRUBY-6181] - SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)
  • [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
  • [JRUBY-6253] - IBM JVM rejects class/method names with #, as in our JIT recently.
  • [JRUBY-6286] - jnr-posix WindowsHelpers.isBatch Always Returns False
  • [JRUBY-6299] - Slow perf in String#split or #join on 1.9 mode
  • [JRUBY-6317] - YAML can't parse some valid unicode characters
  • [JRUBY-6330] - Performance degradation in Time.strptime with invokedynamic
  • [JRUBY-6376] - File.stat.size on Solaris: ridiculously large results
  • [JRUBY-6395] - Coerce Fixnum to Number
  • [JRUBY-6428] - Regression: Float#to_d doesn't work on 1.7 (did in 1.6)
  • [JRUBY-6459] - JRuby head causes rack response to change behaviour
  • [JRUBY-6465] - out of memory building c extensions
  • [JRUBY-6481] - AccessControl exceptions attempting to create JRuby instances in applet
  • [JRUBY-6493] - Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body
  • [JRUBY-6494] - File#directory? always returns false on Solaris
  • [JRUBY-6495] - java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException
  • [JRUBY-6514] - java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException
  • [JRUBY-6521] - With Java 7, nailgun client cannot list local gems more than once
  • [JRUBY-6525] - FFI bug with Solaris JRuby >=1.6.6
  • [JRUBY-6532] - ftp.nlst, ftp.ls doesn't work on JDK 7u3
  • [JRUBY-6548] - REXML error when reading files containing ISO-8859-1 encoded data
  • [JRUBY-6552] - File.directory? does not work under 1.9 mode on Solaris
  • [JRUBY-6553] - Application continues running after throwing out of memory exception in Thread.
  • [JRUBY-6613] - special characters like umlauts make Kramdown hang (works with MRI Rubies)
  • [JRUBY-6615] - File.open ignores specified external encoding
  • [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
  • [JRUBY-6638] - Multicast UDPSocket send does not work with host and port
  • [JRUBY-6639] - Marshal.load takes forever when deserializing Rails unicode db in WEBrick
  • [JRUBY-6658] - Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry
  • [JRUBY-6663] - `jruby -S bundle exec rails c` fails with "Bundler: command not found"
  • [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
  • [JRUBY-6666] - Open3.popen3 failing due to missing handling for [path, argv[0]] array
  • [JRUBY-6674] - Inconsistent java method/signature choosing depending on java version/platform
  • [JRUBY-6677] - open("|something", "w") does not open in write mode
  • [JRUBY-6678] - compilation fails for CC="ccache gcc"
  • [JRUBY-6679] - Encoding.default_external discrepancy between JRuby and MRI
  • [JRUBY-6682] - ' jgem search -r ak ' causes exceptions.
  • [JRUBY-6685] - Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows
  • [JRUBY-6686] - JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod
  • [JRUBY-6693] - Get the terminal width with JRuby
  • [JRUBY-6694] - Invalid byte sequence in utf-8
  • [JRUBY-6701] - Net::HTTP ignore JSE defined HTTP Proxy options
  • [JRUBY-6702] - File.utime does not check file permissions
  • [JRUBY-6703] - Remove Enumerable#join from 1.9 mode
  • [JRUBY-6705] - Error during gem loading in Rails: ActiveRecord is not missing constant Base
  • [JRUBY-6706] - Collections.shuffle works incorreclty on Ruby arrays
  • [JRUBY-6707] - JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree
  • [JRUBY-6708] - NullPointerException instead of proper exceptions output
  • [JRUBY-6709] - ffi problems on 1.7.0.preview1?
  • [JRUBY-6711] - JRuby 1.7 needs a formal release of jline
  • [JRUBY-6713] - win32/registry.rb warning
  • [JRUBY-6715] - jruby-openssl cert validation fails on windows
  • [JRUBY-6717] - jruby1.7.0preview1 doesn't work on Windows with jdk7
  • [JRUBY-6718] - crash with java.lang.invoke.WrongMethodTypeException
  • [JRUBY-6721] - probably extraneous warning message generated
  • [JRUBY-6722] - Can't instantiate ThreadGroup subclass with arguments
  • [JRUBY-6724] - NO_FILE_CLASS Profile does disables File but not FileStats that depends on File
  • [JRUBY-6725] - NameError: uninitialized constant RubyVM
  • [JRUBY-6729] - [1.9] block argument to yield method is not correctly pass to a block. -- pp's seplist method
  • [JRUBY-6731] - Can't load class files in WARs compiled by warbler using jruby 1.7.0.preview1
  • [JRUBY-6734] - Socket.new seems broken -- throws exceptions on valid params
  • [JRUBY-6735] - FileUtils.chmod broken for symlinks
  • [JRUBY-6737] - Cannot use rspec with JRuby 1.7
  • [JRUBY-6739] - Does not read UTF-16 properly
  • [JRUBY-6740] - BasicObject.respond_to? raises a "undefined method `respond_to_missing?'"
  • [JRUBY-6741] - Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux
  • [JRUBY-6742] - ant dist aborts on non-Mac hosts
  • [JRUBY-6745] - ClassCastException calling Fixnum#== with a Java Integer
  • [JRUBY-6746] - OpenSSL 'connect_nonblock' missing/broken in 1.6.7 and 1.7.0.preview1
  • [JRUBY-6748] - Race condition still in thread list
  • [JRUBY-6753] - class_eval should inherit __name__ from the caller
  • [JRUBY-6755] - Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)
  • [JRUBY-6760] - ArgumentError output
  • [JRUBY-6761] - NoMethodError: undefined method `recvfrom' for #<Socket:fd>
  • [JRUBY-6764] - Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.
  • [JRUBY-6766] - --profile slows down Array#join , which distorts profiling results
  • [JRUBY-6768] - Instance variable value is lost under certain circumstances
  • [JRUBY-6769] - Curried lambda/proc does not work correctly with Array.map
  • [JRUBY-6774] - wrong exception class thrown when opening file after Dir.chdir
  • [JRUBY-6775] - RubyRandom is not thread-safe
  • [JRUBY-6776] - Array#join(nil) should use $, as a separator for compatibility
  • [JRUBY-6778] - Possible long integer overflow bug in Integer#succ in RubyInteger.java
  • [JRUBY-6779] - Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?
  • [JRUBY-6780] - File.open creates file without permissions
  • [JRUBY-6782] - load path doesn't respect rubygems when invoked from command line
  • [JRUBY-6784] - Wrong arg passed with lambda with splat
  • [JRUBY-6785] - NoMethodError calling callMethod on instance of reopened Java class
  • [JRUBY-6786] - opening the singleton class of an exception breaks equal and inspect
  • [JRUBY-6788] - Missing prompt in rails console
  • [JRUBY-6791] - RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace
  • [JRUBY-6792] - Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet
  • [JRUBY-6801] - bundle exec no longer works
  • [JRUBY-6802] - JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)
  • [JRUBY-6803] - Reading thousands of files significantly slower with JRuby 1.7
  • [JRUBY-6808] - org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish
  • [JRUBY-6809] - Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails
  • [JRUBY-6812] - 1.7 regression handling Java exceptions
  • [JRUBY-6815] - IO.read doesn't work with pipes
  • [JRUBY-6819] - java.lang.ArrayIndexOutOfBoundsException in String#each_line
  • [JRUBY-6820] - Unexpected behavior of IO.popen when giving arguments as an array containing strings
  • [JRUBY-6821] - FFI::Pointer#write_string is missing
  • [JRUBY-6822] - Net::HTTP SSL connections fail with EAGAIN
  • [JRUBY-6853] - Range with float min max discrepancy
  • [JRUBY-6866] - YAML.parse in 1.8 and 1.9 mode cannot parse trailing tabs
  • [JRUBY-6424] - Allow java_signature to generate throws clause for methods/constructors
  • [JRUBY-6688] - Tempfile#{unlink,delete} should warn or actualy do something
  • [JRUBY-6697] - JRuby 1.7 should report 1.9 as default
  • [JRUBY-6714] - require 'java' in verbose mode causes circular dependency warning
  • [JRUBY-6813] - Implement Time#round
  • [JRUBY-6862] - JRuby.runtime doesn't exist in 1.7 preview2
  • [JRUBY-6816] - jffi 1.2 jar files for FreeBSD
  • [JRUBY-6789] - Test for embedded JRuby are not run by CI
  • [JRUBY-6762] - How to detect if a Ruby method has been defined using ScriptingContainer

Jira Issues resolved for preview1:

  • [JRUBY-928] - Java arrays don't inherit from java.lang.Object in Rubified Java class hierarchy
  • [JRUBY-2317] - File writing is slower in JRuby than MRI
  • [JRUBY-3293] - Cannot reopen a class from an included module
  • [JRUBY-3519] - Wrong work replacement char with russian charset
  • [JRUBY-3812] - Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
  • [JRUBY-3957] - Not possible to 'rescue' exception caused by illegal argument involving a static field
  • [JRUBY-3986] - File inconsistency handles file:/// URLs pointing to things inside a JAR
  • [JRUBY-4105] - Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
  • [JRUBY-4115] - cipher.rb:24: superclass must be a Class (Module given) (TypeError)
  • [JRUBY-4220] - File.dirname(__FILE__) doesn't return correct value when a script is loaded from classpath
  • [JRUBY-4291] - UNIXServer#accept can't be interrupted by kill/raise
  • [JRUBY-4339] - Kernel.load with wrap=true does not protect the global namespace of calling program
  • [JRUBY-4484] - jruby -rtracer doesn't trace
  • [JRUBY-4605] - RubyIO#select puts connectable sockets in the read set instead of write set
  • [JRUBY-4626] - Gaps in STDIN pipe stream if backtick is used
  • [JRUBY-4717] - [1.9.2] New digest methods are missing (base64digest and base64digest!)
  • [JRUBY-4771] - InvokeDynamic's CallSite now takes only MethodHandle in constructor
  • [JRUBY-4843] - COPYING file is (partially) incorrect and outdated
  • [JRUBY-4887] - Problem with ja_JP.eucJP locale
  • [JRUBY-4995] - On Windows, Socket constants do not agree with MRI's, and BasicSocket#setsockopt fails when MRI does not.
  • [JRUBY-5090] - java class objectId() overrides .object_id
  • [JRUBY-5178] - Incorrect SSLSocket implementation loaded despire require 'jruby/openssl/gem_only' statement.
  • [JRUBY-5189] - [1.9] invalid byte sequence in UTF-8
  • [JRUBY-5201] - [1.9] uncaught timeout seems to cause silent failure
  • [JRUBY-5222] - Reopening a file descriptor on a socket doesn't work (gives "could not reopen: null (IOError)")
  • [JRUBY-5279] - assert_raise fails on native exceptions
  • [JRUBY-5317] - Objects loaded via Marshal don't get Java class applied corrected unless passed through fn taking exact type
  • [JRUBY-5320] - require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
  • [JRUBY-5348] - Process.spawn should fail if wrong args passed
  • [JRUBY-5375] - [1.9] Add "Mark" features to Psych
  • [JRUBY-5428] - redblack benchmark slower than it should be
  • [JRUBY-5435] - mkdir_p wrongfully encodes directory names when ran from a Jar
  • [JRUBY-5446] - jcodings no longer in sync with current data 1.9.2 is using
  • [JRUBY-5459] - JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
  • [JRUBY-5512] - regular expressions + regexp = incorrect results.
  • [JRUBY-5547] - add String#byteslice() method
  • [JRUBY-5560] - JRuby does not detect unix socket
  • [JRUBY-5622] - Regex string interpolation breaks unicode properties
  • [JRUBY-5630] - Java calls have lost the Java part of the trace
  • [JRUBY-5643] - [1.9] Array#map and Array#collect produce the same enumerator; should be specific to the method called
  • [JRUBY-5647] - Missing method Socket::ip_address_list
  • [JRUBY-5650] - running "ruby" inside a rake task ignores JRUBY_OPTS
  • [JRUBY-5665] - RubySpec: String#scan failures
  • [JRUBY-5678] - tmpdir cannot be delete when jruby has sudo/root rights
  • [JRUBY-5681] - jruby doesn't fork the backtick command when the command is jruby
  • [JRUBY-5708] - IO.select does not block on unix sockets
  • [JRUBY-5726] - FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
  • [JRUBY-5742] - Fails to use UTF-8 encoded source with BOM.
  • [JRUBY-5745] - MethodFactory impls do not set NativeCall
  • [JRUBY-5762] - Proc#=== is not same as Proc#call in 1.9 mode.
  • [JRUBY-5774] - [ruboto] unsupported Java version: 0.9
  • [JRUBY-5775] - [ruboto] Dir[] gives empty array when listing files below the root of the apk
  • [JRUBY-5779] - $LOADED_FEATURES is updated before loading finished
  • [JRUBY-5792] - Eval error for hashes containing symbols ending with an equals sign
  • [JRUBY-5811] - jruby 1.9 fails to load irb
  • [JRUBY-5813] - FFI::AutoPointer occasionally calls releaser proc when GC'd, even if autorelease is set to false
  • [JRUBY-5823] - jruby -x bug
  • [JRUBY-5835] - [ruboto] File#read fails with jruby-jars-1.6.2
  • [JRUBY-5842] - NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
  • [JRUBY-5852] - Can't serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
  • [JRUBY-5863] - Named captures cause crash when there is no match
  • [JRUBY-5866] - JRuby can't access nested Java class if the class is called 'id'
  • [JRUBY-5874] - Kernel#` and Kernel#system didn't correctly glob when using ruby
  • [JRUBY-5876] - Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
  • [JRUBY-5878] - Enumerator.map is not yielding all values
  • [JRUBY-5881] - Update to jnr-constants 0.8
  • [JRUBY-5943] - Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
  • [JRUBY-5953] - rvm jruby 1.6.3 freezes after issued `irb` or
  • [JRUBY-5955] - maven build of JRuby 1.6.3 fails on Linux Fedora 15
  • [JRUBY-5964] - Digest::Base#file does not handle Pathname as parameter when ran in 1.9
  • [JRUBY-5968] - Mac OSX ant dist failure w/ patch
  • [JRUBY-5973] - Failure to connect to Nailgun server produces confusing error
  • [JRUBY-5977] - test_rubyopts_rubygems_cleared_in_child test failure w/ patch
  • [JRUBY-5981] - Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
  • [JRUBY-5987] - Regression: IncludedModuleWrapper does not delegate to new Module autoload map
  • [JRUBY-5988] - Hash.inspect in --1.9 results in ASCII-8BIT encoding
  • [JRUBY-5989] - MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
  • [JRUBY-5995] - `Readline::HISTORY << str` and push should return HISTORY
  • [JRUBY-5996] - gem update --system crashes with NPE
  • [JRUBY-6031] - ActiveRecord::JDBCError in JRuby 1.6.4
  • [JRUBY-6035] - Randomly changed hash key in overriden []= method in Hash inherited class
  • [JRUBY-6037] - org.objectweb.asm.ClassReader is not found under some circumstances.
  • [JRUBY-6043] - Fix for JRUBY-5965 breaks Mirah macro compilation
  • [JRUBY-6048] - Array#repeated_permutation(n) enumerates nothing when n is greater than the length
  • [JRUBY-6058] - JRuby 1.6.4 incompatible with Google App Engine
  • [JRUBY-6062] - [ruboto][regression] Increased stack usage
  • [JRUBY-6068] - Trunk Build Failure for install_dist_gems task
  • [JRUBY-6070] - TCPSocket#new issues with local_addr and local_port
  • [JRUBY-6071] - IO.select returning arrays with nil elements
  • [JRUBY-6075] - ant dist fails on both master and jruby-1_6 branches
  • [JRUBY-6076] - Mixed-case Java package name not resolved
  • [JRUBY-6100] - NameError Exception if I try to use syck as YAML engine
  • [JRUBY-6101] - JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
  • [JRUBY-6103] - allocator undefined for NativeException
  • [JRUBY-6108] - bin/jruby script has incompatible bourne shell syntax
  • [JRUBY-6110] - Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
  • [JRUBY-6119] - Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
  • [JRUBY-6127] - Magic comment should start in column 1
  • [JRUBY-6129] - Multiple assignment with splatted LHS fails to call #to_ary on corresponding object
  • [JRUBY-6130] - hash#update calls to_hash method on frozen object (in 1.9 mode)
  • [JRUBY-6131] - Integer#round can effectively hang jruby for large negative arguments in --1.9 mode
  • [JRUBY-6137] - Small Leak in Fileno Bookkeeping For STDIO RubyIOs
  • [JRUBY-6141] - All MatchData objects resulting from an invocation of String#scan are updated with the current match
  • [JRUBY-6143] - [1.9] [RubySpec] Regexp Spec failures with /n
  • [JRUBY-6149] - Some native exceptions are wrapped too agressively
  • [JRUBY-6165] - IO.popen forcibly kills process when io is closed
  • [JRUBY-6172] - Requiring a file from a JAR that has a path inside the JAR that coincides with a path on the file system that includes a symlink fails
  • [JRUBY-6180] - "SystemCallError: Unknown error - Connection reset by peer" should be mapped to Errno::ECONNRESET
  • [JRUBY-6199] - JRuby is hardcoded to use '-mmacos-version-min=10.4' which is not compatible with '-rpath' being used
  • [JRUBY-6202] - JIT-ed class names only use method names, causing collisions
  • [JRUBY-6204] - UTF-8 char in XML hangs in Joni
  • [JRUBY-6221] - json gem encoding/decoding is 2x slower than under MRI
  • [JRUBY-6227] - [1.9] Struct#members and Struct::members should return an Array of Symbols in 1.9
  • [JRUBY-6234] - Kernel.system doesn't work with environement parameters
  • [JRUBY-6237] - Allow the syntax `a = b = f 1`
  • [JRUBY-6239] - unable to silence warnings
  • [JRUBY-6245] - `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
  • [JRUBY-6248] - thread leak
  • [JRUBY-6250] - When executing an Ant build.xml file, the Ant executable should not be required to live on the environment's $PATH
  • [JRUBY-6251] - NailGun and 1.9 seem not to be usable at the same time ( --1.9 and --ng)
  • [JRUBY-6259] - ant test - fails in WinXP: (LoadError) no such file to load -- jruby
  • [JRUBY-6265] - Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
  • [JRUBY-6266] - Unicode encoding problem in CSV.foreach
  • [JRUBY-6269] - JRuby --1.9 cannot load YAML output from JRuby --1.8
  • [JRUBY-6277] - Dependency to compiler package from org.jruby.Ruby breaks Ruboto
  • [JRUBY-6278] - [dev only] Double require bug in the handling of concurrent requires
  • [JRUBY-6279] - Invokedynamic support is missing 'float_op_equal'
  • [JRUBY-6280] - Fails to open fifo for writing.
  • [JRUBY-6281] - [1.9] Applet does not work in the 1.9 mode
  • [JRUBY-6282] - Colon is not allowed in a file name on Windows
  • [JRUBY-6283] - Master crashes when calling an FFI-attached C library function
  • [JRUBY-6284] - Calls to Kernel#exit result in an exception printed on stderr
  • [JRUBY-6285] - JRuby 1.7 master on Java7u2 is *slower* running a benchmark than master on Java6
  • [JRUBY-6291] - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
  • [JRUBY-6292] - Massive perf degradation in pack after ByteList update
  • [JRUBY-6293] - jruby-dist-master does not build C extensions
  • [JRUBY-6295] - Dir.chdir, $HOME and $LOGDIR behavior
  • [JRUBY-6300] - TestMethodmissing testcase fails with Java 7
  • [JRUBY-6301] - scripting_lang.jruby:undefined method in test_loop_1_9.rb
  • [JRUBY-6305] - C Extension fails to build
  • [JRUBY-6307] - Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
  • [JRUBY-6313] - jruby-launcher rspecs fail on ubunutu
  • [JRUBY-6318] - Tempfile#open does not return the value of the block given to it
  • [JRUBY-6320] - "bom|utf-8" File encoding not supported in 1.9 mode
  • [JRUBY-6325] - Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
  • [JRUBY-6327] - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
  • [JRUBY-6328] - [Ruboto][regression] LoadError with master
  • [JRUBY-6341] - Regression: Enumerable#first on a Java list returns an array, not an element
  • [JRUBY-6343] - Running Webrick in 1.9 mode is causing IllegalMonitorStateException
  • [JRUBY-6344] - Embedded \r should not be treated as end of comment line
  • [JRUBY-6349] - Running 'ant clean-all' in git-free environments fails
  • [JRUBY-6371] - Mac OS X installer missing from snapshots directory
  • [JRUBY-6378] - cext fails to compile on 64-bit Ubuntu Oneirc
  • [JRUBY-6386] - time.localtime not taking any arguments
  • [JRUBY-6389] - TypeError: can't convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
  • [JRUBY-6394] - Socket.new takes symbolic protocol, etc
  • [JRUBY-6401] - Psych::SyntaxError while installing some gems in 1.9 mode
  • [JRUBY-6413] - jruby gem install chops off first character from files it extracts
  • [JRUBY-6417] - exception in rake assets:precompile in jruby-1.6.6
  • [JRUBY-6419] - GzipReader encodings still not right; breaks "gem install"
  • [JRUBY-6421] - installing jruby-launcher fails with wrong filenames (zlib error apparently)
  • [JRUBY-6438] - "TypeError: can't convert Array into String" from ffi code in 1.9 mode
  • [JRUBY-6439] - cext: Memory leak in String and Array handling
  • [JRUBY-6449] - connect_nonblock + select needs to eventually finishConnect
  • [JRUBY-6450] - jruby-win32ole fails under java7 and jruby master; can't find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
  • [JRUBY-6451] - memory leak in rb_struct_new
  • [JRUBY-6452] - rb_class_of() calls static object method instead of static long method
  • [JRUBY-6475] - md5 digest causes thread lock
  • [JRUBY-6476] - org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
  • [JRUBY-6477] - Tempfile#stat raises java.lang.NullPointerException when unlinked
  • [JRUBY-6483] - Ruby array to_java does not appear to work
  • [JRUBY-6485] - :__recursive_key__ left in threadlocals
  • [JRUBY-6489] - FileLock.release() throwing Java::JavaLang::NullPointerException
  • [JRUBY-6492] - "InvalidTransformException" on startup of large application
  • [JRUBY-6498] - Net::Http does not close socket when open_timeout is exceeded
  • [JRUBY-6501] - warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
  • [JRUBY-6502] - "Config" should be deprecated in JRuby 1.7 (1.9 mode)
  • [JRUBY-6504] - Block parameter syntax issue where the closing | comes at the beginning of the line
  • [JRUBY-6511] - Timeout doesn't work when https server not responding
  • [JRUBY-6512] - Time.now shows wrong timezone for Moscow region
  • [JRUBY-6517] - StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
  • [JRUBY-6523] - Static ThreadLocals must be weak or soft or not static
  • [JRUBY-6526] - Socket#accept no such method?
  • [JRUBY-6527] - Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
  • [JRUBY-6528] - Socket#connect_nonblock and IO::select appear to be misbehaving?
  • [JRUBY-6533] - JavaNullPointer Exception instead method_missing
  • [JRUBY-6534] - Broken block-local vars in 1.9 mode
  • [JRUBY-6538] - 'obj !~ thing' is not the same as obj.send(:!~, thing)
  • [JRUBY-6541] - DRb::DRbIdConv difference between 1.8 and 1.9
  • [JRUBY-6545] - unable to load win32/registry in 1.9 mode
  • [JRUBY-6549] - JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
  • [JRUBY-6551] - Incorrect Ruby compatibility description displayed
  • [JRUBY-6554] - \r at the end of String can cause SyntaxError
  • [JRUBY-6556] - BigDecimal divided by Rational gives nil in --1.9 mode
  • [JRUBY-6559] - ZLib buggy handling in 1.6.7
  • [JRUBY-6560] - File.expand_path for path starting with "jar:file:" fails
  • [JRUBY-6562] - Join fails on fixnum sub-array
  • [JRUBY-6567] - characters to the console aren't echoed after a background then foreground of jruby irb session
  • [JRUBY-6570] - autoload :Time, 'time' doesn't work
  • [JRUBY-6571] - StackOverflow when calling java.util.regex.Matcher#end
  • [JRUBY-6572] - File.open with 'b' options should always 'gets' string with 'ASCII-8BIT' encoding, regardless the value of 'Encoding.default_internal'
  • [JRUBY-6574] - Socket#bind does not convert nil to 0
  • [JRUBY-6582] - Encoding when using '%' inconsistent with MRI 1.9
  • [JRUBY-6583] - Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require 'haml'
  • [JRUBY-6588] - String#encode should not convert binary to mangled UTF-8
  • [JRUBY-6589] - java.lang.ClassCastException on exit from irb
  • [JRUBY-6590] - DelegateClass subclasses can't include Java interfaces
  • [JRUBY-6598] - to_yaml has garbled text if object contains Chinese or Japanese characters
  • [JRUBY-6599] - test/test_socket.rb spuriously fails
  • [JRUBY-6603] - Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
  • [JRUBY-6604] - Cannot programmatically create regular expression /[\\x80]/n
  • [JRUBY-6605] - java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
  • [JRUBY-6606] - Dir::entries does not support none ascii character
  • [JRUBY-6607] - TCPSocket connect failure inside Timeout leaves orphaned sockets
  • [JRUBY-6611] - LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
  • [JRUBY-6612] - some problems with JRuby seeming to not detect Java Long arithmetic overflows
  • [JRUBY-6618] - NPEs on CI spec run on master
  • [JRUBY-6619] - NoMethodError 'upcase' on Java string
  • [JRUBY-6621] - New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
  • [JRUBY-6623] - In IRB, backslashes are gobbled in the eval loop
  • [JRUBY-6624] - File#exists? cannot find file in JAR
  • [JRUBY-6626] - [Ruboto] ThreadContext throws NPE in finalizer
  • [JRUBY-6627] - File#open fails for file in a JAR with a "jar:" prefix in the path
  • [JRUBY-6628] - #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
  • [JRUBY-6630] - Tempfile doesn't take a hash in the constructor
  • [JRUBY-6631] - Time#nsec always returns 0
  • [JRUBY-6634] - String.new(string) does not seem to clone the input
  • [JRUBY-6637] - String encoding difference between jruby --1.9 and MRI 1.9 (force_encoding a no-op in this case?)
  • [JRUBY-6641] - Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
  • [JRUBY-6642] - RubyException.printBacktrace omits the first line
  • [JRUBY-6644] - Time#strftime doesn't respect %:z
  • [JRUBY-6647] - Comparison of a self referential struct causes a stack overflow
  • [JRUBY-6648] - Opening a file with integer flags mixed with hash options raises an exception
  • [JRUBY-6649] - Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception
  • [JRUBY-6650] - when running the build I get a java.lang.AssertionError during jruby -S maybe_install_gems hoe rdoc
  • [JRUBY-6652] - JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
  • [JRUBY-6654] - Using ruby's standard gserver library causes jruby to run out of memory
  • [JRUBY-6660] - An invalid Makefile is genereated when a 'depend' file exists.
  • [JRUBY-6661] - strftime should behave the same for datetime and time
  • [JRUBY-6668] - StringScanner#scan_until spins forever on UTF-8 data
  • [JRUBY-6669] - failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
  • [JRUBY-6670] - XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
  • [JRUBY-6671] - jruby-launcher fails to compile with GCC 4.6.3 on OSX
  • [JRUBY-6675] - shadowing outer local variable warning in ffi
  • [JRUBY-6710] - locking probleming when autoloading constant in haml
  • [JRUBY-6728] - Rails Mailer fails on
  • [JRUBY-6756] - Test suite fails, jruby-launcher can't be installed
  • [JRUBY-6387] - Should JRuby 1.7 set 1.9 compatibility as default?
  • [JRUBY-3797] - include_class should be deprecated in favor of java_import (and/or import)
  • [JRUBY-4743] - Get a working test-indy target for testing against invokdynamic
  • [JRUBY-5035] - Merge JRuby-OSSL
  • [JRUBY-5135] - jruby.launch.inproc property should default to false
  • [JRUBY-5499] - Update to rubygems 1.5.2 since 1.5.0 has severe bugs
  • [JRUBY-5767] - add .metadata to .gitignore file
  • [JRUBY-5849] - make JAVA_VM to be set from environment
  • [JRUBY-5921] - Switch all (or most) println logging to slf4j logging.
  • [JRUBY-5969] - Implemented a new commandline parser in NKF
  • [JRUBY-5993] - $CLASSPATH allows array additions
  • [JRUBY-6096] - Unable to build completely from source (rdoc missing)
  • [JRUBY-6169] - Update 1.9 Standard Library to 1.9.3p0
  • [JRUBY-6218] - Class and module names may need to be cached
  • [JRUBY-6222] - Remove rdoc data from dist in favor of rdoc-data gem
  • [JRUBY-6229] - Allow a way to activate the profiling API when embedding JRuby
  • [JRUBY-6230] - Cache jar content list to speed up file? operation
  • [JRUBY-6241] - Define a read-only global variable $-W
  • [JRUBY-6337] - poor error message on importing java class
  • [JRUBY-6464] - Use 'mvn versions:set -DnewVersion=<whatever>' instead of our Ruby rake code for updating poms
  • [JRUBY-6496] - Kernel#Hash
  • [JRUBY-6506] - Deprecate ObjectProxyCache
  • [JRUBY-6561] - Update to latest rubygems
  • [JRUBY-6584] - File.mtime() is slower than it should be
  • [JRUBY-5845] - Add slf4j logging to JRuby
  • [JRUBY-5934] - Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
  • [JRUBY-6077] - Allow loading a Ruby source file from the class path using the fully qualified name
  • [JRUBY-6243] - Add support for graph profile with HTML output
  • [JRUBY-6334] - Import multiple classes via java_import
  • [JRUBY-6393] - Implement Addrinfo class
  • [JRUBY-4236] - Please reopen JRUBY-3894
  • [JRUBY-5335] - [1.9] Random instance marshal data incompatible with CRuby 1.9
  • [JRUBY-5568] - Remove MethodFactory "can't load bytecode" logging before 1.6 final
  • [JRUBY-6017] - Undocumented windowBits feature of Zlib::Infrate/Deflate
  • [JRUBY-6078] - Introduce jzlib-based zlib implementation
  • [JRUBY-6145] - Cleanup Maven POMs So 'mvn install' Works Again
  • [JRUBY-6249] - Creating binary for jffi
  • [JRUBY-6379] - rdoc, ri, rdoc-data and 'generate-ri-cache' ant task
  • [JRUBY-2708] - JRuby should load relative path reference to AOT classes

Github Issues resolved since RC2:

  • #316 String#gsub not matching when string read from file in 1.9 mode core
  • #317 regex fails for foreign characters when offset is last character core

Github Issues resolved for RC2:

  • #337 Fix indentation in: e2c3728.
  • #330 mprove performance of the Equals operator in the RubyComparable class for objects of different types
  • #329 only new up kernel32 instance once per jvm
  • #324 Fix #276. For good.
  • #320 Windows Process.kill 'KILL'
  • #319 Windows signal
  • #312 Nested timeout supercedes enclosing timeout
  • #311 Fix edge case where rescued Exceptions may be nil
  • #295 Fix: Added support for the Java cacerts trust anchors
  • #292 Apply '-' behaviour to blank padded format directives.
  • #291 Add encoding annotation to test_unicode_path
  • #278 fix some error message in Struct#\[\]
  • #270 JSON format profile printer
  • #255 JRUBY-6510 fix String.encode!

Github Issues resolved for RC1:

  • #307 Specs for DirectedGraph Library
  • #306 removed snapshot in versions
  • #304 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #303 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #301 Dynamic String/Symbol/Regexp create too much garbage
  • #300 Symbol table can't 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

Github Issues resolved for preview2

  • #222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2
  • #176 Fixes JRUBY-6658
  • #174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data
  • #162 Recursive checking threadlocals in Ruby keep runtimes alive
  • #155 invokedynamic: Instance var sites do not age, do not handle dup'ed classes well
  • #145 exception in eval gets written to stderr
  • #141 ConcurrencyError in safe code