jruby/jruby (org.jruby:jruby)
### [`v9.4.8.0`](https://togithub.com/jruby/jruby/releases/tag/9.4.8.0): JRuby 9.4.8.0 Released
[Compare Source](https://togithub.com/jruby/jruby/compare/9.4.7.0...9.4.8.0)
The JRuby community is pleased to announce the release of JRuby 9.4.8.0.
- Homepage:
- Download:
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
- [#6198](https://togithub.com/jruby/jruby/issues/6198) [Add test for #6197][#6198]
- [#7515](https://togithub.com/jruby/jruby/issues/7515) [Process.wait and Process.wait2 not behaving as expected on Windows with JDK > 8][#7515]
- [#7688](https://togithub.com/jruby/jruby/issues/7688) [Correct Binding#dup to properly propagate values it captures][#7688]
- [#7750](https://togithub.com/jruby/jruby/issues/7750) [File.absolute_path does not work correctly on Windows when dir_string is specified and contains non-ASCII characters][#7750]
- [#7879](https://togithub.com/jruby/jruby/issues/7879) [New failures in Rack tests relating to deflater][#7879]
- [#8129](https://togithub.com/jruby/jruby/issues/8129) [arity for { |a,| } was -2 and should have been 1][#8129]
- [#8140](https://togithub.com/jruby/jruby/issues/8140) [\[ji\] support re-reifying class hierarchy][#8140]
- [#8178](https://togithub.com/jruby/jruby/issues/8178) [Java::JavaLang::ClassCastException: class org.jruby.java.proxies.ConcreteJavaProxy cannot be cast to class org.jruby.RubyArray][#8178]
- [#8183](https://togithub.com/jruby/jruby/issues/8183) [IPSocket#addr returning "0:0:0:0:0:0:0:0" as bound ip address and not "::" when preferring IPv6][#8183]
- [#8210](https://togithub.com/jruby/jruby/issues/8210) [Requiring visibility=PRIVATE for native initialize is error-prone][#8210]
- [#8213](https://togithub.com/jruby/jruby/issues/8213) [Introduce a DEFAULT visibility to indicate unspecified][#8213]
- [#8216](https://togithub.com/jruby/jruby/issues/8216) [IO.popen fails to find executable with chdir: kwarg][#8216]
- [#8217](https://togithub.com/jruby/jruby/issues/8217) [JRuby Jar comuptation fails in OSGi environment][#8217]
- [#8218](https://togithub.com/jruby/jruby/issues/8218) [Process chdir option sooner so execFillarg sees it][#8218]
- [#8219](https://togithub.com/jruby/jruby/issues/8219) [Class vars overtaken][#8219]
- [#8220](https://togithub.com/jruby/jruby/issues/8220) [Fix some error messages to make MRI test pass][#8220]
- [#8222](https://togithub.com/jruby/jruby/issues/8222) [Update uri to 0.12.2 for CVE-2023-36617][#8222]
- [#8225](https://togithub.com/jruby/jruby/issues/8225) [Different behavior for Array#reject in required file][#8225]
- [#8232](https://togithub.com/jruby/jruby/issues/8232) [Synchronize state in AbstractVariable and Argv][#8232]
- [#8237](https://togithub.com/jruby/jruby/issues/8237) [Open3 doesn't write on the right STDOUT][#8237]
- [#8239](https://togithub.com/jruby/jruby/issues/8239) [Fix Dir.home for empty dir name][#8239]
- [#8241](https://togithub.com/jruby/jruby/issues/8241) [Making excluded tests from` test/mri/ruby/test_env.rb ` pass][#8241]
- [#8242](https://togithub.com/jruby/jruby/issues/8242) [Resolve symlinks in user provided $JAVA_HOME][#8242]
- [#8243](https://togithub.com/jruby/jruby/issues/8243) [handle FileSystemNotFoundException when getting jruby jar][#8243]
- [#8244](https://togithub.com/jruby/jruby/issues/8244) [org.jruby.javasupport.ext.JavaLang.Number#define emits "method redefined" warnings in verbose mode][#8244]
- [#8245](https://togithub.com/jruby/jruby/issues/8245) [Remove unused variable assignment from Fiddle::Pointer.to_ptr][#8245]
- [#8246](https://togithub.com/jruby/jruby/issues/8246) [Remove skipped tests from TestAssignment][#8246]
- [#8247](https://togithub.com/jruby/jruby/issues/8247) [Remove redundant (and slightly broken) to_int and to_f aliases][#8247]
- [#8248](https://togithub.com/jruby/jruby/issues/8248) [JRuby parses "mixed" IPv6 address as IPv4][#8248]
- [#8250](https://togithub.com/jruby/jruby/issues/8250) [\[ji\] avoid already initialized constant warnings][#8250]
- [#8251](https://togithub.com/jruby/jruby/issues/8251) [Dir.chdir conflicting warning and error][#8251]
- [#8252](https://togithub.com/jruby/jruby/issues/8252) [yield specific for interp should have same rest logic as other paths][#8252]
- [#8255](https://togithub.com/jruby/jruby/issues/8255) [Fix #8183. IPSocket#addr should report :: vs long unspecified address][#8255]
- [#8256](https://togithub.com/jruby/jruby/issues/8256) [Inconsistent debug info for jitted code in IntelliJ][#8256]
- [#8257](https://togithub.com/jruby/jruby/issues/8257) [Remove passing MRI test Fixnum][#8257]
- [#8258](https://togithub.com/jruby/jruby/issues/8258) [Check for override method on eql?][#8258]
- [#8261](https://togithub.com/jruby/jruby/issues/8261) [\[deps\] update jruby-openssl to 0.14.6][#8261]
- [#8269](https://togithub.com/jruby/jruby/issues/8269) [Unbound#== for aliases to be considered equal.][#8269]
- [#8270](https://togithub.com/jruby/jruby/issues/8270) [Enumerable#inject/reduce should show arg error with no arg or block][#8270]
- [#8273](https://togithub.com/jruby/jruby/issues/8273) [ARGF spec fixes.][#8273]
- [#8274](https://togithub.com/jruby/jruby/issues/8274) [fix some range conditions in String#\* by relaxing to long at first][#8274]
- [#8275](https://togithub.com/jruby/jruby/issues/8275) [Refinement#import_methods always warns][#8275]
- [#8278](https://togithub.com/jruby/jruby/issues/8278) [IO.popen does not return value of the provided block][#8278]
- [#8280](https://togithub.com/jruby/jruby/issues/8280) [Enhancements for IR printing][#8280]
- [#8281](https://togithub.com/jruby/jruby/issues/8281) [Set writer modification time to now by default][#8281]
- [#8282](https://togithub.com/jruby/jruby/issues/8282) [Properly check for Module's superclass][#8282]
- [#8283](https://togithub.com/jruby/jruby/issues/8283) [Pattern matching not working][#8283]
- [#8284](https://togithub.com/jruby/jruby/issues/8284) [Fix pattern JIT Hash match and SyntaxError][#8284]
- [#8288](https://togithub.com/jruby/jruby/issues/8288) [Race fixes for AOT mode in 9.3][#8288]
- [#8289](https://togithub.com/jruby/jruby/issues/8289) [Subprocess launch with shell fails with empty env][#8289]
- [#8290](https://togithub.com/jruby/jruby/issues/8290) [Check for empty string from ENV.op_aref][#8290]
- [#8292](https://togithub.com/jruby/jruby/issues/8292) [Return the value of the block for IO.popen][#8292]
- [#8294](https://togithub.com/jruby/jruby/issues/8294) [Fix IPSocket.getaddress to handle special case IPv6 addresses][#8294]
- [#8303](https://togithub.com/jruby/jruby/issues/8303) [update jruby-openssl to 0.15.0][#8303]
- [#8305](https://togithub.com/jruby/jruby/issues/8305) [Update net-ftp to JRuby-compatible 0.3.7][#8305]
- [#8306](https://togithub.com/jruby/jruby/issues/8306) [Properly fall back if can't setAccessible][#8306]
- [#8309](https://togithub.com/jruby/jruby/issues/8309) [Default Windows filesystem encoding to UTF-8][#8309]
- [#8310](https://togithub.com/jruby/jruby/issues/8310) [Enhance reflective pid-getting for Windows Java 8+][#8310]
[#6198]: https://togithub.com/jruby/jruby/pull/6198
[#7515]: https://togithub.com/jruby/jruby/issues/7515
[#7688]: https://togithub.com/jruby/jruby/pull/7688
[#7750]: https://togithub.com/jruby/jruby/issues/7750
[#7879]: https://togithub.com/jruby/jruby/issues/7879
[#8129]: https://togithub.com/jruby/jruby/pull/8129
[#8140]: https://togithub.com/jruby/jruby/pull/8140
[#8178]: https://togithub.com/jruby/jruby/issues/8178
[#8183]: https://togithub.com/jruby/jruby/issues/8183
[#8210]: https://togithub.com/jruby/jruby/issues/8210
[#8213]: https://togithub.com/jruby/jruby/pull/8213
[#8216]: https://togithub.com/jruby/jruby/issues/8216
[#8217]: https://togithub.com/jruby/jruby/issues/8217
[#8218]: https://togithub.com/jruby/jruby/pull/8218
[#8219]: https://togithub.com/jruby/jruby/pull/8219
[#8220]: https://togithub.com/jruby/jruby/pull/8220
[#8222]: https://togithub.com/jruby/jruby/pull/8222
[#8225]: https://togithub.com/jruby/jruby/issues/8225
[#8232]: https://togithub.com/jruby/jruby/pull/8232
[#8237]: https://togithub.com/jruby/jruby/issues/8237
[#8239]: https://togithub.com/jruby/jruby/pull/8239
[#8241]: https://togithub.com/jruby/jruby/pull/8241
[#8242]: https://togithub.com/jruby/jruby/pull/8242
[#8243]: https://togithub.com/jruby/jruby/pull/8243
[#8244]: https://togithub.com/jruby/jruby/issues/8244
[#8245]: https://togithub.com/jruby/jruby/pull/8245
[#8246]: https://togithub.com/jruby/jruby/pull/8246
[#8247]: https://togithub.com/jruby/jruby/pull/8247
[#8248]: https://togithub.com/jruby/jruby/issues/8248
[#8250]: https://togithub.com/jruby/jruby/pull/8250
[#8251]: https://togithub.com/jruby/jruby/pull/8251
[#8252]: https://togithub.com/jruby/jruby/pull/8252
[#8255]: https://togithub.com/jruby/jruby/pull/8255
[#8256]: https://togithub.com/jruby/jruby/issues/8256
[#8257]: https://togithub.com/jruby/jruby/pull/8257
[#8258]: https://togithub.com/jruby/jruby/pull/8258
[#8261]: https://togithub.com/jruby/jruby/pull/8261
[#8269]: https://togithub.com/jruby/jruby/pull/8269
[#8270]: https://togithub.com/jruby/jruby/pull/8270
[#8273]: https://togithub.com/jruby/jruby/pull/8273
[#8274]: https://togithub.com/jruby/jruby/pull/8274
[#8275]: https://togithub.com/jruby/jruby/issues/8275
[#8278]: https://togithub.com/jruby/jruby/issues/8278
[#8280]: https://togithub.com/jruby/jruby/pull/8280
[#8281]: https://togithub.com/jruby/jruby/pull/8281
[#8282]: https://togithub.com/jruby/jruby/pull/8282
[#8283]: https://togithub.com/jruby/jruby/issues/8283
[#8284]: https://togithub.com/jruby/jruby/pull/8284
[#8288]: https://togithub.com/jruby/jruby/pull/8288
[#8289]: https://togithub.com/jruby/jruby/issues/8289
[#8290]: https://togithub.com/jruby/jruby/pull/8290
[#8292]: https://togithub.com/jruby/jruby/pull/8292
[#8294]: https://togithub.com/jruby/jruby/pull/8294
[#8303]: https://togithub.com/jruby/jruby/pull/8303
[#8305]: https://togithub.com/jruby/jruby/pull/8305
[#8306]: https://togithub.com/jruby/jruby/pull/8306
[#8309]: https://togithub.com/jruby/jruby/pull/8309
[#8310]: https://togithub.com/jruby/jruby/pull/8310
[@edipofederle]: https://togithub.com/edipofederle
[@fidothe]: https://togithub.com/fidothe
[@ikaronen-relex]: https://togithub.com/ikaronen-relex
[@jimtng]: https://togithub.com/jimtng
[@jsvd]: https://togithub.com/jsvd
[@kares]: https://togithub.com/kares
[@mullermp]: https://togithub.com/mullermp
[@ntkme]: https://togithub.com/ntkme
### [`v9.4.7.0`](https://togithub.com/jruby/jruby/releases/tag/9.4.7.0): JRuby 9.4.7.0 Released
[Compare Source](https://togithub.com/jruby/jruby/compare/9.4.6.0...9.4.7.0)
The JRuby community is pleased to announce the release of JRuby 9.4.7.0.
- Homepage:
- Download:
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! [@kares], [@ryannevell], [@jsvd]
## Ruby Compatibility
- Many edge cases in language compatibility have been fixed. [#7440], [#8128], [#8192], [#8193], [#8195], [#8197], [#8198]
## Standard Library
- jruby-openssl is updated to 0.14.5
- rdoc is updated to 6.4.1.1
- Warnings due to method aliasing in the ostruct library have been mitigated. [#8200], [#8206]
## JVM Integration
- Ruby classes that are "reified" into a Java class and later redefined can be "re-reified" to a new Java class with an incrementing version number. [#8141], [#8185]
- Java objects from other classloaders can pollute the `Java::` namespace. This behavior can be disabled now, and will be disabled by default in JRuby 10. [#8156], [#8208]
##### 53 Github Issues resolved for 9.4.7.0
- [#7440](https://togithub.com/jruby/jruby/issues/7440) [Multiple assignment evaluation order consistency][#7440]
- [#8112](https://togithub.com/jruby/jruby/issues/8112) [update this ancient lockfile][#8112]
- [#8113](https://togithub.com/jruby/jruby/issues/8113) [Remove long dead torquebox from template Gemfile and update to newer …][#8113]
- [#8114](https://togithub.com/jruby/jruby/issues/8114) [one last update to puma version for sample Gemfile][#8114]
- [#8119](https://togithub.com/jruby/jruby/issues/8119) [Possible Keyword Argument Regression in 9.4.6.0][#8119]
- [#8121](https://togithub.com/jruby/jruby/issues/8121) [Prepending a module to a subclass changes it representation in the superclass#subclasses array][#8121]
- [#8122](https://togithub.com/jruby/jruby/issues/8122) [Handle prepend in subclasses][#8122]
- [#8123](https://togithub.com/jruby/jruby/issues/8123) [lutimes was passing huge wrong values to function][#8123]
- [#8124](https://togithub.com/jruby/jruby/issues/8124) [Method.clone of frozen should stay frozen][#8124]
- [#8125](https://togithub.com/jruby/jruby/issues/8125) [Proc#clone of frozen proc should stay frozen][#8125]
- [#8126](https://togithub.com/jruby/jruby/issues/8126) [UnboundMethod#clone of frozen UnboundMethod should stay frozen][#8126]
- [#8127](https://togithub.com/jruby/jruby/issues/8127) [EncodingError should be SyntaxError for bad symbols?][#8127]
- [#8128](https://togithub.com/jruby/jruby/issues/8128) [parameters value for \*\*nil should be nokey][#8128]
- [#8130](https://togithub.com/jruby/jruby/issues/8130) [Return proper encoding error string for String#to_c][#8130]
- [#8131](https://togithub.com/jruby/jruby/issues/8131) [frozen error handling for remove_instance_variable][#8131]
- [#8132](https://togithub.com/jruby/jruby/issues/8132) [test flags for stats need to handle file instances as well as strings][#8132]
- [#8133](https://togithub.com/jruby/jruby/issues/8133) [Implement string/eval form of trace_var][#8133]
- [#8134](https://togithub.com/jruby/jruby/issues/8134) [Fix various kwarg-related specs in IO#open, File#open and Kernel#open.][#8134]
- [#8135](https://togithub.com/jruby/jruby/issues/8135) [Cannot install latest `rubocop`][#8135]
- [#8136](https://togithub.com/jruby/jruby/issues/8136) [Redo java commandline calculation to work with newer Java's][#8136]
- [#8138](https://togithub.com/jruby/jruby/issues/8138) [\[deps\] update joda-time to 2.12.7][#8138]
- [#8139](https://togithub.com/jruby/jruby/issues/8139) [to_time raise an exception. (class org.jruby.ext.date.RubyDate cannot be cast to class org.jruby.ext.date.RubyDateTime)][#8139]
- [#8141](https://togithub.com/jruby/jruby/issues/8141) [can not re-reify sub-class of a Java sub-class][#8141]
- [#8142](https://togithub.com/jruby/jruby/issues/8142) [Add-Opens for complete -jar runs as expected in later Java's][#8142]
- [#8144](https://togithub.com/jruby/jruby/issues/8144) [Allow extended DateTime to still be constructed using DateTime][#8144]
- [#8148](https://togithub.com/jruby/jruby/issues/8148) [Profiler raises 'wrong number of arguments for constructor (ArgumentError)' for the march_hare gem][#8148]
- [#8155](https://togithub.com/jruby/jruby/issues/8155) [Concurrently requiring a file from multiple threads may "succeed" even if the file raises an error][#8155]
- [#8156](https://togithub.com/jruby/jruby/issues/8156) [JRuby adds Java proxy classes to the Java module even if they are not from JRubyClassLoader][#8156]
- [#8157](https://togithub.com/jruby/jruby/issues/8157) [Incorrect case tree selection when comparing Symbols during compiled Ruby code execution][#8157]
- [#8167](https://togithub.com/jruby/jruby/issues/8167) [Some simple refactoring but removing some mysterious classcast guards][#8167]
- [#8173](https://togithub.com/jruby/jruby/issues/8173) [Coverage doesn't cover `begin`][#8173]
- [#8179](https://togithub.com/jruby/jruby/issues/8179) [Thread#pending_interupt? crashes][#8179]
- [#8185](https://togithub.com/jruby/jruby/issues/8185) [\[ji\] support re-reifying class hierarchy][#8185]
- [#8186](https://togithub.com/jruby/jruby/issues/8186) [\[fix\] LoadError on require should not complete load][#8186]
- [#8191](https://togithub.com/jruby/jruby/issues/8191) [Rearrange cond0 to behave more like MRI did in 3.1][#8191]
- [#8192](https://togithub.com/jruby/jruby/issues/8192) [lhs of compound const would crash if not a Module/Class][#8192]
- [#8193](https://togithub.com/jruby/jruby/issues/8193) [side-effects in const op element assign by exec parent of lhs twice][#8193]
- [#8195](https://togithub.com/jruby/jruby/issues/8195) [use left to right evaluation][#8195]
- [#8196](https://togithub.com/jruby/jruby/issues/8196) [\[deps\] update jruby-openssl to 0.14.5][#8196]
- [#8197](https://togithub.com/jruby/jruby/issues/8197) [END was not getting parents lvars][#8197]
- [#8198](https://togithub.com/jruby/jruby/issues/8198) [Give same error message for duplicated case arms][#8198]
- [#8199](https://togithub.com/jruby/jruby/issues/8199) [Enumerator#next_values behavior does not match MRI or docs][#8199]
- [#8200](https://togithub.com/jruby/jruby/issues/8200) [Warnings emitted by requiring 'ostruct'][#8200]
- [#8201](https://togithub.com/jruby/jruby/issues/8201) [Fix issue#8199][#8201]
- [#8202](https://togithub.com/jruby/jruby/issues/8202) [do not emit labels which are not used while constructing loops + IGV enhancements][#8202]
- [#8203](https://togithub.com/jruby/jruby/issues/8203) [rename all closures to more closely match a name you can read vs CLOSURE\_2][#8203]
- [#8204](https://togithub.com/jruby/jruby/issues/8204) [bump rdoc dependency to 6.4.1.1][#8204]
- [#8205](https://togithub.com/jruby/jruby/issues/8205) [begin node coverage line should not get added if it has been removed][#8205]
- [#8206](https://togithub.com/jruby/jruby/issues/8206) [Mark frame-aware method names with bang suffix for ostruct][#8206]
- [#8207](https://togithub.com/jruby/jruby/issues/8207) [Partially undo kwarg optz from #8095][#8207]
- [#8208](https://togithub.com/jruby/jruby/issues/8208) [Only set up Java:: constants when accessed directly][#8208]
- [#8209](https://togithub.com/jruby/jruby/issues/8209) [opted case needs to use updated ints when loaded into new runtime.][#8209]
- [#8211](https://togithub.com/jruby/jruby/issues/8211) [Always unwrap old initialize methods][#8211]
[@jsvd]: https://togithub.com/jsvd
[@ryannevell]: https://togithub.com/ryannevell
[@kares]: https://togithub.com/kares
[#7440]: https://togithub.com/jruby/jruby/issues/7440
[#8112]: https://togithub.com/jruby/jruby/pull/8112
[#8113]: https://togithub.com/jruby/jruby/pull/8113
[#8114]: https://togithub.com/jruby/jruby/pull/8114
[#8119]: https://togithub.com/jruby/jruby/issues/8119
[#8121]: https://togithub.com/jruby/jruby/issues/8121
[#8122]: https://togithub.com/jruby/jruby/pull/8122
[#8123]: https://togithub.com/jruby/jruby/pull/8123
[#8124]: https://togithub.com/jruby/jruby/pull/8124
[#8125]: https://togithub.com/jruby/jruby/pull/8125
[#8126]: https://togithub.com/jruby/jruby/pull/8126
[#8127]: https://togithub.com/jruby/jruby/pull/8127
[#8128]: https://togithub.com/jruby/jruby/pull/8128
[#8130]: https://togithub.com/jruby/jruby/pull/8130
[#8131]: https://togithub.com/jruby/jruby/pull/8131
[#8132]: https://togithub.com/jruby/jruby/pull/8132
[#8133]: https://togithub.com/jruby/jruby/pull/8133
[#8134]: https://togithub.com/jruby/jruby/pull/8134
[#8135]: https://togithub.com/jruby/jruby/issues/8135
[#8136]: https://togithub.com/jruby/jruby/pull/8136
[#8138]: https://togithub.com/jruby/jruby/pull/8138
[#8139]: https://togithub.com/jruby/jruby/issues/8139
[#8141]: https://togithub.com/jruby/jruby/issues/8141
[#8142]: https://togithub.com/jruby/jruby/pull/8142
[#8144]: https://togithub.com/jruby/jruby/pull/8144
[#8148]: https://togithub.com/jruby/jruby/issues/8148
[#8155]: https://togithub.com/jruby/jruby/issues/8155
[#8156]: https://togithub.com/jruby/jruby/issues/8156
[#8157]: https://togithub.com/jruby/jruby/issues/8157
[#8167]: https://togithub.com/jruby/jruby/pull/8167
[#8173]: https://togithub.com/jruby/jruby/issues/8173
[#8179]: https://togithub.com/jruby/jruby/pull/8179
[#8185]: https://togithub.com/jruby/jruby/pull/8185
[#8186]: https://togithub.com/jruby/jruby/pull/8186
[#8191]: https://togithub.com/jruby/jruby/pull/8191
[#8192]: https://togithub.com/jruby/jruby/pull/8192
[#8193]: https://togithub.com/jruby/jruby/pull/8193
[#8195]: https://togithub.com/jruby/jruby/pull/8195
[#8196]: https://togithub.com/jruby/jruby/pull/8196
[#8197]: https://togithub.com/jruby/jruby/pull/8197
[#8198]: https://togithub.com/jruby/jruby/pull/8198
[#8199]: https://togithub.com/jruby/jruby/issues/8199
[#8200]: https://togithub.com/jruby/jruby/issues/8200
[#8201]: https://togithub.com/jruby/jruby/pull/8201
[#8202]: https://togithub.com/jruby/jruby/pull/8202
[#8203]: https://togithub.com/jruby/jruby/pull/8203
[#8204]: https://togithub.com/jruby/jruby/pull/8204
[#8205]: https://togithub.com/jruby/jruby/pull/8205
[#8206]: https://togithub.com/jruby/jruby/pull/8206
[#8207]: https://togithub.com/jruby/jruby/pull/8207
[#8208]: https://togithub.com/jruby/jruby/pull/8208
[#8209]: https://togithub.com/jruby/jruby/pull/8209
[#8211]: https://togithub.com/jruby/jruby/pull/8211
### [`v9.4.6.0`](https://togithub.com/jruby/jruby/releases/tag/9.4.6.0): JRuby 9.4.6.0 Released
[Compare Source](https://togithub.com/jruby/jruby/compare/9.4.5.0...9.4.6.0)
The JRuby community is pleased to announce the release of JRuby 9.4.6.0.
- Homepage:
- Download:
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! [@evaniainbrooks], [@ahorek], [@kares], [@most00], [@ntkme], [@sk757a]
## Ruby Compatibility
- Support for the new Prism parser for Ruby code has been merged in. A blog post will follow soon. [#8103]
- IO#fcntl had inverted logic for setting O_NONBLOCK (setting it cleared the value, etc). \[[#8081](https://togithub.com/jruby/jruby/issues/8081)], \[[#8090](https://togithub.com/jruby/jruby/issues/8090)]
- Many fixes to language and core class compatibility, see issue list.
- Warnings should match verbosity levels of CRuby, with many unwanted warnings now properly omitted without verbose enabled. [#7183], [#8071]
## Standard Library
- json is updated to 2.7.1. [#7752], [#7954]
- io-console is updated to 0.7.2. This version fixes IRB on Apple M-series by using stty for console manipulation. [#8012]
- nkf is now supported by gem version 0.2.0. [#8077]
- strscan is updated to 3.1.0. [#8074], \[[#8086](https://togithub.com/jruby/jruby/issues/8086)]
- reline is updated to 0.4.2 [#8102]
- jruby-openssl is updated to 0.14.3 [#8107]
## JVM Integration
- Ruby Symbols can be use as arguments to JVM methods that receive Java String. [#8015], [#8057]
- Starting with Java 17, package-private methods will no longer be bound automatically even if they can be made visible. [#8061], [#8093]
## Native Integration
- The subsystem used for native calls has been updated to support RHEL/CentOS 7 and the Java 9+ Cleaner API. \[[#8104](https://togithub.com/jruby/jruby/issues/8104)]
## Performance
- Performance of keyword argument handling has been improved. [#8021]
- Pattern matching is now supported in JRuby's JIT compiler. [#8026], [#8027]
##### 77 Github Issues resolved for 9.4.6.0
- [#4808](https://togithub.com/jruby/jruby/issues/4808) [Rework global variables, caching to eliminate race conditions][#4808]
- [#6430](https://togithub.com/jruby/jruby/issues/6430) [Using \
- Download:
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! [@ahorek], [@jcharaoui], [@kares]
## Ruby Compatibility
- The experimental Fiber::Scheduler and IO::Buffer APIs are now supported, based on the Ruby 3.3 implementation. Pass `-Xexperimental.fiber.scheduler` to JRuby to enable. [#7944]
- For information on Fiber::Scheduler, see https://docs.ruby-lang.org/en/3.2/Fiber/Scheduler.html.
- For information on IO::Buffer, see https://docs.ruby-lang.org/en/3.2/IO/Buffer.html.
##### 20 Github Issues resolved for 9.4.5.0
- [#6346](https://togithub.com/jruby/jruby/issues/6346) [TCPSocket hangs when RST is received on Windows][#6346]
- [#7944](https://togithub.com/jruby/jruby/issues/7944) [Support for fiber scheduler API][#7944]
- [#7961](https://togithub.com/jruby/jruby/issues/7961) [Socket.each loops after receiving RST pegging CPU at 100%][#7961]
- [#7967](https://togithub.com/jruby/jruby/issues/7967) [Propagate read errors in IO backend][#7967]
- [#7968](https://togithub.com/jruby/jruby/issues/7968) [RbConfig::CONFIG\["SOEXT"\] is missing on JRuby][#7968]
- [#7969](https://togithub.com/jruby/jruby/issues/7969) [add RbConfig::CONFIG\["SOEXT"\]][#7969]
- [#7970](https://togithub.com/jruby/jruby/issues/7970) [Hide FilenoUtil warning behind native.verbose property][#7970]
- [#7971](https://togithub.com/jruby/jruby/issues/7971) [Bootstrap cleanup][#7971]
- [#7972](https://togithub.com/jruby/jruby/issues/7972) [Update strscan to 3.0.7][#7972]
- [#7975](https://togithub.com/jruby/jruby/issues/7975) [Fix ENOENT with TestProcessSpawn on Debian][#7975]
- [#7976](https://togithub.com/jruby/jruby/issues/7976) [.delete_if blocks allow deleting same object from array twich][#7976]
- [#7978](https://togithub.com/jruby/jruby/issues/7978) [Less Load{Frame,Implicit}ClosureInstr][#7978]
- [#7979](https://togithub.com/jruby/jruby/issues/7979) [Process stuck with 100% cpu when using jruby 9.4.4.0][#7979]
- [#7980](https://togithub.com/jruby/jruby/issues/7980) [Fix length handling in select!/reject! ensure][#7980]
- [#7982](https://togithub.com/jruby/jruby/issues/7982) [Error using ActiveSupport::Testing::TestHelpers (7.1.1) on jruby-9.4.4.0][#7982]
- [#7983](https://togithub.com/jruby/jruby/issues/7983) [Build, test failures when build directory contains special characters][#7983]
- [#7984](https://togithub.com/jruby/jruby/issues/7984) [Remove unnecessary cast of kwargs][#7984]
- [#7985](https://togithub.com/jruby/jruby/issues/7985) [Make sure gems path is regex-safe][#7985]
- [#7990](https://togithub.com/jruby/jruby/issues/7990) [\[fix\] infinite loop calling Java super from Ruby][#7990]
- [#7993](https://togithub.com/jruby/jruby/issues/7993) [Preserve insertion order for ivars][#7993]
[@ahorek]: https://togithub.com/ahorek
[@jcharaoui]: https://togithub.com/jcharaoui
[@kares]: https://togithub.com/kares
[#6346]: https://togithub.com/jruby/jruby/issues/6346
[#7944]: https://togithub.com/jruby/jruby/pull/7944
[#7961]: https://togithub.com/jruby/jruby/issues/7961
[#7967]: https://togithub.com/jruby/jruby/pull/7967
[#7968]: https://togithub.com/jruby/jruby/issues/7968
[#7969]: https://togithub.com/jruby/jruby/pull/7969
[#7970]: https://togithub.com/jruby/jruby/pull/7970
[#7971]: https://togithub.com/jruby/jruby/pull/7971
[#7972]: https://togithub.com/jruby/jruby/pull/7972
[#7975]: https://togithub.com/jruby/jruby/pull/7975
[#7976]: https://togithub.com/jruby/jruby/issues/7976
[#7978]: https://togithub.com/jruby/jruby/pull/7978
[#7979]: https://togithub.com/jruby/jruby/issues/7979
[#7980]: https://togithub.com/jruby/jruby/pull/7980
[#7982]: https://togithub.com/jruby/jruby/issues/7982
[#7983]: https://togithub.com/jruby/jruby/issues/7983
[#7984]: https://togithub.com/jruby/jruby/pull/7984
[#7985]: https://togithub.com/jruby/jruby/pull/7985
[#7990]: https://togithub.com/jruby/jruby/pull/7990
[#7993]: https://togithub.com/jruby/jruby/pull/7993
### [`v9.4.4.0`](https://togithub.com/jruby/jruby/releases/tag/9.4.4.0): JRuby 9.4.4.0 Released
[Compare Source](https://togithub.com/jruby/jruby/compare/9.4.3.0...9.4.4.0)
The JRuby community is pleased to announce the release of JRuby 9.4.4.0.
- Homepage:
- Download:
JRuby 9.4.x targets Ruby 3.1 compatibility.
Thank you to our contributors this release, you help keep JRuby moving forward! [@ahorek], [@chadlwilson], [@k77ch7], [@kares], [@mrnoname1000], [@ntkme], [@skmp]
## Ruby Compatibility
- Multiple fixes for keyword arguments edge cases. [#7854], [#7855], [#7857], [#7858]
## Standard Library
- Default gem updates:
- jruby-openssl 0.14.2. [#7886]
- psych is updated to 5.1.1.1, which uses SnakeYAML and exposes Psych::Parser.code_point_limit= for globally setting the code point limit.
- bigdecimal is now a default gem (3.1.4) for the pure-Ruby portions; the extension remains part of JRuby itself. [#7925]
- stringio is updated to 3.0.8. [#7881]
## Platform Support
- This release includes native support for Windows on the AArch64 (ARM64) platform. [#7843], [#7936], [#7937], [#7941], [#7945], [#7960]
- The `jruby` shell script gains support for ksh93, meaning that essentially all Bourne-compatible shells can run it. [#7870]
## JVM Integration
- Virtual thread use in Fiber can now be disabled using the `jruby.fiber.vthread=false` property (or JRuby flag `-Xfiber.vthread=false`). [#7907] [#7966]
- Multiple small bugs in JVM bytecode generation and invokedynamic logic were discovered and fixed. [#7913]
## Build and Distribution
- The JRuby/Maven stack of plugins used to integrate Ruby and Maven artifacts have been updated to the latest versions, now using JRuby 9.4.3.0 for builds and avoiding the use of deprecated rubygems.org APIs. [#7872]
## Performance
- Conditional assignment of instance variables now requires only a single lookup, and optimizes to a simple read after assignment. [#7891], [#7896]
##### 78 Github Issues and PRs resolved for 9.4.4.0
- [#7430 - Rails fails to boot under Java 19][#7430]
- [#7470 - OpenJ9 failing -Ptest][#7470]
- [#7623 - setup and fix issues reported by error-prone compiler][#7623]
- [#7649 - Infinite loop in StringScanner regex][#7649]
- [#7815 - NullPointerException for compiled code with for loop][#7815]
- [#7839 - \`clone': wrong number of arguments (given 1, expected 0) (ArgumentError) in JRuby 9.4.x][#7839]
- [#7843 - FFI Support for aarch64-windows][#7843]
- [#7847 - File subclass doesn't pass arguments from open to new properly][#7847]
- [#7848 - Wrong interpretation of multi-expression when clause][#7848]
- [#7849 - Fixes #7848. Wrong interpretation of multi-expr when clause][#7849]
- [#7850 - Fixes #7847. File subclass passes args from open to new wrong][#7850]
- [#7851 - @JRubyMethod minimum argument not enforced in 9.4.3.0][#7851]
- [#7852 - Array#intersect? incompatibility][#7852]
- [#7853 - Fix #7839. \`clone': wrong number of arguments][#7853]
- [#7854 - Pattern matching with an empty hash should result in no match][#7854]
- [#7855 - eval vs lvars scope][#7855]
- [#7857 - Fixes #7855. pattern assoc assigns should scope][#7857]
- [#7858 - Fixes #7854. Pattern matching with an empty hash should not match][#7858]
- [#7859 - Coverage library returns incorrect info for hash literal constants][#7859]
- [#7860 - Restore arity-checking with an opt-out flag][#7860]
- [#7861 - org.jruby.RubyLoadError getCause returns itself][#7861]
- [#7863 - Fixes #7859. Coverage returns incorrect info for hash literal constants][#7863]
- [#7864 - --help and other output does not check TTY][#7864]
- [#7866 - Recursive hashing corrupts shared hash buffer][#7866]
- [#7867 - \[deps\] update jruby-openssl to 0.14.2][#7867]
- [#7868 - Expanding on an older method of putting call linenums in right place][#7868]
- [#7869 - Make sure Ruby exception does not provide itself as cause.][#7869]
- [#7870 - Launcher tweaks][#7870]
- [#7872 - Migrate to new mavengem][#7872]
- [#7875 - always_verify_ssl_certificates causes class cast error][#7875]
- [#7881 - Update StringIO and reenable specs][#7881]
- [#7882 - \[fix\] duplicate hash key literal removal][#7882]
- [#7886 - Update jruby-openssl][#7886]
- [#7887 - Fix BigDecimal#power with negative integer][#7887]
- [#7888 - Fix dynscopes][#7888]
- [#7890 - Fix BigDecimal#eql? when an argument is Rational][#7890]
- [#7891 - Conditional assignment of field does two lookups][#7891]
- [#7892 - Fix BigDecimal#quo with prec and without prec][#7892]
- [#7893 - Add INT64\_MAX, INT64\_MIN, UINT64\_MAX, LLONG_MAX, LLONG_MIN and ULLONG_MAX to RbConfig::LIMITS][#7893]
- [#7894 - Fix BigDecimal#div when an argument is object][#7894]
- [#7895 - Fix BigDecimal.allocate to raise TypeError ][#7895]
- [#7896 - Optimize `@a ||= x and defined?(@a)`][#7896]
- [#7897 - Update test_bigdecimal.rb and fix a few failures][#7897]
- [#7898 - Marshal.dump with frozen string literals differs on --debug flag][#7898]
- [#7899 - Call-site cache remaining callMethod in Set][#7899]
- [#7901 - Protect cached threadlocal in recursive hash][#7901]
- [#7903 - Move frozen string debug fields into subclass][#7903]
- [#7904 - invokedynamic makes Concurrent::TimerTask.execute reliably result in `java.lang.invoke.WrongMethodTypeException` ][#7904]
- [#7905 - RubyArray: Fix intersect? for small arrays][#7905]
- [#7911 - multiple applications in tomcat and jruby 9.4.3.0 com.headius.invokebinder.InvalidTransformException: java.lang.IllegalAccessException][#7911]
- [#7913 - Multiple fixes for forced JIT and indy-based Java dispatch][#7913]
- [#7918 - Unexpected ArgumentError calling Forwardable delegated single splat method with keyword arguments][#7918]
- [#7922 - Addrinfo][#7922]
- [#7923 - add Addrinfo#ipv6\_unique_local?][#7923]
- [#7924 - (master) frozen string errors with `--debug`][#7924]
- [#7925 - Switch to bigdecimal gem][#7925]
- [#7926 - Proc.new with no args no longer supported in 3.1][#7926]
- [#7927 - Fixes #7649. Infinite loop in StringScanner regex][#7927]
- [#7928 - More frozen string tweaks][#7928]
- [#7929 - Fixes #7918. Error with single splat method with keyword arguments][#7929]
- [#7931 - Store absolute path of main at load time][#7931]
- [#7936 - Update jnr stack][#7936]
- [#7937 - File.chown throws "SystemCallError:Unknown error (SystemCallError)" at Windows11 on Arm64][#7937]
- [#7940 - More testing with Java 21][#7940]
- [#7941 - Update ffi to 1.16.1][#7941]
- [#7942 - fnmatch not matching glob syntax in 9.3.8 but it did in 9.2.20.1][#7942]
- [#7945 - Update ffi to 1.16.2][#7945]
- [#7946 - In some cases sorting using String.casecmp results in Comparison method violates its general contract!][#7946]
- [#7947 - fnmatch not matching glob syntax][#7947]
- [#7948 - Fix #7815. NullPointerException for compiled code with for loop][#7948]
- [#7949 - Use a lookup() for field access in static constant][#7949]
- [#7950 - Convert to lower, not upper, for casecmp][#7950]
- [#7952 - Avoid ANSI formatting when not on a TTY][#7952]
- [#7955 - Misc regex and strscan improvements][#7955]
- [#7956 - Re-enable J9 test in CI][#7956]
- [#7957 - Use new GHA M1 runner][#7957]
- [#7960 - Update ffi to 1.16.3][#7960]
- [#7966 - Update to psych 5.1.1.1][#7966]
[@ahorek]: https://togithub.com/ahorek
[@chadlwilson]: https://togithub.com/chadlwilson
[@mrnoname1000]: https://togithub.com/mrnoname1000
[@k77ch7]: https://togithub.com/k77ch7
[@kares]: https://togithub.com/kares
[@ntkme]: https://togithub.com/ntkme
[@skmp]: https://togithub.com/skmp
[#7430]: https://togithub.com/jruby/jruby/issues/7430
[#7470]: https://togithub.com/jruby/jruby/issues/7470
[#7623]: https://togithub.com/jruby/jruby/pull/7623
[#7649]: https://togithub.com/jruby/jruby/issues/7649
[#7815]: https://togithub.com/jruby/jruby/issues/7815
[#7839]: https://togithub.com/jruby/jruby/issues/7839
[#7843]: https://togithub.com/jruby/jruby/issues/7843
[#7847]: https://togithub.com/jruby/jruby/issues/7847
[#7848]: https://togithub.com/jruby/jruby/issues/7848
[#7849]: https://togithub.com/jruby/jruby/pull/7849
[#7850]: https://togithub.com/jruby/jruby/pull/7850
[#7851]: https://togithub.com/jruby/jruby/issues/7851
[#7852]: https://togithub.com/jruby/jruby/issues/7852
[#7853]: https://togithub.com/jruby/jruby/pull/7853
[#7854]: https://togithub.com/jruby/jruby/issues/7854
[#7855]: https://togithub.com/jruby/jruby/issues/7855
[#7857]: https://togithub.com/jruby/jruby/pull/7857
[#7858]: https://togithub.com/jruby/jruby/pull/7858
[#7859]: https://togithub.com/jruby/jruby/issues/7859
[#7860]: https://togithub.com/jruby/jruby/pull/7860
[#7861]: https://togithub.com/jruby/jruby/issues/7861
[#7863]: https://togithub.com/jruby/jruby/pull/7863
[#7864]: https://togithub.com/jruby/jruby/issues/7864
[#7866]: https://togithub.com/jruby/jruby/issues/7866
[#7867]: https://togithub.com/jruby/jruby/pull/7867
[#7868]: https://togithub.com/jruby/jruby/pull/7868
[#7869]: https://togithub.com/jruby/jruby/pull/7869
[#7870]: https://togithub.com/jruby/jruby/pull/7870
[#7872]: https://togithub.com/jruby/jruby/pull/7872
[#7875]: https://togithub.com/jruby/jruby/issues/7875
[#7881]: https://togithub.com/jruby/jruby/pull/7881
[#7882]: https://togithub.com/jruby/jruby/pull/7882
[#7886]: https://togithub.com/jruby/jruby/issues/7886
[#7887]: https://togithub.com/jruby/jruby/pull/7887
[#7888]: https://togithub.com/jruby/jruby/pull/7888
[#7890]: https://togithub.com/jruby/jruby/pull/7890
[#7891]: https://togithub.com/jruby/jruby/issues/7891
[#7892]: https://togithub.com/jruby/jruby/pull/7892
[#7893]: https://togithub.com/jruby/jruby/pull/7893
[#7894]: https://togithub.com/jruby/jruby/pull/7894
[#7895]: https://togithub.com/jruby/jruby/pull/7895
[#7896]: https://togithub.com/jruby/jruby/pull/7896
[#7897]: https://togithub.com/jruby/jruby/pull/7897
[#7898]: https://togithub.com
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
9.4.3.0
->9.4.8.0
Release Notes
jruby/jruby (org.jruby:jruby)
### [`v9.4.8.0`](https://togithub.com/jruby/jruby/releases/tag/9.4.8.0): JRuby 9.4.8.0 Released [Compare Source](https://togithub.com/jruby/jruby/compare/9.4.7.0...9.4.8.0) The JRuby community is pleased to announce the release of JRuby 9.4.8.0. - Homepage:Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.