
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: https://www.jruby.org/download 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