JRuby 9.2.8.0 Released

Monday, August 12 2019

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

JRuby 9.2.x is compatible with Ruby 2.5.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below. All users are encouraged to upgrade.

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.

  • Substantial memory reduction (~24% less heap with a simple Rails app)
  • Reduced runtime generation of specialized objects and variable scopes
  • Enumerator#next logic replaced with Fiber
  • Better handling of argument lists passing through Enumerator
  • Open Java modules bind methods correctly
  • IO and process control improvements on Java 9+ and on Windows
  • More robust handling of optimized call paths for Fixnum, Float
  • 90 issues fixed for 9.2.8.0

Github Issues resolved for 9.2.8.0

  • #5820 - Dereference proc from interface impl singleton
  • #5819 - Can't write to java.lang.System.out in java 11
  • #5818 - Update JRubyPOSIXHandler.java
  • #5814 - fix custom call-site performance regression
  • #5813 - Allow generating reified Ruby classes with actual name.
  • #5812 - [fix] Enumerable#first block signature (matches MRI)
  • #5811 - Remove tag for "str".freeze idempotency test.
  • #5810 - Add the column caret line when encountering a SyntaxError
  • #5809 - MRI compatibility with IO::sysopen for serial ports on windows
  • #5807 - [fix] resolve Range marshal compat with MRI
  • #5805 - Marshal dump produces wrong output for Range objects
  • #5801 - Ripper is missing EXPR_VALUE
  • #5800 - #original_name overwrite on second alias_mathod
  • #5799 - .singleton_methods returns an empty array after prepending
  • #5795 - Re-open #5595: jruby --debug -S irb --tracer is not working
  • #5793 - jruby-jars.gemspec: Drop rubyforge_project
  • #5791 - In DateTime.jd, some Rational numbers cause RangeError (bignum too big to convert into `long')
  • #5788 - kwargs in Array.each mutates argument
  • #5781 - Support Time ranges in rand
  • #5774 - Add support for IO::for_fd on windows after jnr-enxio#32
  • #5773 - SecureRandom does not implement #bytes like MRI
  • #5771 - unpack encoding inconsistent with MRI
  • #5770 - Tweak the transcode loop to match MRI error behavior.
  • #5767 - TCP Connection refused
  • #5761 - Pre-generate DynamicScope shapes at build time
  • #5760 - Socket error fixes
  • #5754 - EHOSTUNREACH when a FTP connection cannot be established
  • #5752 - RbConfigLibrary: Set CCDLFLAGS to "-fPIC"
  • #5751 - mkmf: CCDLFLAGS is missing -fPIC
  • #5750 - RbConfigLibrary: Set COUTFLAG to "-o "
  • #5749 - mkmf: COUTFLAG does not have `-o`
  • #5741 - Dependency convergence errors
  • #5740 - "class is not compiled Ruby" error for string interpolation expression
  • #5738 - Backtrace set with set_backtrace is not dup'd properly in 9.2.7.0
  • #5737 - Jruby 9.2.7 with Java 11 "NoMethodError: undefined method `separator' for Java::JavaIo::File:Class"
  • #5736 - Jruby 9.2.7 with Java 11 is throwing "Native subprocess control requires open access to sun.nio.ch" warning
  • #5735 - Tempfile#open doesn't support default argument
  • #5733 - Use external when windows filesystem encoding is not found
  • #5731 - Fix and deprecate Java interface constant accessors
  • #5730 - Constant access via . does not work when using Java 11
  • #5728 - RFC: Do not add CLASSPATH to the module path
  • #5726 - Ignore nil for ifnone argument in Enumerable#find
  • #5723 - 0.0.to_d returns negative zero in jruby-9.2.7.0
  • #5715 - Fix indexOf() RubyString method.
  • #5714 - Issue when splitting an encoded string with specific characters
  • #5712 - Re-add command line specs to CI and tag new failures
  • #5711 - Make the PosixShim errno field into a thread-local
  • #5709 - Socket#close raises EBADF after unsuccessful connection
  • #5707 - Windows Traditional Chinese Edition: unknown encoding name - MS950
  • #5706 - IO.read_nonblock raises EOFError with concurrent reads
  • #5704 - update joda-time to latest 2.10.1
  • #5703 - [ji] to_time conversion for Java DateTime types
  • #5702 - #5699:adding the javax maven dependency to avoid "javax.annotation.Ge…
  • #5701 - [ji] support java.math.BigDecimal#to_d
  • #5698 - Regression on java array slices with a negative index introduced in 9.2.1.0
  • #5697 - Test that lazy enumerator doesn't pre-evaluate
  • #5695 - Run BEGIN blocks from JVM-compiled scripts.
  • #5693 - pass -ea to JVM and fix asserts for test targets
  • #5692 - Address all tests failing with asserts enabled
  • #5691 - Licensing confusion; perhaps out of date
  • #5689 - Update backport9 to 1.3
  • #5688 - [test] public field accessiblity in default package
  • #5686 - jruby 9.2.7.0 ships with bundler (it didn't before)
  • #5685 - Streams created for file parsing are allowed to finalize
  • #5684 - Can't access java member variables
  • #5683 - Return to interruptible lock acquisition in Mutex.
  • #5672 - Use pure-Ruby Fiber-based Enumerator#next
  • #5659 - Fix -x command line option to skip header
  • #5641 - File.stat.writable? returning false in JRuby, true in MRI
  • #5631 - java_send/java_alias and perhaps others are not finding the proper method
  • #5616 - Open3.popen3 does not work in jruby 9.2.6 with openjdk 11.0.2
  • #5612 - Fix off-by-one error causing Dir.glob("foo" + "{bar}") to fail if Java asserts are enabled
  • #5518 - Limit the width of reified objects to 50 by default.
  • #5476 - Mutex#lock and Mutex#synchronize are not interruptible by Thread#kill
  • #5284 - NoMethodError when calling protected java method from subclass On java 9
  • #5249 - use of jruby causes “Errno::EBADF: Bad file descriptor” error
  • #5235 - popen3 doesn't works fine with java 9/10 and jruby > 1.9.13
  • #5070 - "str".freeze optimization sporadically produces a different object
  • #5044 - lazy map adds extra array layer to single-element array output
  • #4968 - proc binding(local variables) is not garbage collected (memory leak)
  • #4839 - StackOverflow on using method_added in a mixin
  • #4834 - Eliminate or configure invasive JDK class accesses for Java 9
  • #4736 - Fixnum/Float 'fast-ops' working even when re-opened
  • #4536 - Failing "-x" command line option
  • #4419 - exit! and --debug events can cause a deadlock
  • #4260 - squiggly heredoc with single quotes indent wrong
  • #4212 - Lazy enumerable select eagerly evaluates next item
  • #4108 - Enumerator's Yielder does not pass through one-elt array properly
  • #3735 - JRuby 9.x slower than 1.7.21 when running Brakeman
  • #2892 - Numeric#step issues