[ruby-talk:444626] [ANN] JRuby 9.4.10.0 Released

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