JRuby 9.2.10.0 Released

Tuesday, February 18 2020

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

Ruby Core

  • Kernel#send and BasicObject#__send__ will now honor refinements used in the surrounding scopes. (#5945, #6045)
  • Kernel#eval will now honor refinements used in a given binding. (#6017)
  • Process#spawn now correctly processes environment variables for the child process. (#3428, #5907)

Ruby Standard Library

  • RubyGems has been updated to version 3.0.6. (#5995, #5996)
  • The jruby-openssl library has been updated to 0.10.4. This release improves support for newer forms of ciphers and cryptographic keys and reduces the number of Java module warnings displayed. (#6077)
  • The compatibility of the fiddle library has been improved. (#5955, #5956, #5960)

Java Support

  • Java methods looked up one-at-a-time using java_method and friends now honor Java modules. This fixes some illegal access errors introduced in JRuby 9.2.9.0. (#5894, #5969, #6043, #6069, #6072)
  • More illegal access warnings have been cleaned up in JRuby and the jruby-openssl extension.

Native FFI Improvements

  • The native subsystem has been rebuilt on MacOS to avoid security warnings due to the old toolchain originally used to build it. (#6044, #6074)
  • Native constants have been updated for Windows to better support the Ruby socket API. (#5656, #6070, #6071)

Performance Improvements

JRuby Launcher

  • Java options dotfiles accidentally omitted in the JRuby 9.2.9.0 release have been restored in the bin directory.
  • The bash-based launcher script has been cleaned up and optimized for cross-platform compatibility. (#5977, #6007, #6016)

Thank You!

The JRuby project would not be possible without contributions from you!

This release includes pull requests or major contributions from the following Github users (in no particular order): @matthewd, @fidothe, @MariuszCwikla, @ahorek, @deivid-rodriguez, @pythias, @rotty3000, @rmannibucau, @Mrnoname1000, @kares, @mkristian, @eregon

Github Issues resolved for 9.2.10.0

  • #6077 - update jruby-openssl to 0.10.4
  • #6074 - Update jnr dependencies
  • #6073 - Fix windows_stub_script to use jruby.exe
  • #6072 - Type Error: illegal access for final methods on ReferencePipeline (stream) in Java 11
  • #6071 - socket addrinfo fixes
  • #6070 - ipproto values are missing on Windows
  • #6069 - Generify and reuse accessible method search
  • #6067 - optimize roundUpToPowerOfTwo
  • #6057 - Bump mavengem-wagon version everywhere
  • #6054 - Refined send
  • #6044 - libjffi should be rebuilt on darwin (using newer xcode)
  • #6043 - Java 11 Compatibility
  • #6040 - make jruby-core-source jar has no absolute path from home dir
  • #6039 - NullPointerException from FStringEqual.hashCode
  • #6038 - profiler crashes with `java.lang.RuntimeException: BUG: refined marker called as method`
  • #6036 - Enumerator#take duplicates objects
  • #6035 - Prepare io/console for move to gem.
  • #6032 - [fix] restore $! on non-local return from rescue
  • #6031 - [fix] restore rescue nil performance
  • #6030 - Deprecation warning message : Gem::ConfigMap
  • #6029 - [fix] inspect builtin
  • #6028 - revert rational test
  • #6027 - [fix] SyntaxError rational overflow
  • #6025 - SyntaxError (Rational (174532925199432957/1E+19) out of range)
  • #6024 - Add filesystem and internal encoding names
  • #6021 - Fix Enumerator fiber leaks
  • #6017 - Refinements in eval with binding
  • #6016 - Remove array expansion of JAVA_OPTS environment variable
  • #6015 - early block return retains $! filling cause for next error
  • #6014 - correct/revisit exception backtrace (and stack-trace)
  • #6007 - Bash cleanup
  • #6005 - Reduce block overhead
  • #6002 - (refinements?) Something is passing nullblock instead of the actual block in GraphQL
  • #6000 - Do not alias a Java IsEqual to equal?
  • #5999 - ensure javase version in osgi meta is 8 and not 9
  • #5998 - update maven-bundle-plugin and bndlib to latest
  • #5997 - Stack overflow due to RubyGems warn patch
  • #5996 - Update RubyGems to 3.0.6.
  • #5995 - Update RubyGems
  • #5992 - Make many fields on Ruby final.
  • #5991 - Invalid OSGi metadata
  • #5990 - The .equal? method should not be mapped to .isEqual for Java objects (e.g. Joda LocalDate)
  • #5988 - java.lang.module.ResolutionException
  • #5985 - fix strict_base64 for shared strings
  • #5984 - Bind only public interface methods for private classes
  • #5981 - Nailgun Error - org.jruby.util.NailMain: command not found
  • #5979 - Maven source artifact contains full build path
  • #5978 - Cache method_missing target
  • #5977 - fix 'jruby: line 88: cd: ../libexec/bin: No such file …'
  • #5976 - Incorrect warning line
  • #5972 - optimize isGregorianLeap
  • #5970 - expand #succ for bignums
  • #5969 - Mutliple issues on jdk11 after ugrading to jRuby 9.2.9.0
  • #5968 - Enumerator#any? is wrong for sequence of empty arrays
  • #5966 - Remove usages of deprecated ConfigMap
  • #5965 - isGregorianLeap in RubyDate.java - two suggestions for minor changes
  • #5963 - improve BUILDING.md
  • #5961 - Faster unpackm0
  • #5960 - fiddle fixes
  • #5959 - Tweak getCurrentContext for SPEED
  • #5958 - Propagate ThreadContext through to_a implementations
  • #5956 - dlload throws LoadError instead of Fiddle::DLError
  • #5955 - NameError: uninitialized constant Fiddle::CParser::TYPE_SIZE_T
  • #5953 - Fix Array.pack with @ directive and buffer #4727
  • #5952 - Use string index in String #sub/#gsub when String pattern passed without creating a Regexp
  • #5945 - Refinements are not activated in send
  • #5907 - Properly override base env with supplied values for spawn
  • #5905 - String#gsub given a String can avoid Regexp
  • #5894 - Can't call methods of private subclasses in a module
  • #5656 - Multicast Receive Broken On Windows 10
  • #4727 - Array#pack buffer should start from beginning of buffer?
  • #3428 - Process.spawn doesn't remove nil env variables
  • #2255 - Fixnum instance variable behaviour incorrect
  • #2096 - filesystem and internal encodings are missing from Encoding.name_list