Releases: jruby/jruby
JRuby 9.4.7.0 Released
The JRuby community is pleased to announce the release of JRuby 9.4.7.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! @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 Multiple assignment evaluation order consistency
- #8112 update this ancient lockfile
- #8113 Remove long dead torquebox from template Gemfile and update to newer β¦
- #8114 one last update to puma version for sample Gemfile
- #8119 Possible Keyword Argument Regression in 9.4.6.0
- #8121 Prepending a module to a subclass changes it representation in the superclass#subclasses array
- #8122 Handle prepend in subclasses
- #8123 lutimes was passing huge wrong values to function
- #8124 Method.clone of frozen should stay frozen
- #8125 Proc#clone of frozen proc should stay frozen
- #8126 UnboundMethod#clone of frozen UnboundMethod should stay frozen
- #8127 EncodingError should be SyntaxError for bad symbols?
- #8128 parameters value for **nil should be nokey
- #8130 Return proper encoding error string for String#to_c
- #8131 frozen error handling for remove_instance_variable
- #8132 test flags for stats need to handle file instances as well as strings
- #8133 Implement string/eval form of trace_var
- #8134 Fix various kwarg-related specs in IO#open, File#open and Kernel#open.
- #8135 Cannot install latest
rubocop
- #8136 Redo java commandline calculation to work with newer Java's
- #8138 [deps] update joda-time to 2.12.7
- #8139 to_time raise an exception. (class org.jruby.ext.date.RubyDate cannot be cast to class org.jruby.ext.date.RubyDateTime)
- #8141 can not re-reify sub-class of a Java sub-class
- #8142 Add-Opens for complete -jar runs as expected in later Java's
- #8144 Allow extended DateTime to still be constructed using DateTime
- #8148 Profiler raises 'wrong number of arguments for constructor (ArgumentError)' for the march_hare gem
- #8155 Concurrently requiring a file from multiple threads may "succeed" even if the file raises an error
- #8156 JRuby adds Java proxy classes to the Java module even if they are not from JRubyClassLoader
- #8157 Incorrect case tree selection when comparing Symbols during compiled Ruby code execution
- #8167 Some simple refactoring but removing some mysterious classcast guards
- #8173 Coverage doesn't cover
begin
- #8179 Thread#pending_interupt? crashes
- #8185 [ji] support re-reifying class hierarchy
- #8186 [fix] LoadError on require should not complete load
- #8191 Rearrange cond0 to behave more like MRI did in 3.1
- #8192 lhs of compound const would crash if not a Module/Class
- #8193 side-effects in const op element assign by exec parent of lhs twice
- #8195 use left to right evaluation
- #8196 [deps] update jruby-openssl to 0.14.5
- #8197 END was not getting parents lvars
- #8198 Give same error message for duplicated case arms
- #8199 Enumerator#next_values behavior does not match MRI or docs
- #8200 Warnings emitted by requiring 'ostruct'
- #8201 Fix issue#8199
- #8202 do not emit labels which are not used while constructing loops + IGV enhancements
- #8203 rename all closures to more closely match a name you can read vs CLOSURE_2
- #8204 bump rdoc dependency to 6.4.1.1
- #8205 begin node coverage line should not get added if it has been removed
- #8206 Mark frame-aware method names with bang suffix for ostruct
- #8207 Partially undo kwarg optz from #8095
- #8208 Only set up Java:: constants when accessed directly
- #8209 opted case needs to use updated ints when loaded into new runtime.
- #8211 Always unwrap old initialize methods
JRuby 9.4.6.0 Released
The JRuby community is pleased to announce the release of JRuby 9.4.6.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! @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], [#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]
- 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]
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 Rework global variables, caching to eliminate race conditions
- #6430 Using <internal: for core library methods defined in Ruby
- #7151 File.identical? should use stat to compare files
- #7183 Various alias forms warn on redefine when they should not
- #7523 Define IO::READABLE, WRITABLE, PRIORITY for IO#wait
- #7695 jffi ships with binaries requiring glibc 2.27
- #7721 jirb on win10 : The signal TSTP is in use by the JVM and will not work correctly on this platform
- #7729 Sock fixes
- #7752 Update JSON gem to not use Bigdecimal.new
- #7759 irb on CentOS7, JRuby 9.4.2.0 , and JDK 1.8
- #7760 Failure to load FFI gives an outdated message
- #7845 Including a module again after prepending another module to it isn't idempotent
- #7862 Ruby 2.7 conformance: ObjectSpace::WeakMap is broken for FixNum keys
- #7939 Yaml exception when trying to install rdoc-data
- #7954 Update json for BigDecimal.new fix
- #7958 Prepend internal marker to internal sources
- #7974 [ji] support java_alias with constructor
- #7981 Less instrs
- #7996 Add %aA for printf and friends
- #8001 Fix various specs
- #8002 Time spec fixes
- #8003 Fix issues in global variable thread-safety
- #8005 New MRI test failures on less common architectures
- #8007 Fix intermittent fails in CI
- #8009 Expand WeakMap to allow floats and fixnums
- #8010 Kernel#send does not strip off empty keywords hashes before calling eventual method
- #8011 Fixes #8010. Kernel#send + empty kwargs hash error
- #8012 Update io-console
- #8013 Tag sweep2
- #8014 Fixes language specs involving blocks/yield
- #8015 Java method lookup for arity-1 method with inexact argument fails in the presence of arity-2 method with same name
- #8016 Lang specs
- #8021 Reduce overhead of kwargs for no-arg methods and blocks
- #8022 Remove implicit prologue state to methods/blocks if that state is unused
- #8026 Full JIT support for pattern matching
- #8027 Pattern jit
- #8031 Reuse thread-local jump exceptions to avoid construction
- #8033 Implement
Exception.to_tty?
- #8039 Implement
Exception.to_tty?
- #8040 Match
Exception#full_message
with MRI 3.2 - #8045 Try to find class resource to avoid exception
- #8046 Socket::IFF_* are missing
- #8047 add socket flags for zeroconf
- #8048 Try and make UDP look a little more like MRI (and hopefully make it more functional)
- #8049 Fix String#unpack from using capacity() and causing wrong error
- #8050 Various cleanups for String operations
- #8052 ignore codes logic was not doing anything in unpack
- #8053 More arity splitting
- #8054 A bit confusing error: "FrozenError: can't modify frozen NilClass"
- #8055 override getDelegate in PrependedModule to return origin
- #8056 Add hex exponential notation for Kernel::Float
- #8057 recognize RubySymbol as assignable to String
- #8060 Inspect frozen object for error
- #8061
enumerable.map
raise wrong number of arguments only when Ruby script is executed from Gradle using JDK 21 - #8063 Fix typos in cli options
- #8070 Attribute definition on singleton should call singleton_method_added
- #8071 Update some warnings to deprecated
- #8072 [Added Module#refinements and Refinement#refined_class][#8072]
- #8074 [Update strscan to fix improper sharing][#8074]
- #8077 [Switch to default gem for nkf][#8077]
- #8080 [[fix] avoid Class#subclasses deprecation with class.rb ext][#8080]
- #8083 [(master) rdoc test suite failing with Java::JavaLang::ArrayIndexOutOfBoundsException][#8083]
- #8088 [Update strscan to 3.1.0 for OOB fix][#8088]
- #8091 [Ripper is not returning unary minus with proper symbol][#8091]
- #8093 [Rework visibility checks for Java integration][#8093]
- #8095 [Tweak kwargs logic to improve JIT inlining][#8095]
- #8099 [[ji] fix java_import when constant exists in Object][#8099]
- #8100 [Extra splat instr which did nothing][#8100]
- #8101 [Flip File.identical? logic to try native first][#8101]
- #8102 [Update reline to 0.4.2][#8102]
- #8103 [Prism pluggable integration work][#8103]
- #8105 [Update JNR dependencies][#8105]
- #8107 [update jruby-openssl to 0.14.3][#8107]
- #8108 [fix undef_method error message][#8108]
- #8109 [Simple error string mismatch. Also corrected for m17n naming to prinβ¦][#8109]
- #8110 [Re-arrange indexerror string when matching group name cannot be found][#8110]
- #8111 [NameError and NoMethodError should be dup'ing receiver][#8111]
JRuby 9.3.14.0 Released
The JRuby community is pleased to announce the release of JRuby 9.3.14.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
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.
Ruby Compatibility
- IO#fcntl had inverted logic for setting O_NONBLOCK (setting it cleared the value, etc). #8081, #8090
Standard Library
- strscan is updated to the 3.1.0 version #8086
Native Integration
- The subsystem used for native calls has been updated to support RHEL/CentOS 7 and the Java 9+ Cleaner API. #8104
Note: Due to a mistake in the release process 9.3.12.0 released yesterday only changed in version number. It was essentially 9.3.11.0 with a new version.
5 Github Issues resolved for 9.3.14.0
JRuby 9.4.5.0 Released
The JRuby community is pleased to announce the release of JRuby 9.4.5.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! @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 TCPSocket hangs when RST is received on Windows
- #7944 Support for fiber scheduler API
- #7961 Socket.each loops after receiving RST pegging CPU at 100%
- #7967 Propagate read errors in IO backend
- #7968 RbConfig::CONFIG["SOEXT"] is missing on JRuby
- #7969 add RbConfig::CONFIG["SOEXT"]
- #7970 Hide FilenoUtil warning behind native.verbose property
- #7971 Bootstrap cleanup
- #7972 Update strscan to 3.0.7
- #7975 Fix ENOENT with TestProcessSpawn on Debian
- #7976 .delete_if blocks allow deleting same object from array twich
- #7978 Less Load{Frame,Implicit}ClosureInstr
- #7979 Process stuck with 100% cpu when using jruby 9.4.4.0
- #7980 Fix length handling in select!/reject! ensure
- #7982 Error using ActiveSupport::Testing::TestHelpers (7.1.1) on jruby-9.4.4.0
- #7983 Build, test failures when build directory contains special characters
- #7984 Remove unnecessary cast of kwargs
- #7985 Make sure gems path is regex-safe
- #7990 [fix] infinite loop calling Java super from Ruby
- #7993 Preserve insertion order for ivars
JRuby 9.3.13.0 Released
The JRuby community is pleased to announce the release of JRuby 9.3.13.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
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.
Note: Due to a mistake in the release process 9.3.12.0 released yesterday only changed in version number. It was essentially 9.3.11.0 with a new version.
JRuby 9.3.13.0 has been released with just a handful of bug fixes this time.
We are ramping down maintenance of 9.3 in preparation for EOL at the end of this year. Let us know what we can do to get you on JRuby 9.4 today!
3 Github Issues resolved for 9.3.13.0
JRuby 9.4.4.0 Released
The JRuby community is pleased to announce the release of JRuby 9.4.4.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! @ahorek, @chadlwilson, @k77ch7, @kares, @mrnoname1000, @ntkme, @skmp
Ruby Compatibility
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
- #7470 - OpenJ9 failing -Ptest
- #7623 - setup and fix issues reported by error-prone compiler
- #7649 - Infinite loop in StringScanner regex
- #7815 - NullPointerException for compiled code with for loop
- #7839 - `clone': wrong number of arguments (given 1, expected 0) (ArgumentError) in JRuby 9.4.x
- #7843 - FFI Support for aarch64-windows
- #7847 - File subclass doesn't pass arguments from open to new properly
- #7848 - Wrong interpretation of multi-expression when clause
- #7849 - Fixes #7848. Wrong interpretation of multi-expr when clause
- #7850 - Fixes #7847. File subclass passes args from open to new wrong
- #7851 - @JRubyMethod minimum argument not enforced in 9.4.3.0
- #7852 - Array#intersect? incompatibility
- #7853 - Fix #7839. `clone': wrong number of arguments
- #7854 - Pattern matching with an empty hash should result in no match
- #7855 - eval vs lvars scope
- #7857 - Fixes #7855. pattern assoc assigns should scope
- #7858 - Fixes #7854. Pattern matching with an empty hash should not match
- #7859 - Coverage library returns incorrect info for hash literal constants
- #7860 - Restore arity-checking with an opt-out flag
- #7861 - org.jruby.RubyLoadError getCause returns itself
- #7863 - Fixes #7859. Coverage returns incorrect info for hash literal constants
- #7864 - --help and other output does not check TTY
- #7866 - Recursive hashing corrupts shared hash buffer
- #7867 - [deps] update jruby-openssl to 0.14.2
- #7868 - Expanding on an older method of putting call linenums in right place
- #7869 - Make sure Ruby exception does not provide itself as cause.
- #7870 - Launcher tweaks
- #7872 - Migrate to new mavengem
- #7875 - always_verify_ssl_certificates causes class cast error
- #7881 - Update StringIO and reenable specs
- #7882 - [fix] duplicate hash key literal removal
- #7886 - Update jruby-openssl
- #7887 - Fix BigDecimal#power with negative integer
- #7888 - Fix dynscopes
- #7890 - Fix BigDecimal#eql? when an argument is Rational
- #7891 - Conditional assignment of field does two lookups
- #7892 - Fix BigDecimal#quo with prec and without prec
- #7893 - Add INT64_MAX, INT64_MIN, UINT64_MAX, LLONG_MAX, LLONG_MIN and ULLONG_MAX to RbConfig::LIMITS
- #7894 - Fix BigDecimal#div when an argument is object
- #7895 - Fix BigDecimal.allocate to raise TypeError
- #7896 - Optimize
@a ||= x and defined?(@a)
- #7897 - Update test_bigdecimal.rb and fix a few failures
- #7898 - Marshal.dump with frozen string literals differs on --debug flag
- #7899 - Call-site cache remaining callMethod in Set
- #7901 - Protect cached threadlocal in recursive hash
- #7903 - Move frozen string debug fields into subclass
- [#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]
JRuby 9.3.11.0 Released
The JRuby community is pleased to announce the release of JRuby 9.3.11.0
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
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 contributors this release, you help keep JRuby moving forward! @ahorek, @chadlwilson, @justinstoller, @k77ch7, @kares, @snoglobe
Ruby Compatibility
Standard Library
- strscan is still built-in (not a gem) but has been updated to the 3.0.6 version. #7634, #7884, #7889
- Along with this change, our Regexp engine joni is updated to 2.2.1 for Range optimizations.
- Default gem updates:
- jruby-openssl0.14.2 #7877
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
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. #7880
33 Github Issues resolved for 9.3.11.0
- #7216 - Something changed from 9.2.x to 9.3.x that causes a SecurityException with access denied when using jruby as osgi-bundle
- #7353 - SSH connection stucked with NET::SSH_7.0.1 and OpenSSH_8.0 with FIPS enabled
- #7394 - require_relative confused by chdir
- #7483 - Regression in Socket#close - EBADF after unsuccessful connection
- #7633 - Do not return early from ThreadService#terminate
- #7634 - Update joni and strscan
- #7635 - Cleanup IO state for true connect failures
- #7648 - Array#fill not compliant with MRI
- #7651 - Fix Array#fill for edge case
- #7677 - SCRIPT_LINES__ is set to nil if you require ripper.
- #7730 - Running specific regex with Regexp::IGNORECASE flag on text starting with specific pipe character results in java.lang.ArrayIndexOutOfBoundsException
- #7742 - fix flipBuffer overloads
- #7749 - When converting from binary to decimal with to_i(2), the result will be 0 if it contains multiple underscores.
- #7754 - [deps] update jruby-openssl to 0.14.1
- #7762 - [fix] avoid walking constructor instructions on every call
- #7769 - error: invalid multibyte character occurs in JRuby 9.4.2.0
- #7782 - Fix defined?(super) on BasicObject from causing NullPointerException
- #7784 - [build] make generated .class files deterministic
- #7794 - [deps] update joda-time to latest 2.12.5
- #7805 - High lock contention in Socket.select in JRuby 9.3
- #7806 - Reduce contention in heavy IO operations
- #7877 - [deps] update jruby-openssl to 0.14.2
- #7880 - Migrate to new mavengem (9.3 version)
- #7889 - Update joni and strscan for recent fixes
- #7906 - It seems that tomcat results in nullpointer exception when clearing tread locals
- #7907 - Improvements for vthread fibers
- #7912 - Guard for null in StringWrapper
- #7916 - ConcurrentModificationException during RubyModule.defineAnnotatedMethods / Ruby.addBoundMethod
- #7917 - Make bound method management threadsafe
- #7920 - Restore default protection domain for OneShotCL
- #7932 - Store absolute path of main at load time
- #7933 - Improve line numbers for generated dynscopes
- #7934 - Fix String#to_i with leading zero and underscores
JRuby 9.4.3.0
The JRuby community is pleased to announce the release of JRuby 9.4.3.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! @byteit101, @donv, @k77ch7, @rcrews
Ruby Compatibility
Standard Library
- Default gem updates:
- rubygems 3.3.26 [#7831]
- bundler 2.3.26 [#7831]
- cgi 0.3.6 [#7831]
- date 3.3.3 (stub gem on JRuby) [#7831]
- ffi 1.15.5 [#7831]
- jruby-openssl 0.14.1
- net-http 0.3.0 [#7831]
- net-protocol 0.1.2 [#7831]
- reline 0.3.5 [#7831]
- ffi-binary-libfixposix 0.5.1.1 to support Apple M1 (used by subspawn for improved subprocess management)
- time 0.2.2 [#7831]
- timeout 0.3.2 [#7831]
- uri 0.12.1 [#7831]
- Bundled gem updates: [#7831]
- net-imap 0.2.3
- Many fixes for BigDecimal behavior by @k77ch7. [#7747], [#7758], [#7766], [#7767], [#7768], [#7778], [#7779], [#7780], [#7781], [#7813], [#7827]
- Rippper now passes all tests related to the syntax_tree gem. [#7776]
Performance
- Various small optimizations based on Rails and other frequent use cases. [#7522], [#7720], [#7722], [#7783], [#7789]
JVM Integration
- InvokeDynamic support is now being tested across five major test suites on Java 17 and passes all tests that non-indy execution passes. [#7797]
79 Github Issues resolved for 9.4.3.0
- #1422 - GzipReader#mtime gives the wrong time
- #6607 - Clean up javadoc for stricter Java 11
- #7452 - Default external to locale as in CRuby
- #7474 - Rails 7 support
- #7522 - case/when optimizations
- #7579 - GLIBC compatibility with RHEL/CentOS 7 and JRuby 9.4.0.0
- #7673 - Enable more traces and reduce costs of others
- #7676 - ruby2_keywords should not warn when using ...
- #7711 - Constants set by autoload have wrong line number in JIT
- #7712 - Use real stack trace for autoload const location
- #7714 - Enumerator cleanup
- #7717 - sass-embedded gem extension install fails with rake require error on Windows with JRuby 9.4.2.0
- #7718 - Deprecation cleanup
- #7719 - Fixes #7717. sass-embedded gem extension install fails with jruby-comβ¦
- #7720 - More indy call optz
- #7722 - Eliminate duplication for optimized case/when build
- #7723 - passing specs
- #7724 - Syslog tags
- #7725 - More specs already fixed
- #7726 - Ruby-based SecurityManager can recurse forever
- #7728 - [feat] make Ruby#setWarningsEnabled actually useful
- #7734 - Object with finalizer dumps wrong data leading to:
load': marshal data too short
- #7735 -
Dir.home
is no longer compatible with CRuby after JRuby 9.3 - #7738 - Fix Dir.home called with nil user
- #7739 - Don't try to marshal non-serializable variables
- #7740 - irb error on Mac M1
- #7741 - some line numbers on warnings are off by 1
- #7743 - [ripper] NPE during parsing the rspec documentation
- #7744 - The
File#absolute_path?
implementation in JRuby 9.4.x.x causes issues with asciidoctor-pdf - #7745 - Pathname#absolute? stopped working properly for URIs
- #7746 - Flaky test running rack on JRuby
- #7747 - Ruby 3.1 : fix Bigdecimal
- #7751 - Move arity-checking into variable-arity method bodies
- #7753 - Fix #7743. NPE during parsing the rspec documentation
- #7755 - Fixes #7676. ruby2_keywords should not warn when using ...
- #7756 - Regression go away
- #7757 - Migrate regressions into jruby:spec or remove if already covered
- #7758 - Fix BigDecimal#sub with Object and significant digits
- #7761 - Can't match rspec errors in 9.4.2.0
- #7764 - Mysterious "unused literal ignored" warnings
- #7765 - GH-6607 Clean up javadoc for stricter Java 11
- #7766 - Fix rounding mode constants of BigDecimal to use the same mri's values
- #7767 - Fix BigMath#exp and #log error message for edge cases
- #7768 - Fix BigDecimal(0, NAN and INFINITY) to return always same object
- #7770 - Fixes #7769. regexp with / before mbc should work.
- #7774 - ripper presents an extra on_var_field for opt parameters in methods
- #7775 - Fixes #7774. ripper presents an extra on_var_field for opt params
- #7776 - Ripper fixes found while running syntax_tree gems tests.
- #7777 - fix try_convert error message
- #7778 - Fix BigDecimal#to_s for edge case
- #7779 - Fix bigdecimal/util's #to_d and BigDecimal.interpret_loosely to return correct value for loosely case
- #7780 - Fix several BigDecimal failures
- #7781 - Add BigDecimal#power(n, prec)
- #7783 - Rails profiling optimizations
- #7789 - Java call optimizations
- #7790 - jruby --help displays removed taint level command line option
- #7791 - Remove obsolete command line option
-T[level]
- #7793 - Macbook M1 JRuby 9.4.2.0 Could not open library 'fixposix' 'libfixposix.dylib'
- #7797 - Fix recent regressions on master
- #7800 - Update time and uri for recent ReDoS issues
- #7801 - Update time to 0.2.2 and use date stub gem 3.3.3
- #7802 - Update Subspawn to fix #7793
- #7804 - Incorrect ArgumentError: wrong number of arguments
- #7807 - Update joni to 2.2
- #7808 - Update to backport9 1.13 for module javadoc fix
- #7813 - Add BigDecimal#quo(value, digits)
- #7814 - Update jzlib and fix mtime
- #7816 - Fixes #7804. Incorrect ArgumentError: wrong number of arguments
- #7818 - Small documentation issues regarding java options
- #7820 - Accessing
Encoding
from java code is broken on new thread - #7824 - Use top self for evalScriptlet, since no frame yet
- #7826 - Fix Rational#truncate with an invalid value
- #7827 - Fix BigDeciaml#to_f
- #7828 - Improve verbiage of how to use properties.
- #7830 - ArrayIndexOutOfBoundsException matching regex against emoji string
- #7831 - Update stdlib gems and compat to 3.1.4
- #7832 - Update JNR versions
- #7833 - Update IRB tests to 1.7.0 version
- #7834 - Return to IRB 1.4.2 for now
JRuby 9.4.2.0
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.
JRuby 9.4.1.0
The JRuby community is pleased to announce the release of JRuby 9.4.0.0.
- Homepage: https://www.jruby.org/
- Download: https://www.jruby.org/download
Thank you to our contributors this release, you help keep JRuby moving forward! [@ahorek], [@cboos], [@evaniainbrooks], [@jcharaoui], [@k77ch7], [@knovok], [@Panxuefeng-loongson], [@ydah]
Thanks also to the community of JRuby users for trying out JRuby 9.4.0.0 and filing issues! We're proud to include so many fixes in this update release and we couldn't have done it without your bug reports.
Ruby Compatibility
- Several fixes to keyword arguments are included in this release. [#7434], [#7494], [#7497], [#7502], [#7513], [#7537], [#7552], [#7561], [#7572], [#7573], [#7574], [#7583], [#7592], [#7593]
- Random has been fixed to work properly with SecureRandom, which was generating all zeros. [#7586], [#7597], [#7607], [#7617]
Standard Library
- The Psych YAML library is updated to 5.1.0. This version switches the JRuby extension to SnakeYAML Engine, avoiding CVEs against the original SnakeYAML and updating YAML compatibility to specification version 1.2. [#6365], [#7570], [#7626]
Platform Support
- Final changes to support the LoongArch64 architecture have been merged in. [#7518]
Performance
- Overall JIT bytecode size has been improved, allowing more methods to compile to JVM bytecode. The maximum IR size eligible for JIT has been increased from 1000 instructions to 3000 instructions. [#7589]
84 Issues resolved for 9.4.1.0
- #5534 - irb and rails console broken on windows 10
- #6297 - jruby-jars profile fails on Java 11
- #6365 - Psych syntax error changed in JRuby 9.2.13.0
- #7112 - RSpec can't match errors in jruby-9.4.0.0
- #7434 - [9.4.0.0]
IR compiler/interpreter bug: org.jruby.ir.operands.UndefinedValue should not be used as a valid value during execution.
- #7476 -
Zlib::GzipWriter
cannot be properly sub-classed - #7479 - Cannot sub-class
Zlib::GzipWriter
and call.wrap
- #7481 -
Symbol#to_s
returns a frozen String - #7485 - JRuby 9.4 defines Hash#index, and defines Hash.ruby2_keywords_hash{,?} as instance methods
- #7486 - Regression in 9.4 (optimizer? JIT?)
- #7487 - Regression in 9.4 IRB parser
- #7488 - Remove Hash index method, and fix ruby2_keywords_hash module method
- #7489 - Symbol to_s returns frozen string
- #7490 - Update actions/checkout version to v3
- #7491 - Enumerator using Enumerable method with Symbol#to_proc passing wrong value to yield
- #7492 - Possible regression in JRuby v9.4.0.0
- #7493 - one-time-execute can sometimes contain a closure. guard it.
- #7494 - Specific arity kwargs undefined
- #7497 - We should not be setting callInfo anywhere but the call(site) sans (Kβ¦
- #7499 - Warnings in Rake's extension code to FileUtils under JRuby 9.4.0.0
- #7500 - "Unknown node encountered in builder" error on previously working code
- #7501 - DNodes are ListNodes and get compiled wrong in presence of a splat.
- #7502 - Excessive kwargs duplicate key warns
- #7503 - [refactor] make Java embed utils generic
- #7506 - JRuby 9.4.0.0 Anonymous block argument after a splat is broken
- #7509 - Fix syntax error in all cases where & is a param.
- #7510 - Fixes #7479. Cannot sub-class Zlib::GzipWriter and call .wrap
- #7511 - Fixes #7476. Zlib::GzipWriter cannot be properly sub-classed
- #7513 - Kwargy
- #7518 - Support for LoongArch64
- #7520 - Error running rubocop with JRuby 9.4.0.0
- #7521 - FFI errno spec fails on JRuby on Windows
- #7525 - ENV encoding fixes (windows)
- #7526 - Refinement does not self-refine properly
- #7527 - alias winapi_error to lasterror
- #7529 - Enumerator#inspect produces an ASCII-8BIT encoded String
- #7531 - Enumerator#inspect: Use String concatenation not just bytelist appends
- #7532 - Enumerator inspect tests
- #7534 - [feat] allow enabling warnings wout changing $VERBOSE
- #7535 - Refinement regression on 9.4
- #7536 - Fixes #7492. define_method should use definition scope.
- #7537 - Keyword argument regression in JRuby 9.4
- #7539 - The
:binmode
keyword argument isn't applied onTempfile
in JRuby 9.4 - #7541 - passthrough anno added
- #7547 - jruby-complete cannot start irb in windows
- #7549 - [ji] support converting RubyThread to a java.lang.Thread
- #7550 - Fix Enumerable#zip when an argument does not have each method
- #7551 - UnboundMethod#bind should use virtual include class for module methods
- #7552 - Fixes #7537. Kwargs arg regression.
- #7556 - jRuby 9.4 fails to load Celluloid gem
- #7557 - [ji] revert Thread#to_java behavior to stay compatible, for now
- #7561 - Delegating methods must be able to set ruby2_keywords on delegate.
- #7563 - Fix comparator of Bignum and Infinity
- #7564 - Fix Numeric#remainder when divisor is infinity
- #7566 - Fix Float#floor and Float#round for some edge cases
- #7567 - Fix missing require in mri-core tests
- #7570 - New snakeyaml vulnerability has dropped, affects jruby-complete
- #7571 - [refactor] warnings which assumed a message is being passed
- #7572 - Keyword arguments are catched as arguments instead of keyword arguments
- #7573 - Fixes #7572. Blocks with only keywords losing keyword status.
- #7574 - Simplify logic in IRBuilder for keyword arguments.
- #7576 - yield from Enumerator raises "no receiver given"
- #7580 - Enumerator acts differently when Symbol#to_proc is used
- #7583 - Dir[] with multiple patterns fails if kwargs given.
- #7586 - SecureRandom.random_number is always 0
- #7589 - JIT size and perf improvements
- #7591 - Fix Float#round with half even option
- #7592 - Unexpected ArgumentError due to a JIT bug in JRuby 9.4.0.0
- #7593 - Code was trying to make an int out of the kwargs hash.
- #7594 - Attempt at making proper inflate error happen.
- #7595 - Set refinement bit before building closure
- #7596 - Java::JavaLang::ClassCastException when initializing instance variable
- #7597 - If no seed given, use default random for seed
- #7599 - Treat send of using or refine as refinement
- #7601 - Fixed launch jruby in MSYS2 environment
- #7602 - Some ranges will 'warning: ... at EOL, should be parenthesized?'
- #7603 - Fix errant ... warning
- #7606 - Use an identity map for the partial objects
- [#7607 - Array#sample does not honor random byte gen]...