- Notifications
You must be signed in to change notification settings - Fork5.4k
Releases: ruby/ruby
3.4.5
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.4.4
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.4.3
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.3.8
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.2.8
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.1.7
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.4.2
Compare
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
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.2.7
Compare
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.
Full Changelog
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.3.7
Compare
What's Changed
- Bug #20883: sprintf with binary strings has incorrect coderange
- Bug #20886: Crash due to double free on regex timeout after stack allocations
- Bug #20892:
ObjectSpace.dump
can produce broken JSON for classes with temporary names - [Backport 3.3] wasm: align fiber stack pointer to 16 bytes by kateinoigakukun · Pull Request #12101
- Bug #20787: IO#readline does not check its arguments like IO#gets and will read more data than limit
- Bug #20868: Method#hash changes after compaction
- Bug #20873:
printf("%f")
returns wrong result forRational
withFIXNUM_MIN
- Bug #20907: Fiber scheduler does not correctly re-lock mutex if
Mutex#sleep
is interrupted. - Bug #20871: Including methods in Enumerable doesn't make them available in Array
- Bug #20909: Backport String indexing bug fixes
- Bug #20915: Segfault with
TracePoint#parameters
and aliased C method - Bug #20921: Use-after-free in constant cache
- Bug #20924: IO#readline ignores the limit argument when the encoding is UTF-32LE and the limit would split a character
- Bug #20950: Use-after-free in ep in Proc#dup for ifunc procs
- Bug #21012: Compiling
a['a','b'],=1
with parse.y fails - 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 #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.
Full Changelog
Assets2
Uh oh!
There was an error while loading.Please reload this page.
3.4.1
Compare
Assets2
Uh oh!
There was an error while loading.Please reload this page.