The JRuby community is pleased to announce the release of JRuby 9.4.2.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! @k77ch7, @andsel
Ruby Compatibility
__callee__
now properly returns the name under which a method was called, which will be the new name in the case of aliased methods. #2305, #7702- More use cases for keyword arguments have been fixed to behave correctly and avoid extraneous warnings. #7637, #7645, #7657, #7658, #7670, #7672, #7686
- Array#pack now supports more cases, passing nearly all specs. #7663
- Compatibility with CRuby’s command-line arguments has been improved. #7678, #7680, #7681, #7681, #7683, #7684
Standard Library
- irb is updated to 1.4.2. #7690, #7691
- open-uri is updated to 0.3.0. #7701
- io-wait is updated to 0.3.0. #7701
- stringio is updated to 3.0.5. #7701
- strscan is updated to 3.0.6. #7701
- open3 is switched to using the gem at 0.1.2. #7701
Platform Support
- Exception backtraces now default to color output when the controlling terminal is a TTY. Disable using
-Xbacktrace.color=false
or equivalent in .jrubyrc. #7693
Performance
- String#split has been optimized to skip regular expression use for simple split expressions. Simple ASCII strings also split faster. #7629
54 Github Issues resolved for 9.4.2.0
- #2305 –
__callee__
behaves differently from MRI - #7477 –
Integer#chr(encoding: Encoding::UTF_8)
raises a differentRangeError
exception message than on CRuby - #7480 – Cannot call
SubClass#initialize_copy
with an object created from the super class - #7615 – opt != for fixnum in JIT/indy
- #7629 – Split opts
- #7637 – 9.4.1.0: Wrong number of arguments with kwargs when subclassing a java class
- #7639 – Typing @ into irb in 9.4.1.0 crashes it
- #7641 – “Port already in use” errors when configuring remote JMX in 9.4
- #7642 – [9.4.1.0] ArrayIndexOutOfBoundsException
- #7643 – Use SmartBinder to set up struct calls
- #7645 – Fixes #7637. Arity error with kwargs when subclassing a java class
- #7650 – BigDecimal arithmetic regression [jruby-9.4]
- #7652 – Fix Float#to_d of bigdecimal/util
- #7653 – Fix Struct#values_at when passed an integer Range argument for edge cases
- #7655 – JIT coverage fixes
- #7656 – Regression: Class variables in top level methods broken compared to MRI & 9.3
- #7657 – Pattern matching unexpectedly raises “duplicated key name” error
- #7658 – remove deplicated key name error
- #7659 – Fix for #7656.
- #7662 – END blocks had regressed and was calling same block >1
- #7663 – Array#pack unknown directive warns
- #7664 – All these work?
- #7665 – Arity errors for ‘call’ things in Signal#trap
- #7666 – Array#new size boundary error not tripping
- #7667 – Kernel#respond_to? return wrong error string but right error.
- #7668 – Array#to_s/inspect should be same method
- #7669 – Proc#inspect with &:foo should print that out in str
- #7670 – Probably method_missing is not handling keyword arguments properly [jruby-9.4.1.0]
- #7671 – Binding local_variables makes sure they are lvars
- #7672 – jruby-9.4.1.0 issues warning about duplicated keys
- #7674 – Fix #7672. warning about duplicated keys
- #7675 – JIT loses line numbers in some warnings?
- #7678 – Add –encoding command line option.
- #7679 – Spec sweep
- #7680 – disabling RUBYOPT processing was not hooked up.
- #7681 – Frozen string debugging off by one.
- #7682 – The -p command line should use print and not puts.
- #7683 – All -I provided relative paths shold be made absolute
- #7684 – Fixed windowsJ encoding and do not set on invalid K values
- #7685 – Add a warn form that takes a callback
- #7686 – Fix #7670. Coverage data goes off the rails.
- #7687 – Passing specs
- #7690 – Update
irb
to version1.4.2+
- #7691 – Updates irb to 1.4.2
- #7693 – Enable color if console is a tty
- #7694 – Mimic CRuby’s range error logic for chr
- #7696 – Make coderange set on strings created from some IO ops
- #7700 – Define real error methods to avoid callee
- #7701 – Update gems
- #7702 – Encode new and old name in aliased calls
- #7708 – Enumerator.new takes at most one arg
- #7709 – Eliminate 2- and 3-arity paths for Enumerator#initialize
- #7715 – We were quoting symbols in inspect we shouldnt have
- #7716 – Add infra to support Ruby 3.1 pattern error messages.