Skip to content

Releases: jruby/jruby

JRuby 9.3.10.0

01 Feb 20:18
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.10.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.

Thank you to our community members who contributed pull requests for this release: @ahorek

Ruby Compatibility

  • Various small compatibility fixes. See the issues list.

Platform Support

  • This release includes improved support for the LoongArch64 platform. (#7260, #7590, #7608)

Regexp Regression Fix

  • Fixed regression which caused longer strings to match slower. (#7484)

Issues resolved for 9.3.10.0

JRuby 9.4.0.0

23 Nov 19:57
Compare
Choose a tag to compare

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

The release of JRuby 9.4 represents a leap forward to Ruby 3.1 compatibility, which would not have been possible without help from the excellent contributors in our JRuby community: @k77ch7, @PurityLake, @ahorek, @byteit101, @mrnoname1000, @edipofederle, @chadlwilson, @philr, @gtback.

A special shout out goes to Kiichi Hiromasa (@k77ch7) for submitting dozens of feature and fix PRs and to Patrick Plenefisch (@byteit101) for his work on the libfixposix-powered subspawn gem.

We plan to put out several maintenance updates in the next few months. To help us improve compatibility and performance, we encourage you to try your apps and libraries on JRuby 9.4 and report any issues you find.

Ruby Compatibility

  • Compatibility is updated to Ruby 3.1 level. This includes all Ruby 2.7, 3.0, and 3.1 features except where noted below. (#6464, #6878, #7015)
    • Ractor is not yet supported. JRuby users can achieve better parallelism by using threaded libraries and frameworks.
    • The scheduler interface for IO, locks, and fibers is not yet supported. It will be added in an update release.
  • Nearly all features from CRuby's NEWS file have been implemented. Most new tests and specs pass.
  • Remaining 3.0 and 3.1 features will be implemented in an update release. See [#7459] and [#7460].

Standard Library

  • Much of the standard library has moved out to gems, and JRuby supports a large subset of these gems. See lib/pom.rb for the complete list of default and bundled gems.
  • Greatly improved PTY and spawn support thanks to the subspawn gem, which is included as part of the standard library. [#7393]

JVM Integration

  • Java setFoo methods that do not match JavaBean standards (return value other than void, for example) will now also generate a foo= method when imported into Ruby. ([#7340], [#7352])

Platform Support

  • The JRuby launcher script has been ported to POSIX shell (/bin/sh) and no longer requires Bash. (#7024)
  • Initial support for the LoongArch64 platform has been inherited from the Java Native Runtime libraries.

Third-party Libraries and Frameworks

  • Initial support for Rails 7. SQLite and MySQL are largely functional, but work remains to update them and PostgreSQL.

[#7223]...

Read more

JRuby 9.3.9.0

24 Oct 19:55
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.9.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.

Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @chadlwilson, @coheigea

Standard Library

  • rdoc has been updated to 6.3.3 to fix all known CVEs. (#7396, #7404)
  • rexml has been updated to 3.2.5 to fix all known CVEs. (#7395, #7405)
  • jruby-openssl has been updated to 0.14.0 to fix weak HMAC key hashing in bouncycastle, which itself is updated to 1.71. (#7335, #7385, #7399)
  • psych has been updated to 3.3.4 to fix CVE-2022-38752 in the SnakeYAML library, which itself is updated to 1.33. (#7386, #7388, #7400)
  • rubygems has been updated to 3.2.33 and bundler updated to 2.2.33 to address CVE-2021-43809. (#7397, #7401)

Github Issues resolved for 9.3.9.0

JRuby 9.3.8.0

13 Sep 15:38
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.8.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.

Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @ahorek, @ccutrer, @evaniainbrooks, @naveensrinivasan

Ruby Compatibility

  • Altering the visibility of an included module method no longer changes what super method gets called. (#7240, #7343, #7344, #7356)
  • Thread termination at shutdown is more robust and visits all non-main threads. (#7351)

Standard Library

  • csv has been updated to 3.2.5 to pick up a fix that eliminates fiber use for simple parse_line calls. (#7346, #7348)
  • psych has been updated to 3.3.3 to address CVE-2022-25857, an element-nesting DoS. (#7342)

Experimental Features

  • Fibers can now be configured to use OpenJDK Project Loom's virtual threads, which are lightweight and do not consume a native platform thread. Virtual threads make it possible for JRuby applications to create thousands of concurrently-executing fibers. Enable this feature on Java 19 using the JVM flag --enable-preview. (#7328)

27 Github Issues resolved for 9.3.8.0

JRuby 9.3.7.0

16 Aug 16:10
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.7.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.

Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: [@evaniainbrooks], [@k77ch7], [@ccutrer], [@jimtng]

22 Github Issues resolved for 9.3.7.0

JRuby 9.3.6.0

27 Jun 19:33
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.6.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.

Thanks to our contributors this cycle for helping to improve stability and compatibility of JRuby 9.3: @ahorek, @keimar, @k77ch7

Ruby Compatibility

  • Fixed a leak in the frozen string cache and now ensure frozen strings are reused correctly without reencoding. (#7166, #7229, #7242)

Java Integration

  • The internal cache for nested jar file contents has been optimized and a new option added for cache expiration. (#7225, #7232, [#7259])

JRuby 9.2.21.0

27 Jun 19:14
Compare
Choose a tag to compare

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

JRuby 9.2.x is compatible with Ruby 2.5.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. All users are encouraged to upgrade.

Thanks to our contributors this cycle for helping to maintain and improve JRuby 9.2: @dee-see, @edipofederle, @DirkMahler

Ruby Compatibility

  • Fixes for a memory leak in the frozen string cache have been backported. (#7021)

Java Integration

  • The internal cache for nested jar file contents has been optimized and a new option added for cache expiration. (#7225, #7232, #7259)

Hardware Support

  • Support for Apple's M processors has been backported. It has not been heavily tested, but it has been confirmed working by users. (#6953, #6965, #6985)

Standard Library

  • jruby-openssl update to 0.12.2. (#7140)

JRuby 9.3.4.0

23 Mar 17:04
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.4.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.

Thanks to our contributors this cycle for helping to improve compatibility: @ahorek, @byteit101, @k77ch7

Ruby Compatibility

  • define_singleton_method now always uses public visibility. This simplifies its implementation and eliminates warnings when aliasing it, as in the ostruct gem. (ruby/ostruct#40, #7031, #7055)

Java Integration

  • The import method for importing Java classes remains deprecated for removal in 9.4, but now provides a better warning with a source location. (#6976)
  • Ruby subclasses of Java classes and Ruby classes converted into Java classes can now include instance variables that are accessible from Java as normal fields. This improves integration with Java frameworks that use reflection to access object state. (#7012)

Hardware Support

  • Generated make files now properly set the platform architecture when running on Linux/aarch64 and Apple's M1 family of CPUs. This allows sassc and other non-extension C-based gems to build and install properly. (sass/sassc-ruby#231, #7132, #7133)

Standard Library

  • ostruct is updated to 0.5.1, which fixes warnings in verbose mode loading the json library. ([#6831], [#6963])
  • logger is updated to 1.5.1, which fixes a log rotation locking issue on Windows. (ruby/logger#67, ruby/logger#68, #7038)
  • Socket IPv6 constants are now always defined regardless of platform support, matching CRuby and JRuby 9.2. (#7069, #7071)

33 Github Issues resolved for 9.3.4.0

JRuby 9.3.3.0

19 Jan 17:15
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.3.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.

The big news this release is support for Apple's M1 family of processors (Apple Silicon) via an update to our native FFI backend library. Nearly all our usual test suites are passing on M1 and we have added a self-hosted CI runner thanks to MacStadium's OSS program. Callbacks from C to Ruby are unsupported, but this does not affect any libraries we ship. We will continue to improve M1 support with your help and bug reports.

We encourage users to file issues first and ask questions later! Please join our Matrix room if you have any issues or just want to get involved.

Thanks to our contributors this cycle for helping to improve compatibility: @ahorek, @byteit101

Additional thanks to @kovyrin for working through M1 issues with us and confirming that a large application builds and tests successfully.

Hardware Support

  • This release includes greatly improved support for Apple Silicon processors like the M1. (#6813, #6853, #6974, #6977, #6983, #6986, #7006)
  • Known issue: passing a Ruby FFI Function object to C code as a callback is not currently supported due to security restrictions on Apple Silicon. Neither JRuby nor any libraries we ship require this functionality. We will fix it for a future release. (#6995)

Ruby Compatibility

  • The parser once again handles files larger than 32k lines. This issue affected simplecov and mailer gems that we know of. (#6984, #6991)

Standard Library

  • ostruct is updated to 0.5.1, which fixes warnings in verbose mode loading the json library. (#6831, #6963)

Java Integration

  • Additional fixes for super calls from Ruby subclasses of Java classes to match behavior in 9.2.x. (#6935, #6957)

22 Github Issues resolved for 9.3.3.0

JRuby 9.3.2.0

02 Dec 17:00
Compare
Choose a tag to compare

The JRuby community is pleased to announce the release of JRuby 9.3.2.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.

Security

  • Date-parsing methods have been modified to accept an input-size limit option. This addresses CVE-2021-41817. It was originally reported against Ruby's C-based date extension, which JRuby does not use, but JRuby's own implementation of date is also affected by the same issue.

    The fix is detailed in #6952. A workaround is provided, via patching the pure-Ruby date code in your own JRuby install. Rebuilding JRuby is not necessary. This PR is the only functional difference from JRuby 9.3.1.0.

  • In order to match Ruby behavior and permit interrupting these date-parsing regular expression matches, this release also enables interruptible regular expressions globally. This feature can be disabled using the "regexp.interruptible" JRuby option as described in the above PR.

Performance

  • The performance of Time#strftime has been greatly improved (3.5x-5.8x faster). (#6942, #6956)

Native Integration

  • The jffi library on MacOS has been updated to sign the native library, allowing it to load properly on Apple Silicon. This improves compatibility on Apple's AArch64 systems (M1 and friends). (jnr/jffi#116, jnr/jnr-ffi#257)

Github Issues resolved for 9.3.2.0