Skip to content
Menu
Open World News Open World News
  • Privacy Policy
Open World News Open World News

JRuby 9.4.6.0 Released

Posted on February 21, 2024 by Michael G

Author: The JRuby Team
Source

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
  • #8074 Update strscan to fix improper sharing
  • #8077 Switch to default gem for nkf
  • #8080 [fix] avoid Class#subclasses deprecation with class.rb ext
  • #8083 (master) rdoc test suite failing with Java::JavaLang::ArrayIndexOutOfBoundsException
  • #8088 Update strscan to 3.1.0 for OOB fix
  • #8091 Ripper is not returning unary minus with proper symbol
  • #8093 Rework visibility checks for Java integration
  • #8095 Tweak kwargs logic to improve JIT inlining
  • #8099 [ji] fix java_import when constant exists in Object
  • #8100 Extra splat instr which did nothing
  • #8101 Flip File.identical? logic to try native first
  • #8102 Update reline to 0.4.2
  • #8103 Prism pluggable integration work
  • #8105 Update JNR dependencies
  • #8107 update jruby-openssl to 0.14.3
  • #8108 fix undef_method error message
  • #8109 Simple error string mismatch. Also corrected for m17n naming to prin…
  • #8110 Re-arrange indexerror string when matching group name cannot be found
  • #8111 NameError and NoMethodError should be dup’ing receiver

Read more

Related Posts:

  • Favor your repository
    Favor your repository
  • Relatively good news
    Relatively good news
  • Calculated releases scheduled
    Calculated releases scheduled
  • Apps availability still high
    Apps availability still high
  • Maintaining ownership
    Maintaining ownership
  • Safety in typing, no cloud needed
    Safety in typing, no cloud needed

Recent Posts

  • [TUT] LoRa & LoRaWAN – MikroTik wAP LR8 kit mit The Things Network verbinden [4K | DE]
  • Mercado aguarda Powell e olha Trump, dados e Haddad | MINUTO TOURO DE OURO – 11/02/25
  • Dan Levy Gets Candid About Learning How To Act Differently After Schitt’s Creek: ‘It’s Physically…
  • Building a Rock Shelter & Overnight Stay in Heavy Snow 🏕️⛰️
  • Les milliardaires Elon Musk et Xavier Niel s’insultent copieusement

Categories

  • Android
  • Linux
  • News
  • Open Source
©2025 Open World News | Powered by Superb Themes
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Cookie SettingsAccept All
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT