JRuby 9.2.18.0 Released

Tuesday, June 08 2021

The JRuby community is pleased to announce the release of JRuby 9.2.18.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.

As we are still actively working on 9.3.0.0 we decided to put out another 9.2.x release to fix some of the more recently reported issues.

Special thanks to our external contributors this release: @ahorek, @xaptronic

Compatibility

  • Improved support for subprocess launching on pure-Java environments (primarily Windows). (#6654, #6655, #6678, #6685)
  • Concurrency fixes for last match ($~) under concurrent access. Still somewhat unpredictable but behavior matches CRuby. (#6640, #6644, #6647)

Standard Library

Java Integration

Native Integration

  • Improved native support for exotic Linux platforms (mips64el, ppc64, s390x, aarch64). #6674, #6675, #6705

  • 40 issues fixed for 9.2.18.0

Github Issues resolved for 9.2.18.0

  • #3883 - Rinda:RingServer not working (used for spork)
  • #5148 - Data read from a UDP socket retains buffer size causing large memory overhead
  • #6126 - Socket#connect is not interrupted by Timeout#timeout and Thread#kill
  • #6128 - Do all socket connects nonblocking for interrupts
  • #6156 - Socket.gethostname encoding still platform specific
  • #6274 - Always encode gethostname result as UTF-8
  • #6291 - Failed to install bindex on a Windows 10 PC
  • #6366 - Add support for TCP_CORK (experimental)
  • #6372 - move socket message to constants
  • #6384 - [socket] add constants for reserverd ports
  • #6389 - [socket] remove misused SOL_ constants
  • #6399 - Missing TCP_INFO support
  • #6400 - basic TCP_INFO support
  • #6541 - Errno::ENOPROTOOPT when connecting to Redis with JRuby-9.2.14.0
  • #6542 - [socket] improve keep alive support
  • #6595 - Accept numeric host
  • #6637 - Fix issue with JAVA_HOME not being set
  • #6638 - Restore quotes around module detection JAVA_HOME
  • #6639 - Resolve symlinked java command to find home
  • #6640 - java.lang.ClassCastException: org.jruby.RubyNil cannot be cast to org.jruby.RubyMatchData
  • #6644 - Reduce backref usage in split
  • #6647 - Improve concurrency of $~ adjacent methods
  • #6648 - JRuby 9.2.17.0 fails to install sassc on Windows
  • #6649 - Compatibility fixes for open3 on Windows
  • #6654 - Kernel.system leaks ENV on JRuby + Windows
  • #6655 - Do not merge extra env with current env
  • #6664 - Copy 9.3 socket implementation to 9.2
  • #6668 - Comparators (==, <, >, <=, >=) of subclassed Time instance do not call cmp defined on the subclass
  • #6670 - Handle possible ArithmeticException when extending byte store for String
  • #6671 - Array max size auditing and fixes
  • #6674 - Latest JNR libraries for 9.2
  • #6675 - JNR updates
  • #6678 - Regression on Windows test:jruby test_system_with_conflicting_dir
  • #6685 - Also use shell for commands with a space
  • #6689 - Failure to RVM-install JRuby 9.2.{13,17},0 on Ubuntu 20 with JDK 8
  • #6692 - Getting Java::JavaLang::ArrayIndexOutOfBoundsException in compiler internals
  • #6700 - Use cached UTF8 single-char bytelists here
  • #6701 - Update jruby.exe
  • #6704 - Fixes #6692. AIOOBE on evals overflowing closure ids.
  • #6705 - Update JNR deps