JRuby 10.1.1.0 Released
Wednesday, July 22 2026
The JRuby community is pleased to announce the release of JRuby 10.1.1.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 10.1.x targets Ruby 4.0 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @chadlwilson, @kares, @katafrakt, @sampokuokkanen, @segiddins, @shugo
Notable Changes
Performance
- Use FastDoubleParser to improve performance of all string-to-double parsing. #9150
- Only pack fixnum values for 16-bit signed by default, with optional 8-bit and 32-bit configs. #9379
Standard Library
- jruby-openssl updated to 0.16.2 with several CVE fixes from BouncyCastle. #9386, #9504, #9539
- erb updated to 6.0.1.1 to address CVE-2026-41316. #9388
Native Integration
- Updated JRuby’s native library backend with support for OpenBSD. #9439
Java Integration
- Optimized automatic interface implementation when calling Java with a block. #5023
Packaging
- Begin deprecating
jruby-complete and jruby-core Maven artifacts. Prefer the jruby and jruby-base artifacts. #9512
57 Issues and PRs resolved for 10.1.1.0
- #5023 excessive loading of same InterfaceImpl
- #8184 remove deprecated (internal) Java code
- #9034 unused variable warning for blocks
- #9061 Ruby 4.0 support
- #9150 Use FastDoubleParser where appropriate
- #9219 True keyword arguments
- #9320 Cannot run code that has large Integer in
when clause
- #9375
instance_exec block argument destructuring when default value passed
- #9376 Fix destructuring of block argument with default value
- #9379 Make fixnum packing configurable and disable ints
- #9381 Shrink RubyHashLinkedBuckets
- #9386 [deps] bump jruby-openssl to 0.16.0
- #9388 deps(stdlib): bump erb from 6.0.1 to 6.0.1.1 to resolve CVE-2026-41316
- #9393 [10.1.0.0] Java::JavaLang::IllegalArgumentException: argument type mismatch
- #9395 Difference in what
caller returns in JRuby 10.1 and Ruby 4.0
- #9396 Remove Class#new from backtrace
- #9398 JRuby 10.1
circular causes failures within nested rescue (e.g rspec’s tests)
- #9400 Don’t warn about unused destructured block/method parameters (GH-9034)
- #9404 Warn on class/const assign in condition
- #9405 Marshal.load corrupts repeated object reference after Set appears earlier in payload
- #9407 Refactor Kernel#raise and fix remaining specs
- #9408 Fix last send_spec with correct message
- #9409 Ensure core exceptions get raised with $! as cause
- #9410 Fix Hash#inspect of Symbol keys with non-ASCII encoding
- #9417 Checking out aws-sdk-ruby creates a file with binary data.
- #9418 Fix recursive set marshal dump and load
- #9420 Fix Method/UnboundMethod#original_name deep alias chains
- #9425 ivarSet missing return after megamorphic fallback
- #9427 [regression for activerecord-jdbcsqlite3-adapter: java.lang.NoSuchMethodError: ‘void org.jruby.RubyHash.
(org.jruby.Ruby, int)'][#9427]
- #9435 Fall back to standard case/when for out-of-int-range Fixnum literals (#9320)
- #9437 Pathname provides differing error message from MRI in JRuby 10.1.0.0
- #9439 Update jffi for aarch64 OpenBSD
- #9442 Use proper error text for nulls in path name
- #9445 Reject invalid $0-prefixed global variable names like $01, $0abc
- #9447 Improve alias redefinition warnings
- #9450 Reverse aliasing warns when it should not
- #9456 Restore RubyHash(Ruby, int) for older ARJDBC versions
- #9459 [fix] rename RubyHash#set(get) to avoid collision
- #9462 Regression in JRuby 10.1 with Prawn
- #9470 Clean up more divergent keyword logic
- #9473 Shade redline to avoid conflicting with external versions
- #9488 Support backtrace_locations with Java exceptions
- #9495 No need to check for virtual thread API availability
- #9501 Fix CALL_KEYWORD_EMPTY leaking from (…) forwards to native methods
- #9503 [avoid setting $! from RaiseException
][#9503]
- #9504 [deps] bump jruby-openssl to 0.16.1
- #9511 Update jnr:* and asm to latest
- #9512 Begin deprecating jruby-complete and jruby-core
- #9520 defined?(…) in eval’d for loop fails with TypeError
- #9523 Don’t copy the singleton class in Proc#dup
- #9539 Update jruby-openssl to 0.16.2
- #9540 Merge 10.0
- #9541 NoMatchingPatternError#=== doesn’t match instance of NoMatchingPatternKeyError
- #9543 Time.new(string, in: …) raises TypeError on the third call at a call site (JIT only)
- #9545 Add a warning for nonuniform keywords annotations
- #9546 Prism backend raises wrong error for pattern key mismatch
- #9547 Merge jruby-prism fix for NoPatternKeyError
The JRuby community is pleased to announce the release of JRuby 10.1.1.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 10.1.x targets Ruby 4.0 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @chadlwilson, @kares, @katafrakt, @sampokuokkanen, @segiddins, @shugo
Notable Changes
Performance
- Use FastDoubleParser to improve performance of all string-to-double parsing. #9150
- Only pack fixnum values for 16-bit signed by default, with optional 8-bit and 32-bit configs. #9379
Standard Library
- jruby-openssl updated to 0.16.2 with several CVE fixes from BouncyCastle. #9386, #9504, #9539
- erb updated to 6.0.1.1 to address CVE-2026-41316. #9388
Native Integration
- Updated JRuby’s native library backend with support for OpenBSD. #9439
Java Integration
- Optimized automatic interface implementation when calling Java with a block. #5023
Packaging
- Begin deprecating
jruby-completeandjruby-coreMaven artifacts. Prefer thejrubyandjruby-baseartifacts. #9512
57 Issues and PRs resolved for 10.1.1.0
- #5023 excessive loading of same InterfaceImpl
- #8184 remove deprecated (internal) Java code
- #9034 unused variable warning for blocks
- #9061 Ruby 4.0 support
- #9150 Use FastDoubleParser where appropriate
- #9219 True keyword arguments
- #9320 Cannot run code that has large Integer in
whenclause - #9375
instance_execblock argument destructuring when default value passed - #9376 Fix destructuring of block argument with default value
- #9379 Make fixnum packing configurable and disable ints
- #9381 Shrink RubyHashLinkedBuckets
- #9386 [deps] bump jruby-openssl to 0.16.0
- #9388 deps(stdlib): bump erb from 6.0.1 to 6.0.1.1 to resolve CVE-2026-41316
- #9393 [10.1.0.0] Java::JavaLang::IllegalArgumentException: argument type mismatch
- #9395 Difference in what
callerreturns in JRuby 10.1 and Ruby 4.0 - #9396 Remove Class#new from backtrace
- #9398 JRuby 10.1
circular causesfailures within nested rescue (e.g rspec’s tests) - #9400 Don’t warn about unused destructured block/method parameters (GH-9034)
- #9404 Warn on class/const assign in condition
- #9405 Marshal.load corrupts repeated object reference after Set appears earlier in payload
- #9407 Refactor Kernel#raise and fix remaining specs
- #9408 Fix last send_spec with correct message
- #9409 Ensure core exceptions get raised with $! as cause
- #9410 Fix Hash#inspect of Symbol keys with non-ASCII encoding
- #9417 Checking out aws-sdk-ruby creates a file with binary data.
- #9418 Fix recursive set marshal dump and load
- #9420 Fix Method/UnboundMethod#original_name deep alias chains
- #9425 ivarSet missing return after megamorphic fallback
- #9427 [regression for activerecord-jdbcsqlite3-adapter: java.lang.NoSuchMethodError: ‘void org.jruby.RubyHash.
(org.jruby.Ruby, int)'][#9427] - #9435 Fall back to standard case/when for out-of-int-range Fixnum literals (#9320)
- #9437 Pathname provides differing error message from MRI in JRuby 10.1.0.0
- #9439 Update jffi for aarch64 OpenBSD
- #9442 Use proper error text for nulls in path name
- #9445 Reject invalid $0-prefixed global variable names like $01, $0abc
- #9447 Improve alias redefinition warnings
- #9450 Reverse aliasing warns when it should not
- #9456 Restore RubyHash(Ruby, int) for older ARJDBC versions
- #9459 [fix] rename RubyHash#set(get) to avoid collision
- #9462 Regression in JRuby 10.1 with Prawn
- #9470 Clean up more divergent keyword logic
- #9473 Shade redline to avoid conflicting with external versions
- #9488 Support backtrace_locations with Java exceptions
- #9495 No need to check for virtual thread API availability
- #9501 Fix CALL_KEYWORD_EMPTY leaking from (…) forwards to native methods
- #9503 [avoid setting $! from RaiseException
][#9503] - #9504 [deps] bump jruby-openssl to 0.16.1
- #9511 Update jnr:* and asm to latest
- #9512 Begin deprecating jruby-complete and jruby-core
- #9520 defined?(…) in eval’d for loop fails with TypeError
- #9523 Don’t copy the singleton class in Proc#dup
- #9539 Update jruby-openssl to 0.16.2
- #9540 Merge 10.0
- #9541 NoMatchingPatternError#=== doesn’t match instance of NoMatchingPatternKeyError
- #9543 Time.new(string, in: …) raises TypeError on the third call at a call site (JIT only)
- #9545 Add a warning for nonuniform keywords annotations
- #9546 Prism backend raises wrong error for pattern key mismatch
- #9547 Merge jruby-prism fix for NoPatternKeyError