Fri. Apr 3rd, 2020

JRuby v9.2.11.1 releases: an implementation of the Ruby language

2 min read

JRuby is an implementation of the Ruby language using the JVM. It aims to be a complete, correct and fast implementation of Ruby, at the same time as providing powerful new features such as concurrency without a global-interpreter-lock, true parallelism, and tight integration to the Java language to allow you to use Java classes in your Ruby program and to allow JRuby to be embedded into a Java application.

You can use JRuby simply as a faster version of Ruby, you can use it to run Ruby on the JVM and access powerful JVM libraries such as highly tuned concurrency primitives, you can use it to embed Ruby as a scripting language in your Java program or many other possibilities.

Changelog v9.2.11.1

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.

As we are actively working on we decided to put out a mini release which fixes a single issue.

  • sprintf substring string formatting with precision may expose characters (#6137)

If you format a string using a precision specifier (e.g. %.1s) AND you pass in a substring of a larger string, you may see some of the larger string’s characters in the formatted result. This is due to a bug in the handling of internal String data that causes the result to contain more characters than requested.

Github Issues resolved for

  • #6138 – Subtract begin offset for partial substring in sprintf ‘s’
  • #6137 – `sprintf` adds extra buffer slots when precision arg truncates string slices