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

JRuby 9.4.1.0 Released

Posted on February 8, 2023 by Michael G

Author: The JRuby Team
Source

The JRuby community is pleased to announce the release of JRuby 9.4.1.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, @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 on Tempfile 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
  • #7617 – Implement ulong random logic with random bytes
  • #7619 – Small internal optimizations found profiling CSV
  • #7620 – Use Region accessors in prep for privatizing fields
  • #7626 – Use Psych 5.1
  • #7628 – RUBY_REVISION is a short sha, not the full sha like on other Rubies

Read more

Related Posts:

  • JRuby 9.4.3.0 Released
    JRuby 9.4.3.0 Released
  • JRuby 9.4.4.0 Released
    JRuby 9.4.4.0 Released
  • JRuby 9.4.6.0 Released
    JRuby 9.4.6.0 Released
  • JRuby 9.4.10.0 Released
    JRuby 9.4.10.0 Released
  • JRuby 9.4.2.0 Released
    JRuby 9.4.2.0 Released
  • JRuby 9.4.7.0 Released
    JRuby 9.4.7.0 Released

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