JRuby 9.4.10.0 Released
Tuesday, January 21 2025
The JRuby community is pleased to announce the release of JRuby 9.4.10.0.
- Homepage: https://www.jruby.org/
- Download: Downloads — JRuby.org
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving
forward!
Dani Smith @danini-the-panini
Karol Bucek @kares
mrnoname1000 @mrnoname1000
Ruby Compatibility
- Fixed a NegativeArraySizeException crash parsing heredocs. #8355, #8557
- Users can now opt into Ruby 3.3 behavior for NoMethodError and
NameError that no longer inspects the target object. This inspect
frequently led to memory issues. Specify JRuby flag
-XnameError.inspect.object=false or JVM property
jruby.nameError.inspect.object=false to disable the inspect call. #216,
#8384, #8538
- Implemented the missing Process.argv0 method, used by recent Bundler
releases. #8568, #8570
Standard Library
- The jar-dependencies gem, responsible for fetching jar file
dependencies of Ruby gems, can now be updated independently of JRuby.
#7262, #8488, #8502
- An upcoming release of jar-dependencies, will fix issues sourcing jar
dependencies in container deployments (partially fixed previously by an
updated ruby-maven-libs gem). #7059, #8366
- The psych gem is updated to version 5.2.3, including a fix for YAML
aliases from SnakeYAML-Engine version 2.9. #8352, #8575
- The reline gem is updated to 0.5.12. #8481
Java Integration
- Only JVM classes imported from the same classloader hierarchy as JRuby
will be bound to constants in JRuby’s package hierarchy. #8156
- Implementing a Java interface no longer leads to constant redefinition
warnings. #8349, #8503
- Precompiled Ruby scripts now properly prepare optimized homogeneous
case/when statements. Previously they would deserialize incorrectly and
garble the branches. #8421, #8424
Performance and Usability
- Additional runtime data structures are eagerly cleared when tearing
down a JRuby runtime, aiding GC. #8343, #8566
- The JRuby shell-based launcher script now properly handles JRuby
installed in a path with spaces. #8441, #8442
- The Class#subclasses method has been optimized to eliminate it as a
bottleneck in complex ActiveRecord STI queries. #8457, #8462
- Integer multiplication operations that overflow outside of int64 range
have been optimized to eliminate heavy exception raises. #8516, #8523
Issues and PRs resolved for 9.4.10.0
#7059 Issue of Jar dependency with Jruby-9.3.3.0
#7262 jar-dependencies cannot be updated out-of-band from jruby
#8156 JRuby adds Java proxy classes to the Java module even if they are
not from JRubyClassLoader
#8343 Free up memory memory used by JRuby during teardown
#8349 internal proxy class is stored in Ruby land and prints warning
#8352 Cyclic references in Set objects raise exception with YAML#load
#8355 NegativeArraySizeException while parsing Heredoc in irb in JRuby
9.4.8.0
#8366 Jruby 9.4.8.0 fails to install psych
#8384 OutOfMemoryError while constructing a NameError in the context of
a large object
#8398 ruby2_keywords + forwarding to native does not properly check
arity
#8412 Intermittent exceptions with
‘Java::JavaLang::NoClassDefFoundError : org/jruby/gen/RubyObject13’
#8415 Skip extension builds for default gems
#8416 [Possible bug] Can not start jruby-swing applications since
9.4.9.0 - or rather, the window auto-closes almost instantly
#8417 Trivial refactoring for match
#8421 Incorrect case tree selection when comparing long Symbols during
compiled Ruby code execution
#8424 Sort the jump tables based on new values
#8425 Don’t clear the ThreadGroup when Thread terminates
#8431 jruby/thread_dump.rb seems to be broken
#8433 Root specialized object classloader at JRuby classloader
#8436 Pass Enumerable#uniq arguments properly
#8438 Remove rogue exit(0) that shuts down JVM
#8441 Spaces in the path cause bin/jruby script to build an invalid
command string
#8442 jruby.sh: Use array to handle option files
#8457 Class#subclasses slows down with larger sets
#8462 Optimize Class#subclasses
#8466 jirb 9.4.9.0 - reline “cannot convert parameter to native pointer”
#8469 fix –jdb -sourcepath command
#8477 Update to jar-dependencies 0.5.0
#8478 Avoid re-polling while reporting a Thread#raise
#8479 Thread interrupt requests can overwrite each other
#8480 Provide concrete-only traversal for Class#subclasses
#8481 Update reline to 0.5.12
#8488 Issues bundling psych related to the jar-dependencies bump
#8502 Avoid loading jar-dependencies to install gem hook
#8503 [ji] do not expose InterfaceImpl classes in Ruby land
#8511 Update to jruby-maven-plugins 3.0.4
#8512 Disable Maven download progress output on CI jobs
#8515 Update jruby-maven-plugins to 3.0.5
#8516 Strange performance difference?
#8523 Revert multiply to use non-intrinsic exactness checks
#8538 Backport no-inspect NameError logic
#8557 Fixes #8355: wallpaper crash in heredoc eof error
#8562 Use same logic as IR for kwarg handling in IO#write
#8566 Additional teardown to aid GC and release resources
#8567 Update thread dump hook for modern JRuby
#8568 Process.argv0 missing
#8570 Add Process.argv0
#8571 Update to jcodings 1.0.59
#8572 Use warning instead of warning when adding attr as module_function
#8573 Update jcodings to 1.0.61 and joni to 2.2.3
#8575 Update psych to 5.2.3
···
--
blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com