Releases: ruby/ruby
3.3.9
What's Changed
- Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing - Ruby - Ruby Issue Tracking System
- Bug #21220: Memory corruption in update_line_coverage() [write at index -1] - Ruby - Ruby Issue Tracking System
- Bug #21331: heap-use-after-free caused by rehash during transform_values! - Ruby - Ruby Issue Tracking System
- Bug #21327: Windows builds seem broken after clock_gettime changes? - Ruby - Ruby Issue Tracking System
- Bug #21344: Segment Fault Caused by no Backported Patches - Ruby - Ruby Issue Tracking System
- Bug #21257: YJIT can generate infinite loop when OOM - Ruby - Ruby Issue Tracking System
- Bug #21333: heap-use-after-free caused by rehash during update - Ruby - Ruby Issue Tracking System
- Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite - Ruby - Ruby Issue Tracking System
- Bug #21310: YJIT optimization causes incorrect is_a? method evaluation - Ruby - Ruby Issue Tracking System
- Bug #21354: Symbol#to_proc is not ractor safe - Ruby - Ruby Issue Tracking System
- Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines - Ruby - Ruby Issue Tracking System
- Bug #21283: Some tests of TestMkmfConvertible is failing with VS2022 17.14.0 preview 4.0 - Ruby - Ruby Issue Tracking System
- Bug #21255: Can't build Ruby with Windows SDK 10.0.26100 - Ruby - Ruby Issue Tracking System
- Bug #21380: Use-After-Free in String#split with In-Block String Modification - Ruby - Ruby Issue Tracking System
- Bug #21440: Cannot create instances of frozen Data subclasses - Ruby - Ruby Issue Tracking System
- Bug #21437: Date#hash may return different values for equal dates with large years - Ruby - Ruby Issue Tracking System
- Bug #21441: SEGV during thread cleanup if profiler calls thread_profiles_frames at wrong time - Ruby - Ruby Issue Tracking System
- Bug #21438: use-after-free when resizing exivars - Ruby - Ruby Issue Tracking System
- Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII - Ruby - Ruby Issue Tracking System
- Bug #21448: Random.urandom may fail to fall back to reading /dev/urandom on Linux < 3.17 - Ruby - Ruby Issue Tracking System
- Bug #21497: building issue when using gcc15, because C23 is default - Ruby - Ruby Issue Tracking System
- Fix bigand_int edgecase returning false by tompng · Pull Request #13987
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.2.9
This release includes the following security fixes:
- CVE-2025-24294: Possible Denial of Service in resolv gem
- CVE-2025-43857: DoS vulnerability in net-imap
and the following fixes for build issues:
- GCC 15.1
- Visual Studio 2022 Version 17.14
What's Changed
- Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing - Ruby - Ruby Issue Tracking System
- Bug #21255: Can't build Ruby with Windows SDK 10.0.26100 - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.5
What's Changed
- Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines - Ruby - Ruby Issue Tracking System
- Sync lockfile from rubygems/rubygems by deivid-rodriguez · Pull Request #13472
- Bug #21438: use-after-free when resizing exivars - Ruby - Ruby Issue Tracking System
- Ensure that memory is not freed before calling
free_fast_fallback_getaddrinfo_*
by shioimm · Pull Request #12661 - Fix
heap-use-after-free
infree_fast_fallback_getaddrinfo_entry
by shioimm · Pull Request #13231 - Bug #21441: SEGV during thread cleanup if profiler calls thread_profiles_frames at wrong time - Ruby - Ruby Issue Tracking System
- Bug #21255: Can't build Ruby with Windows SDK 10.0.26100 - Ruby - Ruby Issue Tracking System
- Backport GH-13617 for s390x by hsbt · Pull Request #13757
- Bump up resolv-0.6.2 for Ruby 3.4 by hsbt · Pull Request #13818
- Bug #21197: Prism does not accept newline after defined? keyword - Ruby - Ruby Issue Tracking System
- Bug #21333: heap-use-after-free caused by rehash during update - Ruby - Ruby Issue Tracking System
- Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite - Ruby - Ruby Issue Tracking System
- Bug #21383: Prism leaks memory with invalid yield - Ruby - Ruby Issue Tracking System
- Bug #21394: Memory leak in Prism's RubyVM::InstructionSequence.new - Ruby - Ruby Issue Tracking System
- Bug #21099: TestGc#test_gc_stress_at_startup assertion failure - Ruby - Ruby Issue Tracking System
- Bug #21395: Please backport caa6ba1a46afa1bc696adc5fe91ee992f9570c89 - Ruby - Ruby Issue Tracking System
- Bug #21439: Crash with PM_SPLAT_NODE compiler error (Prism) - Ruby - Ruby Issue Tracking System
- Bug #21354: Symbol#to_proc is not ractor safe - Ruby - Ruby Issue Tracking System
- Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII - Ruby - Ruby Issue Tracking System
- Bug #21380: Use-After-Free in String#split with In-Block String Modification - Ruby - Ruby Issue Tracking System
- Bug #21447: Fix handling of PM_CONSTANT_PATH_NODE node in keyword arguments with ARGS_SPLAT - Ruby - Ruby Issue Tracking System
- Bug #21448: Random.urandom may fail to fall back to reading /dev/urandom on Linux < 3.17 - Ruby - Ruby Issue Tracking System
- Bug #21440: Cannot create instances of frozen Data subclasses - Ruby - Ruby Issue Tracking System
- Bug #21437: Date#hash may return different values for equal dates with large years - Ruby - Ruby Issue Tracking System
- Bug #21497: building issue when using gcc15, because C23 is default - Ruby - Ruby Issue Tracking System
- Bug #21500: Backport gcc 15 support - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.4
What's Changed
- YJIT: Split the block on optimized getlocal/setlocal by k0kubun · Pull Request #13331
- Bug #21257: YJIT can generate infinite loop when OOM - Ruby - Ruby Issue Tracking System
- Bug #21286: Windows - MSYS2 just updated to GCC 15.1.0, builds failing - Ruby - Ruby Issue Tracking System
- Bug #21327: Windows builds seem broken after clock_gettime changes? - Ruby - Ruby Issue Tracking System
- Bug #21331: heap-use-after-free caused by rehash during transform_values! - Ruby - Ruby Issue Tracking System
- Bug #21289: Fix C level backtraces for USE_ELF - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.3
What's Changed
- Bug #21145: Prism accepts newlines in-between curly unicode escape - Ruby - Ruby Issue Tracking System
- Bug #21153: ::Foo ||= p 1 should parse - Ruby - Ruby Issue Tracking System
- Bug #21030: Bug: #step with
Range<ActiveSupport::Duration>
behavior broken on Ruby 3.4.1 - Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Feature #19521: Support for
Module#name=
andClass#name=
. - Ruby - Ruby Issue Tracking System - Bug #21159:
Module#set_temporary_name
should freeze given name - Ruby - Ruby Issue Tracking System - Bug #21161: Crash when locale is set to Turkish tr_TR.UTF-8 - Ruby - Ruby Issue Tracking System
- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #21172: Race condition in
register_fstring
- Ruby - Ruby Issue Tracking System - Bug #21163: Inconsistencies in Kernel.Float compared to other number parsing methods - Ruby - Ruby Issue Tracking System
- Bug #21173: RUBY_FREE_AT_EXIT does not work when error in -r - Ruby - Ruby Issue Tracking System
- Bug #21179: Introduction Happy Eyeballs Version 2 broke
Socket.tcp
from secondary Ractors - Ruby - Ruby Issue Tracking System - Bug #19841: Marshal.dump stack overflow with recursive Time - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #21186: Inconsistent parsing of ?あand 0 - Ruby - Ruby Issue Tracking System
- Bug #21094: Module#set_temporary_name does not affect a name of a nested module - Ruby - Ruby Issue Tracking System
- Bug #21195: Crash when using IO#timeout - Ruby - Ruby Issue Tracking System
- Bug #21196: Ruby 3.4 ignores visibility when passing arguments using
...
- Ruby - Ruby Issue Tracking System - Bug #21141:
Time#utc?
does not work with a timezone object - Ruby - Ruby Issue Tracking System - Bug #21211: Incomplete Backtrace for Socket Errors in Ruby 3.4+ - Ruby - Ruby Issue Tracking System
- Bug #21197: Prism does not accept newline after defined? keyword - Ruby - Ruby Issue Tracking System
- Bug #21183: Ractor error with Prism::VERSION - Ruby - Ruby Issue Tracking System
- Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18 - Ruby - Ruby Issue Tracking System
- Bug #21220: Memory corruption in update_line_coverage() [write at index -1] - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.3.8
What's Changed
- Bump net-imap to 0.4.19 for Ruby 3.3 (CVE-2025-25186) by nevans · Pull Request #12732
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #20951: Confusing handling of timezone object's
#utc_to_local
results - Ruby - Ruby Issue Tracking System - Bug #21046: Backport: TLS fix for ARM64 - Ruby - Ruby Issue Tracking System
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Ruby - Ruby Issue Tracking System - Bug #21095: Prefer
uname -n
overhostname
in tests. - Ruby - Ruby Issue Tracking System - Bug #21112: Typo in error message when an incorrect key is used with WeakKeyMap - Ruby - Ruby Issue Tracking System
- Bug #21092: error building ruby 3.4.1 on cygwin/msys2 - Ruby - Ruby Issue Tracking System
- Bug #21159:
Module#set_temporary_name
should freeze given name - Ruby - Ruby Issue Tracking System - Bug #21172: Race condition in
register_fstring
- Ruby - Ruby Issue Tracking System - Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Bug #19841: Marshal.dump stack overflow with recursive Time - Ruby - Ruby Issue Tracking System
- Bug #21186: Inconsistent parsing of ?あand 0 - Ruby - Ruby Issue Tracking System
- Bug #21094: Module#set_temporary_name does not affect a name of a nested module - Ruby - Ruby Issue Tracking System
- Bug #21195: Crash when using IO#timeout - Ruby - Ruby Issue Tracking System
- Bug #20984: ENV.inspect is not encoding aware - Ruby - Ruby Issue Tracking System
- Bug #21027:
not()
receiver should benil
- Ruby - Ruby Issue Tracking System - Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18 - Ruby - Ruby Issue Tracking System
- Bug #21141:
Time#utc?
does not work with a timezone object - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.2.8
Security fixes
What's Changed
- Bug #21092: error building ruby 3.4.1 on cygwin/msys2 - Ruby - Ruby Issue Tracking System
- Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash - Ruby - Ruby Issue Tracking System
- Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set - Ruby - Ruby Issue Tracking System
- Bug #18257: rb_mRubyVMFrozenCore is broken by GC run - Ruby - Ruby Issue Tracking System
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Ruby - Ruby Issue Tracking System - Bug #21131: IO.copy_stream: yielded string changes value when duped - Ruby - Ruby Issue Tracking System
- Bug #19584: Crash in rb_gc_register_address - Ruby - Ruby Issue Tracking System
- Bug #21180: SEGV while marking
imemo_env->iseq
- Ruby - Ruby Issue Tracking System - Bug #20025: Parsing identifiers/constants is case-folding dependent - Ruby - Ruby Issue Tracking System
- Bug #19426: Endless
Range#step
of object with#succ
method does not work - Ruby - Ruby Issue Tracking System
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.1.7
Security fixes
- CVE-2025-27219, CVE-2025-27220 and CVE-2025-27221
- Update REXML-3.3.4 and rss-0.3.1 as bundled gems
What's Changed
- Bug #20516: The version of rexml in ruby 3.3.2 has not been updated since 3.2.6. - Ruby - Ruby Issue Tracking System
- Improve base time of assert_linear_performance by tompng · Pull Request #11369
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.4.2
What's Changed
- Bug #21024: Ruby including generates compilation warning with GCC 15, header is deprecated in C++17,
- Bug #21021: "try to mark T_NONE object" with 3.4.1
- Bug #20997: YJIT panic assertion
left == right
failed: leave instruction expects stack size 1, but was: 2 - Bug #20981: rb_undefine_finalizer is missing
- Bug #20989: Segmentation fault in Ripper when lexing
/#{"\xcd"}/
- Bug #21003: unexpected warning about ignored block
- Bug #21002: Please include license information of turbo_tests
- Bug #21001: unexpected nil result from proc with ensure and next
- Bug #21010: Endless method definition of
[]=
is SyntaxError in parse.y but allowed in Prism - Bug #20992:
eval(ascii_encoded_code)
raises EncodingError when multibyte local variable exists - Bug #21017:
--with-parser=parse.y
configure option does not work - Bug #21014: Prism doesn't set node_id on iseqs correctly
- Bug #21027:
not()
receiver should benil
- Bug #20995: exception escapes block given to IO.popen("-") in child process
- Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
- Bug #21044: Prism maximum recursion depth is 1_000, parse.y is 10_000
- Bug #21031: Incompatibility with prism and parse.y when eval'ing unnamed forwarding variables
- Bug #21085: [BUG] Stack consistency error with -ne
- Bug #21048: [Prism] rescue in modifier form with condition behaves differently
- Bug #21046: Backport: TLS fix for ARM64
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - Bug #21038: Preserve
errno
inrb_fiber_scheduler_unblock
- Bug #21032:
Module#autoload?
is slow when$LOAD_PATH
contains a relative path - Bug #21092: error building ruby 3.4.1 on cygwin/msys2
- Bug #21095: Prefer
uname -n
overhostname
in tests. - Bug #21103: Binding problem with delegate methods
- Bug #21088: TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
- Bug #21112: Typo in error message when an incorrect key is used with WeakKeyMap
- Bug #21117: Inconsistent behaviour between "_1" and "it" variables
- Bug #21114: Prism hangs up while parsing deeply nested
def
- Bug #20984: ENV.inspect is not encoding aware
- Bug #20982: Inconsistency between Hash#inspect and ENV.inspect in Ruby 3.4
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.
Full Changelog
3.2.7
What's Changed
- Bug #20853: Hash key retrieval after Process.warmup
- Bug #20868: Method#hash changes after compaction
- Bug #20883: sprintf with binary strings has incorrect coderange
- Bug #20873:
printf("%f")
returns wrong result forRational
withFIXNUM_MIN
- Bug #20898: Backport https://github.com/ruby/ruby/pull/9737 to Ruby 3.3 and 3.2
- Bug #20871: Including methods in Enumerable doesn't make them available in Array
- Bug #20907: Fiber scheduler does not correctly re-lock mutex if
Mutex#sleep
is interrupted. - Bug #20909: Backport String indexing bug fixes
- Bug #20921: Use-after-free in constant cache
- Bug #20915: Segfault with
TracePoint#parameters
and aliased C method - Bug #20447: Ruby 3.3.1 broken on i686 due to "incompatible pointer type" error
- Bug #20924: IO#readline ignores the limit argument when the encoding is UTF-32LE and the limit would split a character
- Bug #20984: ENV.inspect is not encoding aware
- Bug #20995: exception escapes block given to IO.popen("-") in child process
- Bug #21008: Array#sum, Enumerator#sum, Numeric subclass
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - Bug #21038: Preserve
errno
inrb_fiber_scheduler_unblock
- Bug #20997: YJIT panic assertion
left == right
failed: leave instruction expects stack size 1, but was: 2
Note: This list is automatically generated by tool/gen-github-release.rb. Because of this, some commits may be missing.