Project

General

Profile

Activity

From 09/23/2026 to 09/29/2026

Today

07:02 PM Ruby Revision b74b3b45 (git): [ruby/prism] Add a constant id set
There are times when we don't need explicit order in a list of
constants, namely when looking at names of captures in a pattern
match and names of captures in a regular expression. In these cases
it's better to be linear with respect to ...
kddnewton (Kevin Newton)
06:55 PM Ruby Revision da36b454 (git): [ruby/prism] Add an implicit words sep token
The parse.y grammar has the concept of a words separator that must
delimit words in a word list literal. Prism previously didn't emit
these in the token stream because they don't actually correspond
to any source code.
However, in order...
kddnewton (Kevin Newton)
06:55 PM Ruby Revision 7ebf0b69 (git): [ruby/prism] Switch ripper compat to forward look
A bunch of things are required to match ripper state, including
looking backward sometimes to pull a state forward because of the
nature of parse.y. This changes the structure from a backward look
to a forward look by keeping a couple of...
kddnewton (Kevin Newton)
05:47 PM Ruby Revision 8fdf4342 (git): ZJIT: Bake block ISEQ pointers as GC offsets (#19108)
k0kubun (Takashi Kokubun)
03:02 PM Ruby Revision 696ebaad (git): JITs: Rebuild libjit.rlib when jit/src/lib.rs changes
Both libyjit.rlib and libzjit.rlib list jit/src/lib.rs as a dependency
in release builds containing both JITs. Any change to that file causes
the JIT-specific libraries to rebuild, but they'll rebuild with a stale
libjit.rlib, which can ...
Kevin Menard
01:06 PM Ruby Revision aeb212ec (git): [DOC] Adding section 'Cleaning Up' to doc guide (#19101)
* [DOC] Adding section 'Cleaning Up' to doc guide
* Update doc/contributing/documentation_guide.md
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
* Update doc/contributing/documentation_guide.md
Co-authored-by: Jeremy Evans <cod...
burdettelamar (Burdette Lamar)
12:14 PM Ruby Bug #22390 (Open): ruby 3.4 -> 4.0 upgrade GC changes causing >2x RSS increase
Hello, I've been trying to upgrade a fairly sizeable monolith, which has been running on ruby 3.4.10 in production, to ruby 4 (have been targeting 4.0.6 more specifically, although the below should apply the same to 4.0.7). While we didn... chucke (Tiago Cardoso)
11:35 AM Ruby Revision d1296b10 (git): [ruby/rubygems] Add --source option to gem exec command
Allows specifying a custom gem source when running `gem exec`, matching
the existing --source option on gem install.
https://github.com/ruby/rubygems/commit/6990083d9d
Co-Authored-By: akshay-birajdar-zendesk <akshay.birajdar@zendesk.com>
the_spectator (Akshay Birajdar)
11:17 AM Ruby Revision 43dab371 (git): Stop pending test_sending_hook_payloads_under_gc_stress on Windows arm64
Its failures on 11-arm no longer fail Windows result, and a crash there now leaves a dump to investigate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
11:17 AM Ruby Revision 73efd1f9 (git): Collect crash dumps on the Windows CI
Test workers on Windows 11-arm die without any report. With RUBY_DEBUG=wer, Windows Error Reporting writes a minidump for such a crash, and it is uploaded with the binaries and PDBs needed to read it. The runner images already turn off t... hsbt (Hiroshi SHIBATA)
11:17 AM Ruby Revision a3799e92 (git): win32: Add RUBY_DEBUG=wer to leave crashes to Windows Error Reporting
SEM_NOGPFAULTERRORBOX keeps a crashing test from waiting on the WER dialog, but it also keeps WER from writing a dump when the crash bypasses Ruby's handler, as in a thread other than the main one. Such a crash leaves no [BUG] report eit... hsbt (Hiroshi SHIBATA)
11:17 AM Ruby Revision 98d355b0 (git): Keep Windows 11-arm failures out of Windows result
The 11-arm check job is not stable enough to block merges. The windows-11-arm label moves to the Visual Studio 2026 image by September 30, and on forks already running it, test workers die in the first TLS handshake of every test-all run... hsbt (Hiroshi SHIBATA)
11:13 AM Ruby Bug #22388 (Closed): Use-after-free when an Enumerable retains its `each` block
Applied in changeset commit:git|c861619e891632aeeb42907b17003dbc9fbf5f2f.
----------
[Bug #22388] Fix use-after-free in some `Enumerable` methods
nobu (Nobuyoshi Nakada)
10:25 AM Ruby Bug #22388 (Closed): Use-after-free when an Enumerable retains its `each` block
Some `Enumerable` methods pass a pointer to stack-allocated state to `rb_block_call`. If an implementation of `each` retains the given block and invokes it after the `Enumerable` method has returned, the callback accesses invalid stack ... nobu (Nobuyoshi Nakada)
10:36 AM Ruby Bug #22389 (Open): Hang on GC.compact
The following code works on 4.0.7 but hangs on 4.1.0dev (64a4a372d7):
```ruby
ready = Ractor::Port.new
Ractor.new(ready) do |port|
Array.new(10_000) { Object.new }
port << true
Ractor.receive
end
ready.receive
Thread.new...
rkh (Konstantin Haase)
10:26 AM Ruby Revision 3ac822c7 (git): [Bug #22388] Fix use-after-free in `Enumerable#sum`
nobu (Nobuyoshi Nakada)
10:26 AM Ruby Revision c861619e (git): [Bug #22388] Fix use-after-free in some `Enumerable` methods
nobu (Nobuyoshi Nakada)
09:42 AM Ruby Bug #21142 (Closed): Lazy enumerator `.each_with_index` ignores `.take(0)` before it
Applied in changeset commit:git|64f4b9ab83c4da368e6314c7ab8b74247894cada.
----------
[Bug #21142] Add `Enumerator::Lazy#each_with_index`
nobu (Nobuyoshi Nakada)
08:35 AM Ruby Revision 64f4b9ab (git): [Bug #21142] Add `Enumerator::Lazy#each_with_index`
nobu (Nobuyoshi Nakada)
08:35 AM Ruby Revision 753e64f3 (git): Merge alias definition and registration
Also, make `lazy_use_super_method` hash `compare_by_identity` since
all the keys are symbols, .
nobu (Nobuyoshi Nakada)
07:43 AM Ruby Feature #19325 (Closed): YJIT: Windows support lacking.
Closing as a duplicate of #18439. YJIT on mswin is waiting for review at https://github.com/ruby/ruby/pull/19114. hsbt (Hiroshi SHIBATA)
07:36 AM Ruby Feature #18439: YJIT: Support Microsoft x86 calling convention
I made YJIT work on mswin x64 in https://github.com/ruby/ruby/pull/19114. It follows the Win64 calling convention and registers unwind info for JIT code, as discussed here, and passes `nmake check` with YJIT enabled. YJIT is about 2x fas... hsbt (Hiroshi SHIBATA)
07:26 AM Ruby Revision 64a4a372 (git): [ruby/mmtk] Update mmtk-core and remove LOS workaround
There was a bug in mmtk-core that caused `is_live()` and
`is_reachable()` to return wrong results for objects in the large object
space. The function `object_survives_current_gc` was introduced to
workaround the bug.
The bug has been f...
wks (Kunshan Wang)
07:11 AM Ruby Revision 90393033 (git): Watch fd 0 when it is the only connection attempt
When stdin is closed, a socket can get fd 0, and nfds stayed 0 if it was the only fd to wait for, so select never reported the connection.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:11 AM Ruby Revision 4fbebba3 (git): Forget the connection attempt fd when getsockopt fails
The fd was closed but left in connection_attempt_fds, so it was passed to the next select and closed again in the cleanup, possibly after the number had been reused.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:11 AM Ruby Revision b72d2fec (git): Don't skip the next connection attempt after a failed one
remove_connection_attempt_fd shifts the remaining fds down, so advancing the index skipped the fd moved into the current slot. A connection that had already succeeded could go unnoticed until the next select, and a new attempt was starte... hsbt (Hiroshi SHIBATA)
07:10 AM Ruby Revision 16d68e7f (git): [ruby/json] JRuby: keep the whole character after an invalid escape
With allow_invalid_escape, the JRuby decoder appended the code point read
after a stray backslash with append(int), which writes only its low byte.
"\\é" became "\xE9" and "\\あ" became "B", where the C extension
keeps the character. Use ...
youdie006
07:07 AM Ruby Revision 009103a3 (git): Read has_syserr under the lock
The main thread polls has_syserr on every loop while the resolver thread may be setting it, so read it with the lock the resolver thread holds. Once it is seen set, err and ai were written before it and can be read as before.
Co-Authore...
hsbt (Hiroshi SHIBATA)
07:07 AM Ruby Revision b42fdd9e (git): Close the resolver notification pipe under the lock
The resolver thread checks notify and writes to it while holding the lock. Closing it outside the lock let the thread write a byte to an unrelated file that had reused the fd number.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:27 AM Ruby Revision 30717985 (git): Use high-resolution waitable timers for timed waits on Windows
The millisecond timeout of a Win32 wait is rounded up to the timer tick, so `sleep(0.001)` took 15.6 ms on average. A waitable timer created with `CREATE_WAITABLE_TIMER_HIGH_RESOLUTION`, accepted since Windows 10 1803, brings that to 1.5... hsbt (Hiroshi SHIBATA)
05:50 AM Ruby Revision f9ce29e0 (git): mswin: Pass INSTALL_STATIC_LIBRARY to RbConfig
configure.bat already writes INSTALL_STATIC_LIBRARY, but Makefile.sub never substituted it, so tool/rbinstall.rb could not see --disable-install-static-library. Default it to yes, as configure.ac always sets yes or no.
Co-Authored-By: C...
hsbt (Hiroshi SHIBATA)
05:05 AM Ruby Revision 58b42841 (git): Resolve mkdepend source names against the source root
A relative name was expanded against the current directory first, so a
build directory nested inside the source tree made generated files such
as ext/ripper/ripper.y look like source-tree files, and the extension's
own depend file was no...
Hiroshi SHIBATA
02:42 AM Ruby Revision ef66863a (git): Update bundled gems list as of 2026-09-28
git[bot]
02:40 AM Ruby Revision a23db2a9 (git): Bump the github-actions group across 1 directory with 5 updates
Bumps the github-actions group with 5 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [ruby/setup-ruby](https://github.com/ruby/setup-ruby) | `1.325.0` | `1.327.0` |
| [github/codeql-action/init](https://github...
dependabot[bot]
01:34 AM Ruby Revision 5266c788 (git): Fix out-of-bounds crash in Array#repeated_permutation
If the array is modified in the call to to_int in Array#repeated_permutation,
it can trigger an out-of-bounds because the length is cached from before
the call to to_int.
The following script demonstrates teh crash:
ary = (1..1000)...
peterzhu2118 (Peter Zhu)
12:12 AM Ruby Revision c3a285fc (git): Call stat directly instead of the STAT macro in file.c
Since the Windows-specific definition was removed, STAT is only an alias of stat, which include/ruby/win32.h already maps to rb_w32_ustati128.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)

09/28/2026

10:53 PM Ruby Bug #22387 (Closed): str_shared_replace incorrectly recalculates termlen
Applied in changeset commit:git|67cd1d3bde0fc3c1afe2fab3aaac8c10edd12e5b.
----------
[Bug #22387] Fix termlen in str_shared_replace (#19104)
[Bug #22387] Fix termlen in str_shared_replace
The buffer is copied over based on the new str...
Anonymous
08:52 PM Ruby Bug #22387: str_shared_replace incorrectly recalculates termlen
Backport PR for 3.4: https://github.com/ruby/ruby/pull/19105 rwstauner (Randy Stauner)
08:44 PM Ruby Bug #22387: str_shared_replace incorrectly recalculates termlen
bakport for 4.0: https://github.com/ruby/ruby/pull/19104 rwstauner (Randy Stauner)
08:43 PM Ruby Bug #22387: str_shared_replace incorrectly recalculates termlen
PR for master: https://github.com/ruby/ruby/pull/19103 rwstauner (Randy Stauner)
08:42 PM Ruby Bug #22387 (Closed): str_shared_replace incorrectly recalculates termlen
This ruby snippet crashes under ASan with a heap-buffer-overflow
```ruby
s = ("\u{30AF}" * 7).encode("UTF-16LE").b
s.force_encoding("UTF-16LE")
s.encode!("UTF-8") # 21 bytes in a 22-byte malloc, capa now claims 22
s << "x" ...
rwstauner (Randy Stauner)
10:53 PM Ruby Revision 67cd1d3b (git): [Bug #22387] Fix termlen in str_shared_replace (#19104)
[Bug #22387] Fix termlen in str_shared_replace
The buffer is copied over based on the new string's termlen
so we can just set the new encoding raw
instead of recalculating based on the old encoding's termlen.
Randy Stauner
10:00 PM Ruby Feature #22226: Ractor: class/module ownership -- restrict modification to the Ractor that created it
matz (Yukihiro Matsumoto) wrote in #note-6:
> Top-level class and module names in non-main Ractors, and the integration with `Ruby::Box`, should be settled together with the author of `Ruby::Box`. Let us discuss that separately.
ko1 ...
tikkss (Tsutomu Katsube)
05:04 PM Ruby Bug #22386: Segfault when a Ractor helper thread reports an exception during teardown
That was quick. Thank you! rkh (Konstantin Haase)
03:20 PM Ruby Bug #22386 (Closed): Segfault when a Ractor helper thread reports an exception during teardown
Applied in changeset commit:git|13411f495b47d52cd07de667908073bd5fcea5fc.
----------
[Bug #22386] Reject port creation after Ractor termination
Raise `Ractor::ClosedError` to prevent child threads from accessing
freed port tables durin...
nobu (Nobuyoshi Nakada)
10:57 AM Ruby Bug #22386: Segfault when a Ractor helper thread reports an exception during teardown
[GH-19096](https://github.com/ruby/ruby/pull/19096) nobu (Nobuyoshi Nakada)
04:59 PM Ruby Revision 5fe7d61b (git): [ruby/json] Ensure `default_sort_keys_proc` isn't reassigned.
It's assignable from Ruby simply for the gem's own initialization,
but it should never be re-assigned later.
Fix: https://github.com/ruby/json/pull/1079
https://github.com/ruby/json/commit/cc32ef5cf5
byroot (Jean Boussier)
04:22 PM Ruby Revision 42bf37a4 (git): [ruby/prism] Only report real captures inside alternation patterns
When a variable is captured anywhere in a pattern, the operands of each
alternation are visited to report captures inside them. That visitor
treated every local variable target as a capture, including
underscore-prefixed names and target...
yuki300 (y h)
04:02 PM Ruby Revision 31f1446a (git): Extract `ary_make_hidden_shared_copy`
Make hidden shape copy of an array. nobu (Nobuyoshi Nakada)
04:02 PM Ruby Revision 679c0ca2 (git): Hidden objects class is cleared
nobu (Nobuyoshi Nakada)
03:20 PM Ruby Revision 5d4800ec (git): win32: Quote assignment in batch
nobu (Nobuyoshi Nakada)
03:20 PM Ruby Revision 82682cb9 (git): win32: Consolidate FILETIME timestamp conversion
Set seconds and nanoseconds together to avoid duplicate conversions. nobu (Nobuyoshi Nakada)
03:20 PM Ruby Revision e284bed5 (git): win32: Harden AF_UNIX socketpair path handling
Keep the cleanup path and reject temporary paths that cannot fit. nobu (Nobuyoshi Nakada)
03:20 PM Ruby Revision 32a2ac18 (git): win32: Simplify home directory resolution
Allocate only the buffer needed by the selected home directory source. nobu (Nobuyoshi Nakada)
03:20 PM Ruby Revision 8b86f090 (git): win32: Handle an empty system temporary path
Avoid reading before the buffer when the resolved base path is empty. nobu (Nobuyoshi Nakada)
02:40 PM Ruby Revision 13411f49 (git): [Bug #22386] Reject port creation after Ractor termination
Raise `Ractor::ClosedError` to prevent child threads from accessing
freed port tables during teardown.
nobu (Nobuyoshi Nakada)
02:05 PM Ruby Revision fb39511f (git): ZJIT: Profile opt_case_dispatch (#19080)
In 7eab8b5d488da8474d7b31196e3d06b2ff90399d I wanted to avoid extra
work. Since we don't actually use any profile information in ZJIT for
compiling `opt_case_dispatch`, I decided not to call the profiling
instruction.
However, this caus...
Max Bernstein
12:33 PM Ruby Misc #22320 (Closed): Build fails with SIGSEGV in `miniruby` during `builtin_binary` on macOS 26 (Tahoe): `pipe2` declared by SDK but absent from libSystem at runtime
Thanks for the report!
This is a duplicate of #22311 and should already be resolved in the latest ruby 4.0 release (4.0.11). The next 3.4 release will also contain the fix for this.
Earlopain (Earlopain _)
11:32 AM Ruby Feature #8947 (Closed): make alias, alias_method, attr_* return name of the alias
This was implemented in https://bugs.ruby-lang.org/issues/17314 Earlopain (Earlopain _)
09:36 AM Ruby Revision d939272e (git): Fix out-of-bounds in Array#sample when array modified
The fix in commit 11f57c6 contained a bug where the calculated index should
be `len - i` and not `len - 1`. This script reproduces the crash:
ary = (1..100).to_a
gen = Object.new
gen.define_singleton_method(:rand) { |lim| 8 ...
peterzhu2118 (Peter Zhu)
08:57 AM Ruby Revision 64ff11df (git): [DOC] Harmonize writable? methods
burdettelamar (Burdette Lamar)
08:28 AM Ruby Revision 1212cfb3 (git): win32: Stop splitting writes to the console
Windows 7 and older could not write more than about 64KB to a console in one call, so console writes and binary writes to character devices were split into 31366-unit pieces [Bug #14942]. Windows older than 8 has not been supported since... hsbt (Hiroshi SHIBATA)
08:23 AM Ruby Revision 390e274c (git): Pend test_sending_hook_payloads_under_gc_stress on Windows arm64
The child dies with SIGSEGV in about a quarter of the Windows 11-arm check runs on master, and leaves no [BUG] report to go on. It has not shown up on x64 Windows, Linux or macOS.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:20 AM Ruby Revision 177587f5 (git): Fix cycle(n).size for n beyond the Fixnum range
LONG2FIX does not check the range, so `[1].cycle(2**30).size` returned -1073741824 on mswin. 64-bit platforms hit the same with 2**62.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:03 AM Ruby Revision e3ed0c51 (git): [ruby/rubygems] Drop the verify_spec checks that only protected to_ruby
Gem::Specification#to_ruby now escapes these values or raises for them, so such a spec fails in ensure_loadable_spec as corrupt. Call to_ruby inside its rescue so that failure is reported the same way.
https://github.com/ruby/rubygems/c...
hsbt (Hiroshi SHIBATA)
07:03 AM Ruby Revision 9e707ecf (git): [ruby/rubygems] Keep the output of Gem::Specification#to_ruby well-formed
Dependency names were written into %q<> without escaping, and specification_version, dependency types and stub line values were interpolated as is, so a stray `\`, `>` or newline changed the structure of the generated gemspec. Dump depen... hsbt (Hiroshi SHIBATA)
06:16 AM Ruby Revision 16926919 (git): Make `IO::Buffer` slices offset-based so they survive source relocation. (#19090)
Samuel Williams
04:13 AM Ruby Revision c568687e (git): Treat empty `IO::Buffer` ranges as non-overlapping. (#19088)
Samuel Williams
03:58 AM Ruby Revision 05c26687 (git): [ruby/rubygems] Send X-Gemfile-Source on redirects only within the same origin
Gem::RemoteFetcher and the Bundler downloader resent the header on every redirect, including one to another origin. It carries the source URI that Bundler replaces with a mirror, credentials included, so it is meant for the mirror's orig... hsbt (Hiroshi SHIBATA)
02:15 AM Ruby Revision 11c91bf4 (git): [DOC] Update dates in updated man pages only
nobu (Nobuyoshi Nakada)
02:07 AM Ruby Revision 4d56c955 (git): Revalidate `IO::Buffer` byte access after Ruby callbacks. (#19086)
Treat encoding coercion, `to_io`, and scheduler capability checks as
callouts that can change the buffer before byte access begins.
- Copy `get_string` bytes through the existing locked-for-reading helper
after encoding coercion, with...
Samuel Williams
12:49 AM Ruby Revision c3f21194 (git): [DOC] Harmonize zero? methods
burdettelamar (Burdette Lamar)
12:47 AM Ruby Revision cdf1e4f3 (git): [DOC] Harmonize writable_real? methods
burdettelamar (Burdette Lamar)
12:42 AM Ruby Revision dc724dd3 (git): [DOC] Harmonize world_writable? methods
burdettelamar (Burdette Lamar)
12:41 AM Ruby Revision 25cb3a88 (git): [DOC] Harmonize world_readable? methods
burdettelamar (Burdette Lamar)
12:28 AM Ruby Revision d84403c0 (git): [DOC] Harmonize unlink doc
burdettelamar (Burdette Lamar)

09/27/2026

10:29 PM Ruby Revision c5994c60 (git): [DOC] Update the date in man pages
check_misc asks for this after man/ruby.1 changed.
https://github.com/ruby/ruby/actions/runs/36075733323/job/107886392990
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 6c9351f0 (git): Mention the removed platforms in NEWS
None of these removals had been announced in NEWS before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision f67e01a8 (git): Remove the IRIX 4 libsun check from etc
IRIX is not a platform Ruby supports.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 1c92a623 (git): Remove AmigaOS from the zlib OS code detection
AmigaOS is not a platform Ruby supports.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 92aded91 (git): Remove support code for unmaintained platforms
AtheOS, AmigaOS, HI-UX/MPP, IRIX, OSF/1, QNX, ESIX, UX/PDS, System V Release 4 and RISC OS are not listed under Platform Maintainers in doc/maintainers.md, and none of these branches is reached on a supported platform.
Co-Authored-By: C...
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 20f85b84 (git): Remove unsupported platforms from the fileutils test platform checks
Ruby 1.9.1 dropped Windows CE, and Ruby 2.3 dropped OS/2 (emx) and Borland C.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 0316cce6 (git): Remove unsupported platforms from RubyGems and Bundler Windows detection
Ruby 1.9.1 dropped DJGPP and Windows CE, and Ruby 2.3 dropped Borland C. Gem::WIN_PATTERNS itself stays because other gems reference it. msdos in Bundler::WINDOWS goes with djgpp, since only DJGPP's msdosdjgpp host_os ever matched it.
C...
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision ece6d6cf (git): Remove bccwin from the zlib OS code detection
Ruby 2.3 dropped Borland C.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision ab5a81eb (git): Remove leftover checks for unsupported platforms
Ruby 1.9.1 dropped DJGPP, Windows CE and VMS, NeXTSTEP, OpenStep and Rhapsody went in 2011, and Ruby 2.3 dropped OS/2, BeOS and Borland C. None of these names appears in RUBY_PLATFORM or host_os on a supported platform.
Co-Authored-By: ...
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision 7058490a (git): Remove unsupported platforms from prism host_os patterns
Ruby 1.9.1 dropped DJGPP and Windows CE, and Ruby 2.3 dropped Borland C.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:29 PM Ruby Revision ae8b82c7 (git): Remove bccwin from the Resolv::Hosts platform check
Ruby 2.3 dropped Borland C.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:12 PM Ruby Bug #22284 (Closed): Passing an object with to_int to curry as its arity causes problems with LLP64.
Applied in changeset commit:git|ec3b6b12e7fdd9eb833ba867eb862956a85f424b.
----------
[Bug #22284] Fix curry with a non-Fixnum arity on LLP64
FIX2INT does not call to_int where int and long have the same size, so `method(:puts).curry(1r...
YO4 (Yoshinao Muramatsu)
10:00 PM Ruby Revision f021cc2f (git): [Bug #22284] Let NUM2INT handle Fixnum arity of curry
NUM2INT already takes the Fixnum path by itself. hsbt (Hiroshi SHIBATA)
10:00 PM Ruby Revision 020ccece (git): [Bug #22284] Test curry with an arity that responds to to_int
It also counts the to_int calls, so it fails on LP64 platforms too, where the old code converted the arity again on every call. hsbt (Hiroshi SHIBATA)
10:00 PM Ruby Revision ec3b6b12 (git): [Bug #22284] Fix curry with a non-Fixnum arity on LLP64
FIX2INT does not call to_int where int and long have the same size, so `method(:puts).curry(1r)` waited for a garbage number of arguments on Windows. Convert the arity once and keep the result as a Fixnum, which also limits the to_int ca... YO4 (Yoshinao Muramatsu)
09:20 PM Ruby Revision 4c5d52f0 (git): [ruby/rubygems] Bump rubyzip from 3.3.0 to 3.4.0 in /spec/realworld/fixtures/warbler
Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/rubyzip/rubyzip/releases)
- [Changelog](https://github.com/rubyzip/rubyzip/blob/main/Changelog.md)
- [Commits](https://github.c...
dependabot[bot]
12:05 PM Ruby Bug #22386 (Closed): Segfault when a Ractor helper thread reports an exception during teardown
Ruby 4.1-dev can segfault when a thread inside a terminating Ractor raises an exception in an `ensure` block. Automatic thread exception reporting tries to load error-formatting code through `require`. The require path creates an interna... rkh (Konstantin Haase)
10:26 AM Ruby Bug #22310: parse.y rejects a variable binding that precedes an unrelated alternative pattern
A follow-up on "every form I tried gives the same answer": while writing more tests I found a few forms where it's Prism that gets it wrong, the other way around. With a sibling capture present, Prism also rejects `in [x, 1 | _a]`, `in [... yuki300 (y h)
05:30 AM Ruby Revision f6ff9e7d (git): Etc.uname: Report the actual Windows version
GetVersionEx reports 6.2.9200 on Windows 8.1 and later unless the manifest of the executable declares them as supported, and ruby.manifest does not. RtlGetVersion is not affected by the manifest.
Co-Authored-By: Claude Opus 5.5 <noreply...
hsbt (Hiroshi SHIBATA)
04:03 AM Ruby Revision 41349bb1 (git): Require NUMBER_OF_PROCESSORS in test_nprocessors
A missing variable turned the lower bound into 0, which the existing assertion already covers.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:03 AM Ruby Revision 17af2a83 (git): Define ALL_PROCESSOR_GROUPS for mingw builds
mingw-w64 guards the macro with _WIN32_WINNT >= 0x0601 as well as the function, while the mingw build targets 0x0600.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:03 AM Ruby Revision fa3cbf9e (git): Count processors across all processor groups in Etc.nprocessors
GetSystemInfo() reports the logical processors of the current processor group only, so Etc.nprocessors returned at most 64 on Windows machines with more than 64 logical processors. GetActiveProcessorCount(ALL_PROCESSOR_GROUPS) counts eve... hsbt (Hiroshi SHIBATA)
03:30 AM Ruby Revision b58db2ba (git): Give the foreign unshareable store test time to write the crash report
The child aborts with [BUG], and symbolizing the C level backtrace for the crash report can take longer than the default 10 seconds on a loaded macOS CI host. Use the same budget as 1712837b7f.
https://github.com/ruby/ruby/actions/runs/...
hsbt (Hiroshi SHIBATA)
12:12 AM Ruby Revision 7fb38443 (git): CI: Use case() for the x86 suffix in the Windows workflow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
12:12 AM Ruby Revision 7505510c (git): CI: Build and test x86 mswin on Windows
Breakages specific to i386-mswin32, such as the size_t atomic fetch_add and the prism bit.h build failure, were found only by auditing. Run check on x86 as well so that CI catches them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic...
hsbt (Hiroshi SHIBATA)
12:12 AM Ruby Revision 51f85d54 (git): CI: Do not mistake the x86 ruby DLL for the VC runtime
On i386-mswin32 the ruby DLL has no arch prefix and is named vcruntime140-ruby410.dll, so the vcruntime140*.dll check rejected every x86 binary package. Match only the VC runtime DLL names.
Co-Authored-By: Claude Opus 5.5 <noreply@anthr...
hsbt (Hiroshi SHIBATA)
12:12 AM Ruby Revision 2151a047 (git): Ignore PROCESSOR_ARCHITEW6432 in the ENV tests on WOW64
On 64-bit Windows, WOW64 sets PROCESSOR_ARCHITEW6432 when a 32-bit process starts, like PROCESSOR_ARCHITECTURE under the x64 emulation on ARM64, so test_execopts_env and test_execopts_unsetenv_others fail on i386-mswin32.
Co-Authored-By...
hsbt (Hiroshi SHIBATA)
12:02 AM Ruby Revision 7cdbc846 (git): Return the byte count from IO#write to a Windows console
`rb_w32_write_console` returns the number of UTF-16 code units it wrote, so writing "あ" to a console returned 1 instead of 3 as it does for files and NUL. Use the result only to tell success, as the other callers do.
Co-Authored-By: Cla...
hsbt (Hiroshi SHIBATA)

09/26/2026

11:26 PM Ruby Revision cd3657cf (git): Remove CharNext from eval_intern.h
ruby_push_include was its last user. A path separator never appears inside a multibyte character, so walk RUBYLIB and -I by bytes everywhere. This also fixes the same skipped separator on Cygwin, where CharNext came from windows.h.
Co-A...
hsbt (Hiroshi SHIBATA)
11:26 PM Ruby Revision 10eee53b (git): Do not skip path delimiters after multibyte characters in dln_find on Windows
The dln_find.c object built on its own receives UTF-8 command names from process.c, but scanned them with CharNext in the ANSI code page. With a DBCS code page, a backslash after a multibyte character was missed, and `exec("あ\\foo", "x")... hsbt (Hiroshi SHIBATA)
11:26 PM Ruby Revision 3e7be388 (git): Do not skip path separators after multibyte characters on Windows
RUBYLIB and -I are UTF-8 on Windows, but ruby_push_include walked them with CharNext in the ANSI code page. With a DBCS code page such as 932, the last byte of a UTF-8 character was taken as a lead byte and swallowed the following `;`, s... hsbt (Hiroshi SHIBATA)
09:10 PM Ruby Revision b992b96e (git): win32: Leave the select sets empty on timeout
The polling loop restored every socket into the sets before checking
the deadline, so a timed-out select returned them all as ready. When
IO.select forced a zero timeout for buffered data, sockets with nothing
to read were reported read...
hsbt (Hiroshi SHIBATA)
09:10 PM Ruby Revision 4e9e6289 (git): win32: Do not drop non-socket handles from select results
When FD_SETSIZE (64) or more sockets were ready, copy_fd stopped there
and a ready pipe or other non-socket handle was left out of the result.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:10 PM Ruby Revision 8512e07d (git): win32: Keep all sockets in the sets while polling select
The polling loop saved and restored the sets through fixed fd_set
buffers, which hold only FD_SETSIZE (64) sockets. From the second
poll on, sockets past that were no longer watched, so IO.select could
miss them until the timeout.
Co-A...
hsbt (Hiroshi SHIBATA)
09:05 PM Ruby Revision dbbc81fe (git): Stop including missing/file.h in dln.c and util.c
Nothing in them has used <fcntl.h> or the L_* and *_OK macros since 9afa9ba967 split dln_find.c out and f9e9eee677 removed ruby_add_suffix.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:05 PM Ruby Revision cb005af5 (git): Remove the redundant _WIN32 check in rb_group_member
Neither mswin nor mingw defines HAVE_GETGROUPS, so the remaining condition already covers Windows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:05 PM Ruby Revision 224bb408 (git): Remove Windows redefinitions that duplicate win32.h
include/ruby/win32.h already maps stat, lstat, access, truncate, utimensat, unlink, rename and getenv to the same rb_w32_* functions when compiling the core with RUBY_EXPORT.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:05 PM Ruby Revision 145305b0 (git): Remove the disabled Windows branch in rb_str_encode_ospath
It has been `#if 0` since 04e95f8985 disabled it to avoid infinite recursion at loading transcoder.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
08:53 PM Ruby Revision 70849295 (git): [ruby/test-unit-ruby-core] Pass a message to Timeout.timeout only when given
Timeout.timeout in Ruby 2.3 takes at most two arguments, so EnvUtil.timeout always raised ArgumentError there. EnvUtil.terminate reaches it through Debugger#dump on Windows when gdb is installed, which broke test_terminate_reaps_exited_c... hsbt (Hiroshi SHIBATA)
07:24 PM Ruby Revision b58bea07 (git): Fix buffer size accounting for `rb_str_tmp_frozen` roots
capa does not include the terminator, so when a buffer moves
between strings with different terminator lengths the capacity has to
be converted or we will try to free the buffer with the wrong size:
[BUG] buffer 0x00005030039ff768 f...
Randy Stauner
04:34 PM Ruby Revision 25f659ba (git): ZJIT: Don't CheckInterrupts on inlined method return (#19065)
An inlined `leave` is just a `Jump` to the caller's continuation block, not a real return no frame pops there, so checking interrupts is pointless. Moved `CheckInterrupts` so it only runs on real (Standalone) returns and real returns are... Abishekcs
03:38 PM Ruby Revision 7eab8b5d (git): ZJIT: Add null support for opt_case_dispatch (#19040)
We are not going to optimized switch-based dispatch with the hash table, at
least not yet, but we should let the interpreter profile the execution paths
before ZJIT runs them.
This should inject a lot more type information for the compi...
Max Bernstein
03:17 PM Ruby Revision 4b0026e8 (git): [PRISM] Get rid of quadratic compilation in and/or nodes
kddnewton (Kevin Newton)
01:43 PM Ruby Revision 6bf7f7f4 (git): [ruby/prism] Rename `SymbolNode#value_loc` to `SymbolNode#content_loc`
Makes it consistent with nodes that contain text, like `StringNode`
For those, `value` returns the literal. But we can't make it return a symbol for backwards compatibility.
https://github.com/ruby/prism/commit/7c1e135205
Earlopain (Earlopain _)
01:35 PM Ruby Bug #22385 (Open): Enumerator::Lazy#zip loses to_ary conversions when mixed with enumerable arguments
`Enumerator::Lazy#zip` discards a successful `to_ary` conversion when a later argument requires Enumerable iteration. The equivalent eager `Enumerable#zip` call preserves the conversion.
## Reproduction
```ruby
array_like = Object...
afurm (Andrii Furmanets)
01:02 PM Ruby Revision 6eab8427 (git): Force postmortem GC to always run
Currently, if GC is disabled, postmortem GC is not ran when a Ractor dies.
This can cause the object space to have issues because we need to run the
postmortem GC. This commit will guarantee that it runs.
peterzhu2118 (Peter Zhu)
12:38 PM Ruby Bug #22342: IO#gets can ignore the limit argument in some edge cases
ruby_3_4 commit:0a33ab92c08c8d1dbba0b3c97781d16b40ac53a8 merged revision(s) commit:227006291d35b2255b3f7a888d75102c129b0472. nagachika (Tomoyuki Chikanaga)
11:58 AM Ruby Bug #22342 (Closed): IO#gets can ignore the limit argument in some edge cases
Applied in changeset commit:git|227006291d35b2255b3f7a888d75102c129b0472.
----------
Fix IO#gets ignoring the limit argument
IO#gets first searches for separator candidates by looking for the last
byte of the record separator, and then...
rhenium (Kazuki Yamaguchi)
12:38 PM Ruby Revision 0a33ab92 (git): merge revision(s) 227006291d35b2255b3f7a888d75102c129b0472: [Backport #22342]
[PATCH] Fix IO#gets ignoring the limit argument
IO#gets first searches for separator candidates by looking for the last
byte of the record separator, and then checks whether it is an actual
match.
If a c...
nagachika (Tomoyuki Chikanaga)
11:25 AM Ruby Revision 22700629 (git): Fix IO#gets ignoring the limit argument
IO#gets first searches for separator candidates by looking for the last
byte of the record separator, and then checks whether it is an actual
match.
If a candidate is found at limit-th byte of the stream but is rejected
because it does ...
rhenium (Kazuki Yamaguchi)
11:23 AM Ruby Feature #21277 (Closed): Windows ARM support
Applied in changeset commit:git|4300f5dda986414b3ddc9957553315e6437c7f1b.
----------
[Feature #21277] Run check on Windows 11-arm
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
11:23 AM Ruby Revision 9fe613e9 (git): Reap an exited child in EnvUtil.terminate
On Windows, Process.kill raises Errno::ESRCH for a child that has exited but has not been reaped, so terminate returned a stale $? and left the child to ZombieHunter. TestIO#test_write_32bit_boundary hit this on Windows 11-arm, where the... hsbt (Hiroshi SHIBATA)
11:23 AM Ruby Revision e36d7036 (git): Expect arm64 as host_cpu on mswin
mswin takes the CPU name from MSVC, as it reports x64 rather than x86_64 on x64.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
11:23 AM Ruby Revision 4300f5dd (git): [Feature #21277] Run check on Windows 11-arm
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
11:13 AM Ruby Revision 34ae1caa (git): Change raise to assertions in test_gc.rb
peterzhu2118 (Peter Zhu)
11:11 AM Ruby Revision 99d1ece9 (git): io: preserve wide character boundaries in raw reads
Matthias Goergens
10:48 AM Ruby Revision 5feb9db0 (git): dir.c: Remove mkdir, rmdir and opendir overrides for Windows
include/ruby/win32.h and win32/dir.h have mapped them to the rb_w32_u* functions since 5b98b2ce39.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:48 AM Ruby Revision d65eccb7 (git): dir.c: Remove redundant case in has_magic
On Windows the default case already sets hasalpha for '~' because IS_WIN32 is 1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:48 AM Ruby Revision 1a367ebf (git): dir.c: Remove USE_NAME_ON_FS_BY_FNMATCH
DOSISH is defined only on _WIN32, which has used USE_NAME_ON_FS_REAL_BASENAME since 45df1c24d2, so this code is never compiled. It even passes an undeclared `basename` to do_opendir.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:11 AM Ruby Revision 6cf57e66 (git): Add noreturn attribute to never called function
nobu (Nobuyoshi Nakada)
10:11 AM Ruby Revision ec2eaf3f (git): Fix shorten-64-to-32 warnings
`size_t` may be less than `off_t` nobu (Nobuyoshi Nakada)
10:11 AM Ruby Revision 8094e4e2 (git): Don't lose consumed bytes when IO#read times out (#19053)
* io: preserve data after read timeout
* io: make timeout regression tests robust against small send buffers
A synchronous write of the whole payload blocks forever once the socket
send buffer fills (8 KiB by default on macOS and Windo...
Matthias Görgens
08:50 AM Ruby Revision ccdc278e (git): Document Windows 10 version 1809 as the minimum for mswin
Windows Server 2016 and Windows 10 Enterprise LTSB 2016 reach end of support by January 2027. Version 1809 is the oldest release still supported afterwards, as Windows Server 2019 and Windows 10 Enterprise LTSC 2019 until January 2029.
...
hsbt (Hiroshi SHIBATA)
08:50 AM Ruby Revision 7d841815 (git): mswin: Update required Windows version to Windows 10
Update the default `NTVER` so that the declarations of APIs introduced in Windows 10 are enabled. `_WIN32_WINNT` has no value for version 1809, the new minimum, so `_WIN32_WINNT_WIN10` is the closest one.
Co-Authored-By: Claude Opus 5.5...
hsbt (Hiroshi SHIBATA)
04:24 AM Ruby Revision da3e1fcb (git): Fix init_is_float bug
aadi (Aditya Anchuri)
04:16 AM Ruby Revision b5245a5d (git): Stub File.unlink without redefining it in the tempfile test
Redefining the method warns under RUBYOPT=-w, which CI uses, and the test expects nothing on stderr. Prepending a module leaves the original method in place.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:16 AM Ruby Revision 75d54670 (git): Ignore EACCES when unlinking a tempfile from the finalizer
On Windows, File.unlink raises Errno::EACCES while another handle still holds the file open. Tempfile#unlink already ignores that, but FinalizerManager#call only rescued ENOENT, so the exception escaped from the GC finalizer and was repo... hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision 047cd2fd (git): Remove the _aligned_malloc prototype for old Visual C++
malloc.h, which win32.h includes, declares it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision 6c5cfbc9 (git): regint.h: Remove the PRIdPTR fallback
It was for Visual C++ 2012 and older, which had no inttypes.h.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision f49b514c (git): win32.h: Use stdint.h for intptr_t on mswin too
The fallback definitions were for Visual C++ 2008 and older, which had no stdint.h.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision 0fb144a7 (git): Remove unused MSC_VERSION_SINCE and MSC_VERSION_BEFORE
The last use went away in cdb9893c55.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision 62e374e9 (git): Fold MSVC version checks in the attribute detection headers
Every `RBIMPL_COMPILER_SINCE(MSVC, ...)` condition here holds for `_MSC_VER` 1915, the oldest version the headers accept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:42 AM Ruby Revision c45c9c26 (git): Reject MSVC older than 1915 in the public headers
Building ruby needs `_MSC_VER` 1915 or later, but the generated config.h accepts 1910 and later for such a build, so an extension could still be compiled by 1910 through 1914.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:05 AM Ruby Revision 9f1ea3dc (git): [DOC] Harmonize truncate methods
burdettelamar (Burdette Lamar)
02:36 AM Ruby Revision be0b81e7 (git): mswin: Stop building missing/langinfo.c
Only the Cygwin branch in localeinit.c calls nl_langinfo_codeset, so on mswin the object just added an unused export to the DLL.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
02:36 AM Ruby Revision b0e813f4 (git): win32: Detect only vcruntime in rtname.cmd
MSVC 1915 or later is required and Makefile.sub rejects RT_VER below 140, so the values made for msvcrt and msvcrNN only led to that error.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
02:36 AM Ruby Revision 72237154 (git): win32: Remove the PROCESSOR_FLAG default of ARCH_FLAG
PROCESSOR_FLAG lost its only definition in cdb9893c55, so ARCH_FLAG has been empty unless given explicitly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
01:08 AM Ruby Revision b0604233 (git): [ruby/resolv] Skip TestWin32Config without the win32/resolv extension
JRuby on Windows loads its bundled `win32/resolv`, which has no `tcpip_params`, so two of these tests raised NoMethodError there.
https://github.com/ruby/resolv/commit/971a36ee72
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:54 AM Ruby Revision 5299d8d1 (git): Dump Hash AR/ST status in ObjectSpace.dump
peterzhu2118 (Peter Zhu)

09/25/2026

11:59 PM Ruby Revision c41b67d6 (git): ZJIT: Specialize caller splats with polymorphic lengths (GH-18640)
Caller splats with multiple profiled lengths currently fall back to
dynamic sends, even when each length could use SendDirect.
For opt_send_without_block, dispatch on profiled splat lengths within
each ISEQ receiver arm and specialize a...
Nozomi Hijikata
09:01 PM Ruby Revision 9a86049e (git): Fix the Win32::Resolv guard in test_win32_config.rb
`Win32::Resolve` is never defined, so these tests were not run anywhere.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:01 PM Ruby Revision e1182d11 (git): win32/resolv: Cast method functions with RUBY_METHOD_FUNC
GCC 15 in C23 mode reads `ANYARGS` as `(void)`, so the bare function pointers are rejected against Ruby headers that do not add the cast themselves, as happened with Ruby 3.1 on Windows.
https://github.com/ruby/resolv/issues/92
Co-Auth...
hsbt (Hiroshi SHIBATA)
07:17 PM Ruby Revision b49347c2 (git): [DOC] Add GC.start global option
This option defaults to `true` like all other `GC.start` options. It only has
effect for the default GC and when there are multiple running Ractors. If
there's only a single running Ractor, the option is ignored.
A global GC runs a stop...
Luke Gruber
06:53 PM Ruby Bug #22381 (Closed): MatchData assigned to $~ is incorrectly reused
Applied in changeset commit:git|ea3cd7efe1f6bab78572b31774462e891ef01243.
----------
Fix reuse of MatchData assigned to $~
$~ = m = /a/.match("a").dup
/b/ =~ "b"
p m
[Bug #22381]
jhawthorn (John Hawthorn)
06:53 PM Ruby Revision ea3cd7ef (git): Fix reuse of MatchData assigned to $~
$~ = m = /a/.match("a").dup
/b/ =~ "b"
p m
[Bug #22381]
jhawthorn (John Hawthorn)
06:53 PM Ruby Bug #22378 (Closed): `Ractor::IsolationError` in code not using Ractors
Applied in changeset commit:git|bec5e51c85ded96969fd070ac5c3908d9f544723.
----------
Fix Module/Class#dup of frozen object
This code should not raise an error:
```
@var = Class.new.freeze.dup # unfrozen copy
@var.instance_variable_set(...
Anonymous
06:53 PM Ruby Revision bec5e51c (git): Fix Module/Class#dup of frozen object
This code should not raise an error:
```
@var = Class.new.freeze.dup # unfrozen copy
@var.instance_variable_set(:@test, 123)
```
It was raising `Ractor::IsolationError` because of a bug in `rb_fields_tbl_copy`.
This patch also fixes th...
Luke Gruber
06:24 PM Ruby Feature #22277 (Closed): Make `rb_gc_register_address` Ractor-local
Applied in changeset commit:git|2ad6b99a98058ce25de2d1d536f291b93d893834.
----------
GC: scope rb_gc_register_address to the calling Ractor
The registered_globals list made every Ractor's GC scan every slot under
a shared lock. This co...
eightbitraptor (Matt V-H)
06:24 PM Ruby Revision bca1314e (git): GC: verify consistency of Ractor local registered addresses.
Now that registrations are Ractor-scoped, a store of another Ractor's
unshareable object through a registered address is a use-after-free
waiting for the owner's next GC.
This commit introduces a method to catch it in debug and ASAN bui...
eightbitraptor (Matt V-H)
06:24 PM Ruby Revision 2ad6b99a (git): GC: scope rb_gc_register_address to the calling Ractor
The registered_globals list made every Ractor's GC scan every slot under
a shared lock. This commit splits it into per-Ractor lists.
We also maintain a global registry that references every Ractor that has
ever registered so that unregi...
eightbitraptor (Matt V-H)
06:24 PM Ruby Revision 43b1e17d (git): json: reject non-shareable default sort_keys proc from non-main Ractors
JSON::State.default_sort_keys_proc is registered at extension load time
so it's owned by the main Ractor.
When we implement the registration table on each Ractor storing another
Ractor's unshareable Proc into that slot leaves a dangling...
eightbitraptor (Matt V-H)
06:24 PM Ruby Revision 3ebb1b2c (git): dir.c: keep GC-registered globals shareable or unregistered
last_cwd is set on init in the main Ractor, but Dir.pwd attempts to
store into it. When this is done on a child Ractor we violate the
invariant that the owning and registering Ractor must be the same. On a
normal build the use-after-free...
eightbitraptor (Matt V-H)
03:48 PM Ruby Revision 4ac2a34c (git): [Bug #22383] Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
45a2c95d0f7184c9cd64ddd26699af31bea8675d mistakenly rewrote
FL_TEST_RAW(orig, STR_SHARED) && !FL_TEST_RAW(orig, STR_TMPLOCK|RUBY_FL_FREEZE)
as
FL_TEST_RAW(orig, STR_SHARED | STR_TMPLOCK) == STR_TMPLOCK
requiring orig to not b...
Randy Stauner
03:45 PM Ruby Revision 53da7e16 (git): Avoid overflow in the quantifier expansion size check
Nested bounded repeats let the int product tlen * qn->lower overflow, so
the check that keeps the compiler from unrolling a large repeat could pass
for an enormous one, hanging the compile or emitting wrapped jump offsets.
Compare agains...
hsbt (Hiroshi SHIBATA)
03:45 PM Ruby Revision 6841c0a8 (git): Reject a compiled program too big for its offset type
Concatenated large repeats reach a program past INT_MAX from a few hundred
kilobytes of source, and the offsets emitted into it wrap. Cap the size
while the program is emitted, which does not depend on the length pass that
overflows alo...
hsbt (Hiroshi SHIBATA)
03:04 PM Ruby Bug #22383 (Closed): Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
Applied in changeset commit:git|57213d44ce7b1a31fc9648e9cd5eb0c4507f4a49.
----------
[Bug #22383] Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
45a2c95d0f7184c9cd64ddd26699af31bea8675d mistakenly rewrote
FL_TEST_R...
Anonymous
03:19 AM Ruby Bug #22383: Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
Sorry, confusing with [Bug #22382]. nobu (Nobuyoshi Nakada)
03:14 AM Ruby Bug #22383: Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
> With class Ractor alias join take end unless Ractor.method_defined?(:join), it reproduced on 3.3 an 3.4.
What reproduces?
I do have a few related fixes coming in another PR but this particular condition is still
else if (FL_...
rwstauner (Randy Stauner)
03:08 AM Ruby Bug #22383: Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
With `class Ractor alias join take end unless Ractor.method_defined?(:join)`, it reproduced on 3.3 an 3.4. nobu (Nobuyoshi Nakada)
02:35 AM Ruby Bug #22383: Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
4.0 Backport PR https://github.com/ruby/ruby/pull/19019 rwstauner (Randy Stauner)
02:32 AM Ruby Bug #22383: Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
PR https://github.com/ruby/ruby/pull/19018 rwstauner (Randy Stauner)
02:29 AM Ruby Bug #22383 (Closed): Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
https://github.com/ruby/ruby/commit/45a2c95d0f7184c9cd64ddd26699af31bea8675d#diff-430d86fdb6c4a558ab0f1b6648bbfae1720e8bde84f026e95a52740014752040R1914
mistakenly rewrote
FL_TEST_RAW(orig, STR_SHARED) && !FL_TEST_RAW(orig, STR_...
rwstauner (Randy Stauner)
03:03 PM Ruby Revision 57213d44 (git): [Bug #22383] Fix inverted `STR_SHARED` check in `rb_str_tmp_frozen_release`
45a2c95d0f7184c9cd64ddd26699af31bea8675d mistakenly rewrote
FL_TEST_RAW(orig, STR_SHARED) && !FL_TEST_RAW(orig, STR_TMPLOCK|RUBY_FL_FREEZE)
as
FL_TEST_RAW(orig, STR_SHARED | STR_TMPLOCK) == STR_TMPLOCK
requiring orig to not b...
Randy Stauner
11:28 AM Ruby Revision d3f0a612 (git): Fix up for wasm
`stack_maxsize` is unknown on wasm and set to 0. nobu (Nobuyoshi Nakada)
11:18 AM Ruby Revision c6ff4670 (git): Update the zjit hir tests for new GC parameter
eightbitraptor (Matt V-H)
11:18 AM Ruby Revision 6cc4ec34 (git): Add a per-Ractor GC timing example
eightbitraptor (Matt V-H)
11:18 AM Ruby Revision 60c206b6 (git): Add global scope to GC.stat
eightbitraptor (Matt V-H)
11:18 AM Ruby Revision cfced4ed (git): Fix overlapping GC CPU timing during global compaction
eightbitraptor (Matt V-H)
10:40 AM Ruby Revision 050e89ae (git): Honor the buffer size in Darwin `backtrace`
Deep native stacks can overrun the caller's buffer while reporting
a crash because the Darwin implementation ignores `size`.
nobu (Nobuyoshi Nakada)
10:40 AM Ruby Revision 90a78de8 (git): Reserve more machine stack space for ASan builds
Unoptimized ASan VM frames can exhaust the C stack before
`SystemStackError` is raised with the normal reserve.
nobu (Nobuyoshi Nakada)
08:54 AM Ruby Revision 413145a2 (git): Fix crash in Array#pack when format string modified
If the format string is modified during Array#pack (by conversion such
as to_str, to_int, etc.), it can cause an use-after-free since reading
p[-1] may be an use-after-free. We should read that byte before performing
the conversion.
The...
peterzhu2118 (Peter Zhu)
07:09 AM Ruby Misc #22275: Ruby::Box support plan for RubyGems and Bundler
I think that RubyGems / Bundler should not be loaded into Ruby::Box by default. I have shared a few of my thoughts with @tagomoris and based on that he implemented #22329.
But I'd like to go further. I think that it would be nice to h...
vo.x (Vit Ondruch)
06:59 AM Ruby Revision 2a96d32a (git): prism: Use _BitScanForward64 only on 64-bit MSVC
_BitScanForward64 is not available for 32-bit x86, so the i386-mswin32 build failed at prism.c. Use the portable fallback there, as ntz_int64 in internal/bits.h does.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision 612e44ed (git): Remove non-Windows spawnv helpers in process.c
USE_SPAWNV needs spawnv without a working fork, which only Windows has since OS/2 support was removed. The non-Windows proc_spawn_cmd_internal and proc_spawn_sh were never compiled, and the Windows proc_spawn_cmd_internal macro was unuse... hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision b00f6b96 (git): Remove HAVE_SPAWNVE code in pipe_open
Neither configure.ac nor win32/Makefile.sub defines HAVE_SPAWNVE.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision 7e424d20 (git): Remove the Windows branch in nogvl_fdatasync
HAVE_FDATASYNC is never defined on Windows. win32/Makefile.sub does not define it and the mingw CRT has no fdatasync, so the branch has never been compiled.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision 30a39edb (git): Remove the __BOW__ check in io.c
__BOW__ (BSD on Windows) appears nowhere else in the tree.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision 949ae601 (git): Include <io.h> only for Cygwin in io.c
On Windows, ruby/win32.h already includes it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:21 AM Ruby Revision d4bb55c0 (git): Drop _WIN32 conditions covered by HAVE_* macros
win32/Makefile.sub and the mingw part of configure.ac already define HAVE_FCNTL_H, HAVE_SPAWNV and HAVE_TIMES, and leave HAVE_SYS_IOCTL_H undefined.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
06:15 AM Ruby Revision cc07aad3 (git): auto_review_pr.rb: Stop redirecting Onigmo changes upstream
Regexp fixes are merged into ruby/ruby directly and the copies have diverged, so asking contributors to file them to k-takata/Onigmo only misleads them.
https://github.com/ruby/ruby/pull/19026
Co-Authored-By: Claude Opus 5.5 <noreply@a...
hsbt (Hiroshi SHIBATA)
05:34 AM Ruby Revision b3343402 (git): [ruby/rubygems] Keep credentials on redirects only within the same origin
The Bundler downloader, Gem::RemoteFetcher and the compact index fetcher re-applied the source's userinfo whenever a redirect stayed on the same host, even when it moved to another port or scheme. RFC 9110 defines the protection space of... hsbt (Hiroshi SHIBATA)
05:21 AM Ruby Bug #22384: Regexp compile error in the 2nd+ branch of a top-level alternation leaks the parse tree (regression from #13332, Ruby 4.0)
Fix and regression test: https://github.com/ruby/ruby/pull/19026. Verified on a build of v4.0.7 with the patch: Regexp.new("a|b(c") rescue nil goes from 134 B leaked per compile to 0, and 2M calls of /(?:a|b)c(d)/.to_s from +250 MB RSS t... sethuarun (Sethupathi Arunachalam)
04:39 AM Ruby Bug #22384 (Open): Regexp compile error in the 2nd+ branch of a top-level alternation leaks the parse tree (regression from #13332, Ruby 4.0)
**Affects:** ruby 4.0.6 and 4.0.7 (official docker images and a jemalloc-linked build), master (commit still present). **Not affected:** 3.4.6.
**Repro (plain Ruby, no extensions):**
```ruby
def rss_kb = File.read('/proc/self/status...
sethuarun (Sethupathi Arunachalam)
04:40 AM Ruby Revision 7d51ed47 (git): Etc.uname: Remove Win32s and Win9x branches
GetVersionExW always reports VER_PLATFORM_WIN32_NT, since Windows 9x support had been dropped in 8a02eed723 before Etc.uname was implemented on Windows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:40 AM Ruby Revision 640a8b9c (git): Etc.uname: Return "ARM64" as the machine on Windows ARM64
GetSystemInfo reports PROCESSOR_ARCHITECTURE_ARM64 there, which fell through to "unknown".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:36 AM Ruby Bug #22382: IO#write of a shareable String from multiple Ractors causes use-after-free
Thank you for this bug report. I have a [fix here](https://github.com/ruby/ruby/pull/19023). peterzhu2118 (Peter Zhu)
04:36 AM Ruby Revision 0e2dad24 (git): mswin: Reject MSVC older than 1915 at configure time
Otherwise configure succeeds and the same floor in Makefile.sub stops the first nmake.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:36 AM Ruby Revision 14fd99e1 (git): Document Visual Studio 2017 version 15.8 as the minimum for mswin
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
04:36 AM Ruby Revision d0711718 (git): mswin: Reject MSVC older than 1915 at the first version check
Since 87435fe232 the build has needed the conforming preprocessor, which MSVC gained in 1915, so 1900 through 1914 passed this check and failed later with an unrelated message.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:29 AM Ruby Revision cf35145f (git): Reject a compiled program too big for its offset type
Concatenated large repeats reach a program past INT_MAX from a few hundred
kilobytes of source, and the offsets emitted into it wrap. Cap the size
while the program is emitted, which does not depend on the length pass that
overflows alo...
hsbt (Hiroshi SHIBATA)
04:29 AM Ruby Revision 7cfe8dc8 (git): Avoid overflow in the quantifier expansion size check
Nested bounded repeats let the int product tlen * qn->lower overflow, so
the check that keeps the compiler from unrolling a large repeat could pass
for an enormous one, hanging the compile or emitting wrapped jump offsets.
Compare agains...
hsbt (Hiroshi SHIBATA)
04:14 AM Ruby Bug #22092: `Array#sum` takes slow path, does not perform compensated summation of Float elements when init argument is a Float
I believe there is a bug in the fix, when a block with side effects is passed in. I think this should fix it https://github.com/ruby/ruby/pull/19022 aadi (Aditya Anchuri)
03:09 AM Ruby Revision be6637f5 (git): Fix flaky TestYJIT#test_max_compile_time
Compiling the setter call could spend the whole 1ms budget on a busy CI runner, which stopped compilation before the next eval and failed with :not_compiled2. Check that compilation continues under a generous budget first, and only then ... hsbt (Hiroshi SHIBATA)
02:33 AM Ruby Revision 5d106710 (git): Bump taiki-e/install-action
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.87.17 to 2.87.18
- [Release notes](https://github.com/taiki-e...
dependabot[bot]
01:51 AM Ruby Revision 2d143179 (git): [ruby/rubygems] Stop pre-unlocking gems named by metadata overrides
The lockfile does not record overrides, so unlocking for a required_ruby_version or required_rubygems_version override happened on every run, which rejected every frozen install and updated the named gem on each plain `bundle install`. I... hsbt (Hiroshi SHIBATA)
01:51 AM Ruby Revision bf17a72f (git): [ruby/rubygems] Apply version overrides when validating locked dependencies
A transitive override outside the parent's requirement made check_lockfile report the parent as having invalid dependencies, so frozen installs of such a lockfile always failed.
https://github.com/ruby/rubygems/issues/9907
https://gith...
hsbt (Hiroshi SHIBATA)
01:51 AM Ruby Revision 00227234 (git): [ruby/rubygems] Keep transitive-only override targets locked when the lockfile satisfies them
converge_overrides_outside_dependencies marked every transitive-only version override as a changed dependency, so frozen installs always failed and a plain `bundle install` re-resolved the target as if it had been updated. Compare the lo... hsbt (Hiroshi SHIBATA)
01:34 AM Ruby Revision fde7c53c (git): [ruby/rubygems] Stop validating an unknown extension from writing a build log
The specification policy looks extensions up through builder_for, so gem build with an extension no builder handles went through build_error. It crashed with a NameError because fileutils was not loaded yet, or wrote gem_make.out into a ... hsbt (Hiroshi SHIBATA)
01:34 AM Ruby Revision ccb52cb9 (git): [ruby/rubygems] Remove the build_info file on uninstall
A reinstall of the same version without build arguments picked up the stale file, so the arguments of the uninstalled copy came back through Gem::Specification#build_args and were reused by gem pristine.
https://github.com/ruby/rubygems...
hsbt (Hiroshi SHIBATA)
12:50 AM Ruby Revision da155f30 (git): [ruby/rubygems] Identify ML-DSA by OID and gate tests by capability
RubyGems currently assumes an SSL library either supports every ML-DSA
operation or none of them. It also identifies ML-DSA keys using
library-specific display names.
Identify ML-DSA keys using standard SubjectPublicKeyInfo OIDs. Separa...
Justin Smith
12:07 AM Ruby Revision 1000b68f (git): Fold USE_NTFS_ADS into USE_NTFS
Since a094c99b74 the macro only switches isADS, and every use of isADS is inside `#if USE_NTFS`, so its non-NTFS definition was never referenced.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)

09/24/2026

11:59 PM Ruby Revision e684c7ba (git): [DOC] Harmonize symlink methods
burdettelamar (Burdette Lamar)
11:58 PM Ruby Revision cb29d480 (git): [DOC] Harmonize symlink? methods
burdettelamar (Burdette Lamar)
11:57 PM Ruby Bug #22382 (Open): IO#write of a shareable String from multiple Ractors causes use-after-free
When several Ractors `IO#write` the same shareable, heap-allocated (non-embedded) String at the same moment, Ruby frees the String's buffer while the String is still alive. A later GC sweep double-frees it and aborts.
**Reproduction**...
jamescook83 (James Cook)
11:55 PM Ruby Revision 36df189c (git): Fix rbimpl_atomic_size_fetch_add on 32-bit Windows
It used InterlockedExchangeAdd64 on a 4-byte size_t, so the access also covered the following 4 bytes, which is the `tdata_unsafe_free_published` pointer for the caller in gc/default/default.c. Go through rb_atomic_t like the other size_... hsbt (Hiroshi SHIBATA)
11:46 PM Ruby Revision bfae855c (git): [ruby/zlib] Check that Zlib::OS_CODE is OS_WIN32 on Windows
test_os_code only compared the written os_code with Zlib::OS_CODE itself, so it could not catch OS_CODE falling back to OS_UNIX.
https://github.com/ruby/zlib/commit/104cbd525f
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
11:46 PM Ruby Revision 05709757 (git): [ruby/zlib] Let create_header pick up OS_CODE
mkmf's create_header ignores $defs entries that do not start with -D, so the leading space dropped OS_CODE from extconf.h. The in-tree build of ruby/ruby then fell back to OS_UNIX in zlib.c, and Zlib::OS_CODE was 3 on Windows.
https://g...
hsbt (Hiroshi SHIBATA)
11:34 PM Ruby Revision 5cd1287f (git): Prefer __has_include over HAVE_STDCKDINT_H for <stdckdint.h>
HAVE_STDCKDINT_H records what configure's compiler saw when ruby was
built. __has_include asks the compiler that is compiling the header
right now. When the two compilers are the same they always agree, so
checking __has_include first ...
Harald Nordgren
11:20 PM Ruby Revision 5cfcd453 (git): mswin: Stop exporting strcasecmp and strncasecmp
They were forwarded to `msvcrt.stricmp` and `msvcrt.strnicmp`, which msvcrt.dll does not export, so they could never be resolved. Extensions get `_stricmp` and `_strnicmp` through the macros in include/ruby/win32.h.
Co-Authored-By: Clau...
hsbt (Hiroshi SHIBATA)
11:06 PM Ruby Revision 21017bde (git): Fix race condition crash in IO::Buffer#set_string
For strings larger than or equal to IO_BUFFER_BLOCKING_SIZE (which is 1KB),
IO::Buffer#set_string will perform the memmove without GVL. In this time,
another thread can resize the IO::Buffer object. In that case, the buffer
may be freed ...
peterzhu2118 (Peter Zhu)
09:54 PM Ruby Feature #22236 (Closed): New API for adjustable JIT warmup
Applied in changeset commit:git|c29739cb3ef483c215b0c13d30c96cc21b0f680b.
----------
Implement RubyVM::YJIT.max_compile_time_ns
[Feature #22236]
Allows to give a time budget to YJIT. When YJIT goes over the budget
it pauses compilatio...
byroot (Jean Boussier)
09:54 PM Ruby Revision c29739cb (git): Implement RubyVM::YJIT.max_compile_time_ns
[Feature #22236]
Allows to give a time budget to YJIT. When YJIT goes over the budget
it pauses compilation until the budget is raised.
It is best effort, YJIT may go over, or have no choice but to compile
in some cases, but the goal i...
byroot (Jean Boussier)
08:46 PM Ruby Revision 03321869 (git): ZJIT: Don't allocate strings for backend labels (#19004)
There is no sense in eagerly allocating a string; we either use a static
string ref or label a block by some combination of (HIR,LIR) pair. Just
store the information instead of allocating on the heap.
This is probably a very minor comp...
Max Bernstein
08:05 PM Ruby Bug #22381 (Closed): MatchData assigned to $~ is incorrectly reused
```ruby
m = /a/.match("a").dup # dup a MatchData (has no "busy" flag set)
$~ = m # assign to $~
/b/ =~ "b" # perform a match that sets $~
p m
# "b" on Ruby 4.0 (and 1.8-2.7, incorrect)
# "a" on Ruby 3.0-3.4 (correct)
```
This i...
jhawthorn (John Hawthorn)
06:19 PM Ruby Revision 1533c109 (git): Preserve compare_by_identity in some Set operations
Backport of f069efc3f69a89188bab4ac70c690aecce59023b
Fixes [Bug #22174]
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Gil Desmarais
06:01 PM Ruby Revision ff03ecf3 (git): ZJIT: Print `PatchPoint` reference to `Insn::Snapshot` when printing snapshots
So both the definition and the usage are shown. Note that this
is only when, say, `--zjit-dump-hir=all`, where both ends are present.
alanwu (Alan Wu)
05:54 PM Ruby Revision 24be314b (git): Enable incremental marking when the process has > 1 objspace
Previously, major GC incremental marking was disabled (even on the main Ractor)
when more than 1 Ractor was running. By changing the WB implementation, we now
have it back.
Luke Gruber
05:17 PM Ruby Revision 4133daa1 (git): Ractor: wake receiver waiters inside the send critical section
ractor_send_basket used to enqueue the basket under the receiver's lock,
release it, and then re-take the same lock inside ractor_wakeup_all to wake
the receiver. Every sender to a Ractor contends on that one lock, so the
second acquisit...
Yaroslav Markin
04:59 PM Ruby Revision f9b763af (git): ZJIT: Reduce the amount of memory required for profiles (#19000)
`resize` might over-reserve space speculatively but we know we're only
going to see a certain number of operands at that opcode. So don't
over-reserve; allocate a vec of the exact size we want.
For a run of lobsters, takes `zjit_alloc_b...
Max Bernstein
04:58 PM Ruby Revision 10cc9824 (git): ZJIT: Remove `chase_insn` in `fold_constants` for `StringEqual` (#18998)
Remove `chase_insn` in `fold_constants` for `StringEqual`
`left` and `right` are already canonical operand IDs when `fold_constants`
checks them.
`canonicalize` runs immediately before `fold_constants`.It updates
operands when the opti...
Rafael Mendonça França
02:29 PM Ruby Revision 3676b957 (git): ZJIT: Add line number mappings in Comment (#18752)
Add line number comments to HIR printouts if enabled. Trying this out. Might help for something like Compiler Explorer. Also helps for debugging.
Requires `--zjit-dump-hir-map` to avoid messing with the default printout.
```
plum% cat ...
Max Bernstein
02:22 PM Ruby Revision 645a0718 (git): Increase sleep in fork bootstrap test
There have been occasional failures on the OpenBSD CI machine in
this bootstrap test. There is a race condition in the test that
you can theoretically hit on a very slow machine, and the OpenBSD
CI machine is running in qemu software emu...
jeremyevans (Jeremy Evans)
02:22 PM Ruby Revision fd657df8 (git): Skip test_autoload_fork on OpenBSD RubyCI
This test is flaky on OpenBSD RubyCI, probably due to the fact that
the OpenBSD RubyCI machine is a software emulated virtual machine
running on another virtual machine. The test runs fine on OpenBSD
in general, and seems to pass the maj...
jeremyevans (Jeremy Evans)
12:58 PM Ruby Revision ec9d3e21 (git): Remove the stale test
nobu (Nobuyoshi Nakada)
12:51 PM Ruby Revision 108a92ac (git): Remove repeated test runs from macOS CI
Drop `--repeat-count=2` and its dedicated settings because parallel
runs add CI time without testing state carried across repetitions.
nobu (Nobuyoshi Nakada)
12:51 PM Ruby Revision 9cbb4e67 (git): Disable repeat counts for parallel tests
Ignore `--repeat-count` during parallel tests because fresh workers
cannot expose state carried over between repetitions.
nobu (Nobuyoshi Nakada)
12:51 PM Ruby Revision 28ae8099 (git): Preserve jobserver limits across repeated test runs
Keep the jobserver connection until all repetitions finish so that
later runs do not launch up to 256 workers without token limits.
nobu (Nobuyoshi Nakada)
12:51 PM Ruby Revision 1f11ffae (git): Run GC in test workers before running suites
Run `GC.start` in the process executing tests because collecting the
parent heap does not reclaim objects in parallel workers.
nobu (Nobuyoshi Nakada)
12:01 PM Ruby Revision 0c20a6af (git): [DOC] Harmonize size? methods
burdettelamar (Burdette Lamar)
11:56 AM Ruby Revision 42066076 (git): [DOC] Harmonize socket? methods (#18982)
burdettelamar (Burdette Lamar)
11:44 AM Ruby Revision bf1a4ae0 (git): [DOC] Harmonize stat methods
burdettelamar (Burdette Lamar)
11:43 AM Ruby Revision 49cb90a6 (git): [DOC] Harmonize path split methods
burdettelamar (Burdette Lamar)
11:33 AM Ruby Feature #22304 (Closed): Add rb_warn_to_remove_at() for deprecation warnings shown by default
Applied in changeset commit:git|611bb146b08978aacb26bf4a4e8390e699628350.
----------
[Feature #22304] Add rb_warn_to_remove_at and rb_warn_scheduled_deprecation
rb_warn_deprecated_to_remove_at warns only when Warning[:deprecated]
is en...
shugo (Shugo Maeda)
11:33 AM Ruby Revision 611bb146 (git): [Feature #22304] Add rb_warn_to_remove_at and rb_warn_scheduled_deprecation
rb_warn_deprecated_to_remove_at warns only when Warning[:deprecated]
is enabled, so a deprecation scheduled to warn by default in a later
version needed a hand-written rb_warn and a separate commit to switch.
rb_warn_to_remove_at emits ...
shugo (Shugo Maeda)
11:31 AM Ruby Revision 6a30bcbf (git): marshal.c: embed load_arg.partial_objects
byroot (Jean Boussier)
11:31 AM Ruby Revision 02bfa784 (git): marshal.c: embed `symbols` in load and dump args
byroot (Jean Boussier)
11:31 AM Ruby Revision 177404c6 (git): marshal.c: embed `data` in load and dump args
byroot (Jean Boussier)
11:31 AM Ruby Revision fb4dc15d (git): marshal.c: embed userdefs
byroot (Jean Boussier)
11:31 AM Ruby Revision e9171824 (git): marshal.c: embed dump_arg.encodings
byroot (Jean Boussier)
11:31 AM Ruby Revision 5a395d2a (git): marshal.c: embed `compat_tbl` in load and dump args
byroot (Jean Boussier)
11:19 AM Ruby Revision ffa53140 (git): [DOC] Harmonize sticky? methods (#18987)
burdettelamar (Burdette Lamar)
11:17 AM Ruby Revision a094c99b (git): Remove unreachable NTFS code from rb_file_expand_path_internal
rb_file_expand_path_internal is compiled only without _WIN32, where USE_NTFS has been 0 since 7eb8d74f34 stopped enabling it on Cygwin [Bug #13008]. Forcing it on no longer even compiles, as the block still calls strrdirsep with three ar... hsbt (Hiroshi SHIBATA)
11:17 AM Ruby Revision 36c9a545 (git): Pass mb_enc to ntfs_tail as to chompdirsep
ntfs_tail was the only path helper still deriving it from enc on its own after 6fb50434e3 made the callers decide.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
10:22 AM Ruby Revision 22d22128 (git): Clear temporary containers in `Enumerable#uniq`
Clear temporary containers after extracting the result to avoid
retaining their contents through a captured block.
nobu (Nobuyoshi Nakada)
10:22 AM Ruby Revision 34d2105d (git): Fix escaped blocks in `Enumerable#uniq`
Keep the state for block-based `Enumerable#uniq` alive after it returns,
as `each` can retain and later invoke the internal block, making the
stack-allocated memo introduced in 29c669bb568 invalid.
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Feature #17548 (Closed): Need simple way to include symlink directories in Dir.glob
Applied in changeset commit:git|ea2836f7ec905e4963b49ffdc550cdf3e82ad8c9.
----------
[Feature #17548] Allow `Dir.glob` to follow symlinks with `***`
Allow recursive matching through directory symlinks while stopping
at links to ancesto...
nobu (Nobuyoshi Nakada)
09:48 AM Ruby Revision ea2836f7 (git): [Feature #17548] Allow `Dir.glob` to follow symlinks with `***`
Allow recursive matching through directory symlinks while stopping
at links to ancestor directories to avoid cycles.
nobu (Nobuyoshi Nakada)
08:55 AM Ruby Misc #22275: Ruby::Box support plan for RubyGems and Bundler
I merged the following four, since they fix plain bugs such as crashes and need no design decision.
* https://github.com/ruby/ruby/pull/18704: `alias $new $old` in a box created a separate variable.
* https://github.com/ruby/ruby/pull/1...
hsbt (Hiroshi SHIBATA)
08:50 AM Ruby Bug #22380 (Closed): Ruby::Box: a GC while copying a class into a box crashes
hsbt (Hiroshi SHIBATA)
08:50 AM Ruby Bug #22380 (Closed): Ruby::Box: a GC while copying a class into a box crashes
This is a backport request for the following crash:
```
$ RUBY_BOX=1 ruby --disable-gems -W:no-experimental -e 'GC.stress = true; module Enumerable; def m; end; end'
-e:1: [BUG] try to mark T_NONE object (obj: 0x00000001042efe28 T_N...
hsbt (Hiroshi SHIBATA)
08:46 AM Ruby Revision 7d4b5ed5 (git): Fix use-after-free in Marshal.dump
When the string buffer reaches BUFSIZ (8192 bytes), Marshal.dump will call
the write method on the IO object. This IO object can run arbitrary Ruby
code. If the object is a string, it writes the length of the string followed
by the bytes...
peterzhu2118 (Peter Zhu)
08:19 AM Ruby Revision cc32a303 (git): [ruby/error_highlight] Use Thread::Backtrace::Location#syntax_tree when available
https://github.com/ruby/error_highlight/commit/7755b9bff1 Eregon (Benoit Daloze)
08:14 AM Ruby Revision 2e313000 (git): Run trace_var hooks for assignments in the box gvar table
Under RUBY_BOX=1 an assignment in a user box, the main box included, only
updates the box-local table and never reaches the global entry, so hooks
registered with trace_var never run.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:39 AM Ruby Revision 5edccc38 (git): Win32: Drop `command.com` support
nobu (Nobuyoshi Nakada)
07:39 AM Ruby Revision c02373fb (git): win32: Now `mklink` is run through cmd.exe\n\nIt is included at 213b1add1ff300be0e375b8c792c9b0eb9f53981.
nobu (Nobuyoshi Nakada)
07:29 AM Ruby Revision 18b6bfdb (git): Use Kernel without test/unit in the classext GC stress test
The Enumerable version did not crash an unfixed build on Linux. Kernel
does on both Linux and macOS, but only while nothing in the main box has
written to it yet, and loading test/unit already has. So run the code
through assert_in_out...
hsbt (Hiroshi SHIBATA)
07:29 AM Ruby Revision 44fff96b (git): Attach a box classext to its class before filling it in
rb_class_duplicate_classext builds the whole copy first and the caller only
then puts it in the class's table, so a GC in the middle collects the tables
it has made and marking the class afterwards walks into a freed object. Put
the cla...
hsbt (Hiroshi SHIBATA)
07:04 AM Ruby Revision f7839b52 (git): Look up aliased globals in defined? by the shared ID in a box
rb_gvar_set and rb_gvar_get key the box table by var->id, so defined? on an aliased name looked for a key that is never written and returned nil.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
07:04 AM Ruby Revision ac0debb1 (git): Fix global variable aliases in a box
Under RUBY_BOX=1 the box-local gvar table is keyed by the name used for
access, so `alias $b $a` gives the two names separate slots and they
stop being synonyms. Key it by the ID the shared rb_global_variable
was created with instead.
...
hsbt (Hiroshi SHIBATA)
06:58 AM Ruby Feature #22379 (Open): Remove prism mismatch warning from `#syntax_tree`
#21795 added `#syntax_tree` for a few objects. Currently it is implemented in a way that uses the prism gem, using node_id. Because it is theoretically possible that node_ids from the internal cruby version of prism don't match with the ... Earlopain (Earlopain _)
06:25 AM Ruby Revision 85fb0e52 (git): [ruby/openssl] ssl: clear error queue before raising SystemCallError
Clear the OpenSSL error queue when an OpenSSL function fails with
SSL_ERROR_SYSCALL. ruby/openssl methods are expected not to leave stale
entries in the error queue.
While this no longer appears to happen with OpenSSL >= 3.0, LibreSSL
a...
rhenium (Kazuki Yamaguchi)
06:07 AM Ruby Revision a6505b6b (git): [ruby/rubygems] Remove unused rb_data_type_struct_extended? spec helper
It was only used to skip the Rust `cargo test` example while magnus could not build against Ruby master, and that skip went away with the magnus 0.9 template update.
https://github.com/ruby/rubygems/pull/9904
https://github.com/ruby/ru...
hsbt (Hiroshi SHIBATA)
06:02 AM Ruby Bug #22174: Set operations (&, ^, collect!, flatten, classify, divide) do not preserve compare_by_identity
4.0 backport PR: https://github.com/ruby/ruby/pull/18992 jeremyevans0 (Jeremy Evans)
03:04 AM Ruby Bug #22174 (Closed): Set operations (&, ^, collect!, flatten, classify, divide) do not preserve compare_by_identity
Fixed in commit:f069efc3f69a89188bab4ac70c690aecce59023b jeremyevans0 (Jeremy Evans)
05:27 AM Ruby Revision 5002cd04 (git): Cover the other callers that reach the same scan
File.expand_path walks past the root through its own call site, and
Pathname#sub_ext skips the length check File.extname does first, so both
reach the backward scan by routes the extname test does not exercise.
hsbt (Hiroshi SHIBATA)
05:27 AM Ruby Revision 323f4251 (git): Fix out-of-bounds read in strrdirsep for all-separator paths
The fast path added in 11d29d32d2 skips trailing separators without a
lower bound, so a path made only of separators walks the cursor past the
start of the buffer and keeps reading until it meets a byte that is not
a separator. The retur...
hsbt (Hiroshi SHIBATA)
05:04 AM Ruby Revision 50e2da17 (git): remove unnecessary Inline keyword
Oddly, when building with msvc (19.44), the linking fails only while disabling optimization (using the /Od option).
```
linking miniruby.exe
Creating library miniruby.lib and object miniruby.exp
set.obj : error LNK2019: unresolved ext...
YO4 (Yoshinao Muramatsu)
04:48 AM Ruby Revision a3c583af (git): [ruby/rubygems] update magnus version in rust extension gem template
https://github.com/ruby/rubygems/commit/666723ae10 Mat Sadler
03:33 AM Ruby Revision 3b2dd877 (git): win32: Fix the size of extended fd_set on x64
The size assumed that `fd_array` follows a 4-byte `fd_count`, but on x64 SOCKET is 8 bytes and `fd_array` starts at offset 8. Filling the last slot of a set grown to 128, 192, ... sockets wrote 4 bytes past the allocation.
Co-Authored-B...
hsbt (Hiroshi SHIBATA)
03:33 AM Ruby Revision b96ef541 (git): Use of explicit parentheses
Apply suggestion from @nobu
Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
YO4 (Yoshinao Muramatsu)
03:33 AM Ruby Revision 73481d73 (git): mswin: enable flexible array support for msvc
msvc supports flexible array as it's language extensions.
The /Za msvc compiler option disables this and other extensions, but it is not necessary to consider it.
The Windows SDK headers contain anonymous unions/structs, and using /Za ma...
YO4 (Yoshinao Muramatsu)
03:33 AM Ruby Revision 98e99961 (git): mswin: avoid using a bitfield basen on enum type
Using the option (one of -std:[c11|c17|clatest]) to enable standard C support in msvc causes the following error:
[BUG] vm_call_method: unsupported method type (-7)
Simply disable it.
YO4 (Yoshinao Muramatsu)
03:22 AM Ruby Revision 354f4829 (git): Fix wrong review comment when modifying `prism_compile.c`
It should delete `ruby/prism` now Earlopain (Earlopain _)
03:01 AM Ruby Revision f069efc3 (git): Preserve compare_by_identity in some Set operations
Adjust the specs to handle the backwards compatibility breakage.
While we will backport this to Ruby 4.0, to avoid temporary
breakage, leave Ruby 4.0 behavior unspecified until the fixes
are backported to it.
Co-authored-by: Jeremy Evan...
Gil Desmarais
02:30 AM Ruby Revision f55f1957 (git): Bump ruby/setup-ruby in the github-actions group across 1 directory
Bumps the github-actions group with 1 update in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby).
Updates `ruby/setup-ruby` from 1.324.0 to 1.325.0
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- ...
dependabot[bot]
01:04 AM Ruby Bug #22339 (Closed): Ruby::Box: crash / hang at VM shutdown with RUBY_FREE_AT_EXIT=1
Applied in changeset commit:git|4617d60fe4b5c18e7350d37b2f2c4508c62df708.
----------
[Bug #22339] Skip classes already freed while freeing a box
`RUBY_FREE_AT_EXIT=1` frees every object in an arbitrary order, so a
class a box refers to...
hsbt (Hiroshi SHIBATA)
12:22 AM Ruby Bug #22339: Ruby::Box: crash / hang at VM shutdown with RUBY_FREE_AT_EXIT=1
I was already aware of this, and https://github.com/ruby/ruby/pull/18710 fixes it by skipping classes that were already freed when a box is freed.
The ASAN double free in the description comes from `ruby_4_0` and has a separate cause. I...
hsbt (Hiroshi SHIBATA)
01:04 AM Ruby Revision 4617d60f (git): [Bug #22339] Skip classes already freed while freeing a box
`RUBY_FREE_AT_EXIT=1` frees every object in an arbitrary order, so a
class a box refers to can go before the box itself, and freeing a class
already frees its classext for that box. The box then reached rb_bug
with a T_NONE object, and ...
hsbt (Hiroshi SHIBATA)
12:09 AM Ruby Revision 1c91d9bc (git): ZJIT: Exit with the block arg on the stack from SendDirect args (#18983)
k0kubun (Takashi Kokubun)
12:06 AM Ruby Revision 634de041 (git): [ruby/strscan] Don't match from the middle of a character
(https://github.com/ruby/strscan/pull/219)
`#pos=` accepts an arbitrary byte offset, so the scan position can fall
in the middle of a multi-byte character such as UTF-16BE. Matching from
there made Onigmo read a whole character starting...
Sutou Kouhei

09/23/2026

10:30 PM Ruby Revision d7bd382a (git): ZJIT: Inline String#to_sym to StringIntern (#18981)
Closes https://github.com/Shopify/ruby/issues/1061.
Also add a test to make sure `String#intern` generates the same HIR.
### Benchmarks
I had AI create 4 new microbenchmarks for this change and also run `protoboeuf-encode`.
They look...
Rafael Mendonça França
10:29 PM Ruby Revision 3ebfbfce (git): ZJIT: Don't publish ec->cfp before a direct block call's entry (#18979)
k0kubun (Takashi Kokubun)
10:05 PM Ruby Revision 882e54f4 (git): ZJIT: Treat `getlocal` and `setlocal` uniformly with `*_WC_*` variants
Previously, `setlocal level=0` did not set the local in the frame state
during HIR build, unlike `setlocal_WC_0`. `getlocal` and `getlocal_WC_0`
had the same issue.
I don't know if it's possible to trigger an ZJIT issue with default
ise...
alanwu (Alan Wu)
10:05 PM Ruby Revision a8bc3cf5 (git): ZJIT: Add test_setlocal_getlocal_no_operands_unification
alanwu (Alan Wu)
10:03 PM Ruby Revision 68bc899b (git): Sync prism
There were some difficulties after https://github.com/ruby/prism/pull/4223 was merged because
the excludes were out of sync.
Earlopain (Earlopain _)
09:56 PM Ruby Revision 2ea36fd6 (git): ZJIT: Specialize sends with a Proc block arg into SendDirect (GH-18180)
Guard the block arg of `foo(&blk)` when profiling shows it is exactly
a Proc, and pass it directly as the callee frame's block handler
instead of falling back to a dynamic send.
Daichi Kamiyama
08:36 PM Ruby Revision 9635fc03 (git): Don't allow writing to locals in cexpr (#18873)
The JIT optimizer sees an `invokebuiltin` and would like to assume that calling it does not write back to the frame. A `Primitive` should never write to the frame by taking a pointer to a local, so this PR removes that functionality.
Pa...
Max Bernstein
07:50 PM Ruby Revision 2aeeb96c (git): ZJIT: Avoid calling rb_yarv_str_eql_internal with non-String objects (#18971)
k0kubun (Takashi Kokubun)
06:40 PM Ruby Revision d8177d64 (git): ZJIT: Move string encoding flags loading to HIR (#18894)
Closes https://github.com/Shopify/ruby/issues/1051
The LIR generated without stats is the same, but now the `LoadField` can be deduped.
Same as #18251 but without moving the `xor` to the HIR.
Generate HIR is now:
```
v31:CU...
Rafael Mendonça França
06:29 PM Ruby Revision 15dd95cd (git): auto_request_review.yml: Sync "jit" label targets (#18895)
k0kubun (Takashi Kokubun)
06:24 PM Ruby Bug #22335: Stack corruption with >31 keyword args and refined Integer#==
> Not an area of ruby I'm very familiar with, but I think perhaps we should also be extending sp in vm_callee_setup_arg and vm_call_iseq_setup_kwparm_kwarg?
These don't extend SP because they're fast paths that try to do minimal work...
alanwu (Alan Wu)
04:32 AM Ruby Bug #22335: Stack corruption with >31 keyword args and refined Integer#==
ruby_3_4 commit:41e214d7100100a43c469e2628403d6916d1f0f8 merged revision(s) commit:d87ffb271a80fb108de3465d12ada829f3c130af. nagachika (Tomoyuki Chikanaga)
04:47 PM Ruby Revision d74c656b (git): Document Range attributes begin and end
etienne (Étienne Barrié)
12:36 PM Ruby Revision 74856fbf (git): Use identity sets to track unspecified keyword arguments
Keyword tracking only needs membership, so replace identity hashes
with identity sets to avoid storing unused values. Add `rb_set_p`
for the type assertion in `vm_check_keyword`.
Add benchmarks for 31, 32 and 128 keyword parameters wit...
nobu (Nobuyoshi Nakada)
11:16 AM Ruby Bug #22378 (Closed): `Ractor::IsolationError` in code not using Ractors
```rb
# Reduced from the `httpx` gem
@var = Class.new.freeze.dup
@var.instance_variable_set(:@test, 123)
```
I expect this code to succeed. dup returns an unfrozen copy, so I should be able to set instance variables on it. However...
Earlopain (Earlopain _)
10:12 AM Ruby Revision 94285c5c (git): [DOC] `Encoding.locale_charmap` never returns nil (#18943)
ksss (Yuki Kurihara)
10:00 AM Ruby Revision 4a71c493 (git): [ruby/mmtk] Bump to Rust 2024 edition
https://github.com/ruby/mmtk/commit/2801d95aa4 peterzhu2118 (Peter Zhu)
09:17 AM Ruby Revision 420a1dee (git): [DOC] Add no argument example to `module_function`'s doc (#18962)
st0012 (Stan Lo)
08:20 AM Ruby Bug #22254: [Prism] Clang UBSan reports NULL/0 memcpy while serializing empty strings
Thank you very much for this. yqtian (Yongqiang Tian)
07:45 AM Ruby Bug #22254 (Closed): [Prism] Clang UBSan reports NULL/0 memcpy while serializing empty strings
Fixed by https://github.com/ruby/ruby/commit/8cdc7b59571dd5ea4fc08638e88255d3f43d2e60 Earlopain (Earlopain _)
07:42 AM Ruby Revision 8cdc7b59 (git): [ruby/prism] [Fix https://github.com/ruby/prism/pull/22254] Put real
storage behind `PM_STRING_EMPTY`
(https://github.com/ruby/prism/pull/4228)
Some places memcpy the source, and NULL there is undefined behaviour.
Fixes https://bugs.ruby-lang.org/issues/22254
https://github.com/ruby/prism/commit/d0b36c...
Earlopain (Earlopain _)
05:53 AM Ruby Revision 852b2434 (git): Fix use-after-free in String#unpack
If the source string is modified in the block of String#unpack, it can
cause an use-after-free. For example, the following script crashes:
fmt = "A" * 1_000_000
str = "C" * 1_000_000
str.unpack(fmt) { fmt.clear }
peterzhu2118 (Peter Zhu)
05:36 AM Ruby Bug #22377 (Closed): compile.c: `getlocal` not turned into `getlocal_WC_0`
Applied in changeset commit:git|0fab30f723810af1608d2162e2aef32b44a1ee3a.
----------
compile.c: ensure swapped element isn't skipped
[Bug #22377]
When we statically resolve a `swap` we need to make sure the element
we reordered will r...
byroot (Jean Boussier)
04:10 AM Ruby Bug #22377: compile.c: `getlocal` not turned into `getlocal_WC_0`
Thanks for the repro, I think I know what's going on, I'll look into it. byroot (Jean Boussier)
05:36 AM Ruby Revision 0fab30f7 (git): compile.c: ensure swapped element isn't skipped
[Bug #22377]
When we statically resolve a `swap` we need to make sure the element
we reordered will receive its optimization pass.
byroot (Jean Boussier)
05:32 AM Ruby Revision 592f1ffd (git): Bump v3.4.11.
nagachika (Tomoyuki Chikanaga)
04:32 AM Ruby Bug #22340: Win32: File.stat succeeds on symbolic-link loops on Windows
ruby_3_4 commit:7bbe8e88007f8283a421cb31db86da32076126a6 merged revision(s) commit:ad23fd4a519fde4fc96c7326fb9b0347cbc347b8. nagachika (Tomoyuki Chikanaga)
04:32 AM Ruby Bug #22330: heap uaf from string.encode()
ruby_3_4 commit:75309143a8494abd682bdd23f3b18ecc2e48a2e4 merged revision(s) commit:cb302881629f997f403e705425f69e5f6b0741ac, commit:c914aeb622ce7337223cd5c23f30daf9f7d3e7c4. nagachika (Tomoyuki Chikanaga)
04:31 AM Ruby Bug #22338: [Backport] win32: create directory symlinks for relative directory targets
ruby_3_4 commit:93d1c2d7c3782cfbe0448849bd2cb79ce66c3860 merged revision(s) commit:ee786598f10c6def72265fb7105fe505f563f52f, commit:54f254aa41eb624429e6b884c0a6381eeeac50d0, commit:15dbb08ba8b69877c8012e0f5950f3f26a3abffe, commit:249de20... nagachika (Tomoyuki Chikanaga)
04:30 AM Ruby Bug #22338: [Backport] win32: create directory symlinks for relative directory targets
MEMO: related commit hashes.
commit:ee786598f10c6def72265fb7105fe505f563f52f
commit:54f254aa41eb624429e6b884c0a6381eeeac50d0
commit:15dbb08ba8b69877c8012e0f5950f3f26a3abffe
commit:249de200d5be1f1d1f936e40949a6b48ac9b6e25
nagachika (Tomoyuki Chikanaga)
04:30 AM Ruby Revision 93d1c2d7 (git): merge revision(s) ee786598f10c6def72265fb7105fe505f563f52f, 54f254aa41eb624429e6b884c0a6381eeeac50d0, 15dbb08ba8b69877c8012e0f5950f3f26a3abffe, 249de200d5be1f1d1f936e40949a6b48ac9b6e25: [Backport #22338]
[PATCH] [Bug] win32: create directory symlinks for relative directory targets
File.symlink decided whether to create a directory symlink by calling
GetFileAttributesW on the target as given, which resolves a relative
...
nagachika (Tomoyuki Chikanaga)
04:27 AM Ruby Revision 41e214d7 (git): merge revision(s) d87ffb271a80fb108de3465d12ada829f3c130af: [Backport #22335]
[PATCH] [Bug #22335] Use identity hashes for keyword argument tracking
With more than 31 keyword arguments, tracking unevaluated defaults
uses an integer-keyed Hash whose collisions can invoke methods when
`Integ...
nagachika (Tomoyuki Chikanaga)
04:24 AM Ruby Revision 7bbe8e88 (git): merge revision(s) ad23fd4a519fde4fc96c7326fb9b0347cbc347b8: [Backport #22340]
[PATCH] [Bug #22340] Fix stat on symbolic-link loops on Windows
Preserve `ELOOP` instead of hiding symbolic-link resolution errors
with the file-enumeration fallback, so existence checks return false.
nagachika (Tomoyuki Chikanaga)
04:23 AM Ruby Revision 75309143 (git): merge revision(s) cb302881629f997f403e705425f69e5f6b0741ac, c914aeb622ce7337223cd5c23f30daf9f7d3e7c4: [Backport #22330]
[PATCH] Fix memory leak of transcoding when fallback raises
When the fallback function in transcode_loop raises, it will leak the memory
in rb_econv_t. The following script reproduces the leak:
10.times do
...
nagachika (Tomoyuki Chikanaga)
04:05 AM Ruby Revision 27be6ccd (git): ZJIT: Avoid creating IseqPayload on rb_zjit_iseq_free (#18953)
k0kubun (Takashi Kokubun)
02:41 AM Ruby Revision 8c0eb987 (git): Bump taiki-e/install-action
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.87.16 to 2.87.17
- [Release notes](https://github.com/taiki-e...
dependabot[bot]
12:36 AM Ruby Revision bb382ae5 (git): Fix use-after-free in Time.new when string modified
The precision in Time.new calls to_int which can modify the string passed
into Time.new. This can cause an use-after-free. For example, the following
script crashes:
str = "2000-01-01 00:00:00" + "0" * 1_000_000
obj = Object.new...
peterzhu2118 (Peter Zhu)
12:03 AM Ruby Revision b20a1ab6 (git): [DOC] Harmonize file size methods
burdettelamar (Burdette Lamar)
12:02 AM Ruby Revision ffc14da7 (git): [DOC] Harmonize setuid? methods (#18965)
burdettelamar (Burdette Lamar)
12:01 AM Ruby Revision f016ece9 (git): [DOC] Harmonize setgid? methods (#18963)
burdettelamar (Burdette Lamar)
 

Also available in: Atom