# \[ruby-talk:444773\] \[ANN\] JRuby 10.0.3.0 Released

**URL:** <https://rubytalk.org/t/ruby-talk-444773-ann-jruby-10-0-3-0-released/76727>\
**Category:** ruby-talk\
**Created:** [2 February 2026 23:06 UTC](https://rubytalk.org/t/ruby-talk-444773-ann-jruby-10-0-3-0-released/76727 "2026-02-02T23:06:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Thomas\_E\_Enebo1](https://yyz1.discourse-cdn.com/flex029/user_avatar/rubytalk.org/thomas_e_enebo1/32/1861_2.png) [@Thomas\_E\_Enebo1](https://rubytalk.org/u/Thomas_E_Enebo1)\
**Post date:** [2 February 2026 23:06 UTC](https://rubytalk.org/t/ruby-talk-444773-ann-jruby-10-0-3-0-released/76727/1 "2026-02-02T23:06:49Z")

</div>

The JRuby community is pleased to announce the release of JRuby 10.0.3.0.

&nbsp;&nbsp;- Homepage: [https://www.jruby.org/](https://www.jruby.org/)  
&nbsp;&nbsp;- Download: [Downloads — JRuby.org](https://www.jruby.org/download)

JRuby 10.0.3.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving  
forward! @mrnoname1000, @ngr-ilmarh, @Earlopain, @philr, @jotamartos,  
@kares, @aleksandrs-ledovskis, @trinistr, @katafrakt, @chadlwilson,  
@khasinski, @evaniainbrooks

Compatibility

- JRuby now reports RbConfig::CONFIG['arch'] without a version number,  
as universal-java. This allows using different JDK versions without  
triggering RubyGems missing extension warnings for installed gems. The host  
Java version is still available as RbConfig::CONFIG['arch\_version']. #9107

Standard Library

&nbsp;&nbsp;- The non-gem standard library is upgraded to Ruby 3.4.5 #8967  
&nbsp;&nbsp;- rexml is updated to 3.4.4 to address CVE-2025-58767. #9011  
&nbsp;&nbsp;- syslog is moved to a default gem at version 0.4.0. The syslog gem now  
includes JRuby support. #9109, ruby/syslog#1  
&nbsp;&nbsp;- strscan is updated to 3.1.7. #9159

Documentation

&nbsp;&nbsp;- Ruby ri documentation for core and standard library are now included  
in the release distribution. #9049, #9052

All Issues/PRs

&nbsp;&nbsp;&nbsp;&nbsp;#8707 WARNING: A terminally deprecated method in sun.misc.Unsafe has  
been called  
&nbsp;&nbsp;&nbsp;&nbsp;#8727 Cannot install latest rubocop  
&nbsp;&nbsp;&nbsp;&nbsp;#8730 Launcher: Defensive fixes  
&nbsp;&nbsp;&nbsp;&nbsp;#8758 Require is not working for .class file if the class is inside a  
module since 9.3.0  
&nbsp;&nbsp;&nbsp;&nbsp;#8810 Possible fix for 8809  
&nbsp;&nbsp;&nbsp;&nbsp;#8923 NameError for autoloaded constant with private\_constant  
&nbsp;&nbsp;&nbsp;&nbsp;#8934 JRuby under Java 22+ always thinks it's running under a TTY  
&nbsp;&nbsp;&nbsp;&nbsp;#8940 Verify to\_s is string or fall back on anyToString  
&nbsp;&nbsp;&nbsp;&nbsp;#8947 New check for System.console tty on JDK 22+  
&nbsp;&nbsp;&nbsp;&nbsp;#8955 Range#count always returns size for Integer bounds  
&nbsp;&nbsp;&nbsp;&nbsp;#8956 Handle argument or block passed to Range#count  
&nbsp;&nbsp;&nbsp;&nbsp;#8958 Concurrent requires can lead to StringIndexOutOfBoundsException  
&nbsp;&nbsp;&nbsp;&nbsp;#8960 Fix index -1 error while searching for feature path  
&nbsp;&nbsp;&nbsp;&nbsp;#8962 Upgrade polyglot and remove openssl lib hack  
&nbsp;&nbsp;&nbsp;&nbsp;#8967 Update stdlib to 3.4.5 and clean up old files  
&nbsp;&nbsp;&nbsp;&nbsp;#8975 Use RuboCop to clean up poms (10.x)  
&nbsp;&nbsp;&nbsp;&nbsp;#8976 Regression in keyword argument matching in JRuby v10.0.1.0  
&nbsp;&nbsp;&nbsp;&nbsp;#8978 Additional fixes for scheme-based globbing  
&nbsp;&nbsp;&nbsp;&nbsp;#8984 glob refactoring  
&nbsp;&nbsp;&nbsp;&nbsp;#8985 Fix language spec where error string changed  
&nbsp;&nbsp;&nbsp;&nbsp;#8987 InvokeDynamicSupport.findVirtual fails with  
IllegalAccessException: symbolic reference class is not accessible  
&nbsp;&nbsp;&nbsp;&nbsp;#8989 Explicitly request access before Lookup.find\*  
&nbsp;&nbsp;&nbsp;&nbsp;#8994 autoload + private\_constant do not play well together  
&nbsp;&nbsp;&nbsp;&nbsp;#8995 private\_constant should just update existing autoload  
&nbsp;&nbsp;&nbsp;&nbsp;#8996 Avoid binding unreadable modules' classes  
&nbsp;&nbsp;&nbsp;&nbsp;#8998 Time#localtime incorrectly treats zero offset as UTC (regression  
in v10.0.2.0)  
&nbsp;&nbsp;&nbsp;&nbsp;#9006 Consider .class a source extension during search  
&nbsp;&nbsp;&nbsp;&nbsp;#9007 Handle warn(foo, uplevel: nil)  
&nbsp;&nbsp;&nbsp;&nbsp;#9009 Encoding a string with undefined chars fails with NoMethodError  
&nbsp;&nbsp;&nbsp;&nbsp;#9010 Fix "+00:00" and 0 being treated as UTC by Time#localtime and  
Time.at  
&nbsp;&nbsp;&nbsp;&nbsp;#9011 Update rexml gem to solve CVE-2025-58767  
&nbsp;&nbsp;&nbsp;&nbsp;#9016 [fix] regression calling static hash() method on Java proxy  
&nbsp;&nbsp;&nbsp;&nbsp;#9017 can not use Java class with static hash() method  
&nbsp;&nbsp;&nbsp;&nbsp;#9018 Parser does not convert newlines reading \r\n on Windows  
&nbsp;&nbsp;&nbsp;&nbsp;#9019 We need to remove \r from heredoc strings  
&nbsp;&nbsp;&nbsp;&nbsp;#9021 Retire safe double processing utilities  
&nbsp;&nbsp;&nbsp;&nbsp;#9024 Move all main classes to org.jruby.main package  
&nbsp;&nbsp;&nbsp;&nbsp;#9027 Add "since" to bare Deprecated annotations  
&nbsp;&nbsp;&nbsp;&nbsp;#9035 IO#read does not clear code-range for buffer argument  
&nbsp;&nbsp;&nbsp;&nbsp;#9036 fix: clear code-range when re-using a string buffer  
&nbsp;&nbsp;&nbsp;&nbsp;#9038 Add opens and native access to all jar manifests  
&nbsp;&nbsp;&nbsp;&nbsp;#9039 Update all jnr dependencies  
&nbsp;&nbsp;&nbsp;&nbsp;#9041 Migrate .java-version contents to .jruby.release  
&nbsp;&nbsp;&nbsp;&nbsp;#9049 ri docs are not available for core  
&nbsp;&nbsp;&nbsp;&nbsp;#9050 Marshal fails to load an encoding with an encoding ivar  
&nbsp;&nbsp;&nbsp;&nbsp;#9051 Ignore encoding when unmarshaling an Encoding  
&nbsp;&nbsp;&nbsp;&nbsp;#9052 Download and include in dist CRuby's rdoc data  
&nbsp;&nbsp;&nbsp;&nbsp;#9058 Implement efficient unshifting  
&nbsp;&nbsp;&nbsp;&nbsp;#9059 Reserve extra space before elements when unshifting  
&nbsp;&nbsp;&nbsp;&nbsp;#9063 Hash’s compare\_by\_identity state does not marshal  
&nbsp;&nbsp;&nbsp;&nbsp;#9065 Preserve compare\_by\_identity for marshaled Hash  
&nbsp;&nbsp;&nbsp;&nbsp;#9068 Windows CI spec runs  
&nbsp;&nbsp;&nbsp;&nbsp;#9073 fix: Permit overriding of JSA file location using ENV variable  
&nbsp;&nbsp;&nbsp;&nbsp;#9084 object\_id improvements  
&nbsp;&nbsp;&nbsp;&nbsp;#9094 Implement GC.config [Ruby 3.4]  
&nbsp;&nbsp;&nbsp;&nbsp;#9097 Update jruby-openssl to v0.15.5 to resolve BouncyCastle 1.79  
vulnerability (sonatype-2025-001911).  
&nbsp;&nbsp;&nbsp;&nbsp;#9098 Fix CoverageData.mergeLines when coverage increases  
&nbsp;&nbsp;&nbsp;&nbsp;#9101 Cached fixnums for immediate values  
&nbsp;&nbsp;&nbsp;&nbsp;#9103 Update jruby-openssl to 0.15.5  
&nbsp;&nbsp;&nbsp;&nbsp;#9106 Use smaller default size for many collections  
&nbsp;&nbsp;&nbsp;&nbsp;#9107 Separate Java version out of rbconfig 'arch'  
&nbsp;&nbsp;&nbsp;&nbsp;#9108 Tidy up default gems  
&nbsp;&nbsp;&nbsp;&nbsp;#9109 Switch to syslog gem  
&nbsp;&nbsp;&nbsp;&nbsp;#9110 Calling inspect on proc resets line in source\_location  
&nbsp;&nbsp;&nbsp;&nbsp;#9112 Prevent modifying state in RubyProc  
&nbsp;&nbsp;&nbsp;&nbsp;#9117 Add file path to error message when unlinking non-existing file  
&nbsp;&nbsp;&nbsp;&nbsp;#9122 Unexpected jruby.sh error messages on Windows  
&nbsp;&nbsp;&nbsp;&nbsp;#9127 fix(launcher): correct parsing of java release files under  
Bash/msys2 etc on Windows  
&nbsp;&nbsp;&nbsp;&nbsp;#9138 Copy Data type's var table manager with new realClass  
&nbsp;&nbsp;&nbsp;&nbsp;#9141 refactorings and cleanup motivated by error-prone  
&nbsp;&nbsp;&nbsp;&nbsp;#9142 Change GC's methods from module\_function to metaclass methods  
&nbsp;&nbsp;&nbsp;&nbsp;#9145 Never trust external content for FString  
&nbsp;&nbsp;&nbsp;&nbsp;#9152 Marshal.dump corruption for large Array structures  
&nbsp;&nbsp;&nbsp;&nbsp;#9157 bump included gems  
&nbsp;&nbsp;&nbsp;&nbsp;#9158 Use same key match for containsKey  
&nbsp;&nbsp;&nbsp;&nbsp;#9159 Update strscan to 3.1.7  
&nbsp;&nbsp;&nbsp;&nbsp;#9182 Fix NoMethodError when encoding with invalid: :replace option  
&nbsp;&nbsp;&nbsp;&nbsp;#9188 Different arguments for each.map vs each and map alone (10.0)  
&nbsp;&nbsp;&nbsp;&nbsp;#9189 Fixes #8952. Nest it should be different its  
&nbsp;&nbsp;&nbsp;&nbsp;#9190 Backport implicit local variable fixes from 10.1  
&nbsp;&nbsp;&nbsp;&nbsp;#9191 Fixes #8952. Nested 'it' behavior broken  
&nbsp;&nbsp;&nbsp;&nbsp;#9192 Stab at Fixing #8976  
&nbsp;&nbsp;&nbsp;&nbsp;#9194 BigDecimal#+, #-, #add, #sub always try to cast result of  
coercion to RubyBigDecimal  
&nbsp;&nbsp;&nbsp;&nbsp;#9196 require "bigdecimal" does not install BigDecimal() if it was  
called previously  
&nbsp;&nbsp;&nbsp;&nbsp;#9199 Output formatting differences between jRuby 10.0.0.1 and Ruby 3.4  
when converting Float to JSON  
&nbsp;&nbsp;&nbsp;&nbsp;#9200 Extract float formatting into a static method to use with to\_json  
&nbsp;&nbsp;&nbsp;&nbsp;#9203 Invalidate method caches from generated populators  
&nbsp;&nbsp;&nbsp;&nbsp;#9204 Fix BigDecimal#+, #-, #add, #sub failing when coercing doesn’t  
return a BigDecimal  
&nbsp;&nbsp;&nbsp;&nbsp;#9205 Fix encoding fallback error handling and error message formatting

> **···**
>
> --  
> blog: [http://blog.enebo.com](http://blog.enebo.com) twitter: tom\_enebo  
> mail: tom.enebo@gmail.com
