Skip to content

Releases: jruby/jruby

JRuby 9.4.13.0

10 Jun 17:43
Compare
Choose a tag to compare

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

JRuby 9.4.13.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward!

Stability

  • Fixed a slow memory leak in subclass management. (#8842, #8844)
  • Fixed a potential deadlock during multi-threaded boot and concurrent JIT compilation. (#8845, #8849)

Usability

56 Issues and PRs resolved for 9.4.13.0

JRuby 10.0.0.1 Released

07 May 16:44
Compare
Choose a tag to compare

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

We've jumped to Ruby 3.4 compatibility and Java 21 minimum to bring you the best Ruby on JVM experience possible. We are confident this is the most compatible and stable major release we've ever had.

Security

JRuby 9.4.12.1 Released

07 May 16:27
Compare
Choose a tag to compare

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

JRuby 9.4.12.x targets Ruby 3.1 compatibility.

Security

JRuby 10.0.0.0 Released

14 Apr 22:07
Compare
Choose a tag to compare

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

JRuby 10 is finally here! We've jumped to Ruby 3.4 compatibility and Java 21 minimum to bring you the best Ruby on JVM experience possible. We are confident this is the most compatible and stable major release we've ever had.

Our blog post on JRuby 10 provides a high-level overview of the major changes, with some additional details below. We will update the blog post with additional detailed articles over the coming weeks: https://blog.jruby.org/2025/04/jruby-10-part-1-whats-new

As with any "dot zero" release, we are planning a series of quick updates to address any last-minute issues that snuck into the release. Please file bugs for any issues you see while testing JRuby 10.0: https://github.com/jruby/jruby/issues

Contributors

The JRuby core team today includes Charles Oliver Nutter (@headius), Thomas Enebo (@enebo), and Karol Bucek (@kares). Over the past year we have been honored to accept contributions from many other developers, and JRuby 10 would not be as stable or complete without their help:

[@andsel], [@mrnoname1000], [@ahorek], [@evaniainbrooks], [@edipofederle], [@ccutrer], [@danini-the-panini], [@ntkme], [@andrykonchin], [@mohamedhafez], [@jsvd], [@jpcamara], [@mullermp], [@ikaronen-relex], [@jimtng], [@ryannevell], [@eregon], [@moste00], [@sk757a]

Ruby Compatibility

  • Ruby compatibility has been updated to Ruby 3.4. We consider this release equivalent to Ruby 3.4.2.
  • Most features of Ruby 3.2, 3.3, 3.4 are complete, but some are still in progress. See our checklists based on CRuby's release notes: Ruby 3.2, Ruby 3.3, Ruby 3.4
  • Except where a more recent gem was available or a library is unsupported by JRuby, we have included the same standard libraries as Ruby 3.4.

Java 21

After nearly a decade of supporting Java 8, the JRuby team decided it's time for us to move to a more modern version of Java. The new requirement of Java 21 will allow us to take advantage of many features that were impossible to utilize while simultaneously supporting Java 8:

  • On-by-default optimization using InvokeDynamic, which has significantly improved since Java 8.
  • Support for thousands of Fibers using the lightweight virtual thread support from Project Loom.
  • Fast native function calling and native memory management using Project Panama.
  • Greatly improved startup time using Application Class Data Store, enabled by default by our launcher executables.
  • Easier access to post-Java 21 features like the Ahead-of-time compiler cache in Project Leyden.

Upgrading to JRuby 10

This release marks a big leap forward for JRuby users, and we are standing by to help with your transition from JRuby 9.x or migration from CRuby. Support services are available to help migrate your critical applications. Many existing users trust JRuby Support by Headius Enterprises to keep their applications in peak condition and to prepare for future updates.

Issues and Pull Requests

There are hundreds of closed issues and merged pull requests in this release. Visit the JRuby 10.0.0.0 milestone for the full list.

201 Issues and PRs resolved for 10.0.0.0

  • #6094 [Less modes to run JRuby, and one single mode to benchmark JRuby][#6094]
  • #6598 [Modularize all the things][#6598]
  • #7516 [Improvements to instance variable shaping][#7516]
  • #7638 [ Add support for Ruby 3.2 attached_object][#7638]
  • #7646 [Add Integer#ceildiv][#7646]
  • #7788 [Add support for a rescue trace event][#7788]
  • #7871 [Ruby 3.2 - Remove deprecated methods: trust/taint and friends][#7871]
  • #7909 [Intermittent failure on duped pipe tests JDK 19+][#7909]
  • #7973 [Use gem for tempfile][#7973]
  • #8058 [Ruby 3.3 support: Queue#freeze now raises TypeError][#8058]
  • #8059 [Ruby 3.3 support: add symbolize_names kwarg to MatchData#named_captures][#8059]
  • #8084 [remove JRuby-specific (deprecated) Class#subclasses(arg)][#8084]
  • #8143 [Remove versioned methods][#8143]
  • #8145 [Refactor external API to ease extension porting][#8145]
  • #8152 [New parser][#8152]
  • #8153 [Update parser to 3.4][#8153]
  • #8154 [Update and run CRuby 3.4 tests][#8154]
  • #8159 [Fix last obvious syntax problem (involving nested pattern kwargs going off rails)][#8159]
  • #8160 [Proc#{dup,clone} should be like other objs][#8160]
  • #8161 [Finalizers also are on cloned/duped objects][#8161]
  • #8162 [Finalizers also are on cloned/duped objects][#8162]
  • #8163 [tracepoint only runs in thread it was enabled on][#8163]
  • #8164 [{,Unbound}Method#{proc,dup} need to be more like other Ruby objects][#8164]
  • #8165 [Add MatchData#deconstruct...][#8165]
  • #8168 [First stab at Err#typeError in api][#8168]
  • #8169 [Update json to eliminate references to "19" methods][#8169]
  • #8170 [Implement block_given? call as optimized instruction][#8170]
  • #8172 [Optimized method and callee][#8172]
  • #8174 [Unify call paths for most framed scopes][#8174]
  • #8175 [These may have been hanging due to a block_given? bug][#8175]
  • #8176 [Simplify fixnum and string ranges][#8176]
  • #8177 [A few frozen string and symbol optimizations][#8177]
  • #8180 [Optimizations for dynamic string building][#8180]
  • #8181 [Add ability to generically optimize instr during LOP][#8181]
  • #8214 [Disable eager constants in JRuby 10][#8214]
  • #8223 [Make Exception#detailed_message,full_message pass specs][#8223]
  • #8226 [Implement "chilled" Strings][#8226]
  • #8227 [Narrow frame name optimization to method scopes][#8227]
  • #8228 [IO#readlines accepts another arg][#8228]
  • #8229 [Fix full_message formatting and Throwable impl][#8229]
  • #8230 [More frame name fixes][#8230]
  • #8233 [Implement Regexp#linear_time?][#8233]
  • #8236 [More string interpolation optimizations][#8236]
  • #8238 [Implement regexp timeout][#8238]
  • #8240 [Fix IO#each_line specs][#8240]
  • #8249 [Reduce deopt from print use of $_][#8249]
  • #8253 [Optimize literal fixnum and float arrays][#8253]
  • #8259 [Improved representation of JRuby for JVM tools][#8259]
  • #8260 [Rewrite Marshal.dump logic for efficiency][#8260]
  • #8262 [Proc spreading changed in 3.2 with kwrest][#8262]
  • #8263 [Implement Coverage::supported?][#8263]
  • #8266 [Enable invokedynamic by default][#8266]
  • #8267 [Print out paths for syntax errors][#8267]
  • #8268 [Unbound method][#8268]
  • #8276 [Struct specs][#8276]
  • #8277 [Time#new spec fixes.][#8277]
  • #8279 [Reduce overhead of ObjectSpace#each_object when disabled][#8279]
  • #8291 [Fix remaining copy stream specs][#8291]
  • #8293 [Eliminate last consumers of Variable logic][#8293]
  • #8295 [3 new Convert API methods][#8295]
  • #8297 [Make common method for handling to_r calls in Rational][#8297]
  • #8298 [Api changes][#8298]
  • #8299 [Linkage errors from java_import are lazy][#8299]
  • #8300 [Do initialize classes during java_import][#8300]
  • #8301 [Decode ByteList properly for toString][#8301]
  • #8304 [Eager initialize java_import'ed classes][#8304]
  • #8317 [New asFixnum, asBoolean, asString in Convert][#8317]
  • #8330 [Eliminate dynscope for leaf blocks with break/return][#8330]
  • #8375 [Revisit chilled strings and pass all specs][#8375]
  • #8376 [Get most Enumerator::Product specs passing][#8376]
  • #8377 [No backtick in errors][#8377]
  • #8378 [Update to latest CRuby 3.4 tests and stdlib][#8378]
  • #8390 [Fix foreach with mode: kwarg][#8390]
  • #8402 [Hash#inspect: no arrow for symbol keys. add spacing to match C Ruby][#8402]
  • #8410 [Permute indy invoke paths to reduce uncached stack][#8410]
  • #8414 [Pre-generate specialized object shapes][#8414]
  • #8418 [Some small refactoring while looking for example snippet code of new API][#8418]
  • #8420 [A bunch of new API calls and new JRubyAPI annotation][#8420]
  • #8430 [More dogfooding of new API][#8430]
  • #8432 [argumentError API conversions with a lot of runtime to tc replacement][#8432]
  • #8437 [context through RubyArray using more API][#8437]
  • #8444 [Nearly all newArray is converted to API][#8444]
  • #8450 [Enable invokedynamic by default][#8450]
  • #8452 [newFixnum,Symbol,Float are unified with asXXX. ][#8452]
  • #8454 [more api conversion around Time+][#8454]
  • #8459 [API: Nearly all remaining newArgumentError to argumentError][#8459]
  • #8460 [more newSymbols made into asSymbol][#8460]
  • #8461 [new runtimeError api][#8461]
  • #8467 [api: new rangeError, indexError ][#8467]
  • #8468 [to_s with TC. new dupString api][#8468]
  • #8470 [Inspect wrong object when symbol/string wanted in error][#8470]
  • #8471 [more illegal formatting added to printf/format][#8471]
  • #8472 [Add new Check#checkEmbeddedNulls to replace StringSupport method][#8472]
  • #8473 [Make Time load its Ruby-impl side][#8473]
  • #8474 [Create#newEmptyString][#8474]
  • #8475 [Create#new{,Small}Hash][#8475]
  • #8484 [Various array optimizations][#8484]
  • #8485 [Fixes for MRI tests][#8485]
  • #8489 [Bind directly to all supported arities of native methods][#8489]
  • #8490 [New define API][#8490]
  • #8491 [Make hash() always call to hash(ThreadContext) and deprecate][#8491]
  • #8492 [...
Read more

JRuby 9.4.12.0 Released

11 Feb 20:22
Compare
Choose a tag to compare

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

JRuby 9.4.12.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward!

Critical Fixes

  • Added additional locking to the new Class#subclasses implementation to fix a concurrent modification error. #8602, #8603

Standard Library

  • jar-dependencies upgraded to 0.5.4 to fix an issue parsing Maven output on Java versions 9 and higher. #8606, [#8515]

4 Issues and PRs resolved for 9.4.12.0

JRuby 9.4.11.0 Released

29 Jan 19:46
Compare
Choose a tag to compare

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

JRuby 9.4.11.x targets Ruby 3.1 compatibility. This release fixes two critical bugs in JRuby 9.4.10.0 and we recommend users skip that version when upgrading.

Thank you to our contributors this release, you help keep JRuby moving forward!

Critical Fixes

  • Fixed an issue where Mutex lock acquisition may leave the Mutex locked if an asynchronous Thread interrupt happens at the same time. #8585, #8586
  • Fixed a memory leak where singleton classes would leave behind bookkeeping objects that accumulated over time. #8591, #8598

Standard Library

  • rubygems been updated to version 3.6.3 to fix an incompatibility with bundler 2.6. #8590, #8596
  • bundler has been updated to version 2.6.3. #8596
  • jruby-openssl has been updated to 0.15.3. #8458, Release 0.15.3
  • jar-dependencies has been updated to 0.5.3 to fix remaining issues loading Maven jars in containerized environments. #8593, #8595

9 Issues and PRs resolved for 9.4.11.0

JRuby 9.4.10.0 Released

21 Jan 18:06
Compare
Choose a tag to compare

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

JRuby 9.4.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward!

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

JRuby 9.4.9.0 Released

04 Nov 22:08
Compare
Choose a tag to compare

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

JRuby 9.4.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @kares, @jpcamara, @jsvd

Ruby Compatibility

  • Various fixes for keyword arguments. #8344, #8344, #8382, #8389
  • Mutex has been fixed to check for thread interrupts (Thread#kill, Thread#raise) immediately after acquiring the lock. #8403, #8404

Standard Library

  • The fiddle library is now a default gem and can be upgraded independently of JRuby. #8385

Developer Experience

  • The core jar file of JRuby can be rebuilt more quickly by calling Maven with the -Dcore flag. #8326
  • Support for Coordinated Restore at Checkpoint (OpenJDK Project CRaC), which allows snapshotting a running JRuby process and quickly resuming it later. #8367

Java Integration

  • The "lazy" constants feature for classes imported from Java, introduced in JRuby 9.4.8.0, has been reverted due to spurious warnings. We'll revisit it in a future release. #8349, #8368, #8399, #8400, #8401
  • Functions were added to allow flushing out thread-local and fiber-local storage for an entire JRuby runtime. #8369

Security

  • REXML was updated to 3.3.9 to get recent fixes and to address CVE-2024-49761, a ReDOS vulnerability. Only users parsing unsanitized XML with REXML are affected. #8396

JRuby 9.4.8.0 Released

02 Jul 17:29
Compare
Choose a tag to compare

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

JRuby 9.4.x targets Ruby 3.1 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @edipofederle, @fidothe, @ikaronen-relex, @jimtng, @jsvd, @kares, @mullermp, @ntkme

Ruby Compatibility

  • Fixed a bug in the bytecode JIT causing patterns to execute incorrect branches. #8283, #8284

Standard Library

  • jruby-openssl is updated to 0.15.0, with updated Bouncy Castle libraries to avoid CVEs in older versions.
  • uri is updated to 0.12.2, mitigating CVE-2023-36617.
  • net-ftp is updated to 0.3.7 with restored functionality on JRuby.

58 Github Issues resolved for 9.4.8.0

JRuby 9.3.15.0 Released

26 Jun 20:22
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.15.0

JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.

This release only fixes a single problem. "AOT" compiled ruby (using jrubyc) had an uncommon race condition which led to strange endless looping behavior.

2 Github Issues resolved for 9.3.15.0

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy