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
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
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
- Several improvements to the method invocation pipeline and JVM bytecode output to improve JIT optimizations. (#5958, #5959, #5978, #5992, #6005)
- Several core methods used by Rails and the internal handling of exception backtraces have been optimized. (#5952, #5961, #5965, #5972, #6014, #6015, #6031, #6067)
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
The JRuby community is pleased to announce the release of JRuby 9.2.10.0
- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download
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
- Several improvements to the method invocation pipeline and JVM bytecode output to improve JIT optimizations. (#5958, #5959, #5978, #5992, #6005)
- Several core methods used by Rails and the internal handling of exception backtraces have been optimized. (#5952, #5961, #5965, #5972, #6014, #6015, #6031, #6067)
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