Project

General

Profile

Activity

From 03/28/2026 to 04/03/2026

Today

12:36 AM Feature #21981 (Open): Remove CREF rewriting for methods on cloned classes/modules
When a class or module is cloned, Ruby currently rewrites the CREF chain of each copied method so that it points at the new class instead of the original. I don't think this should happen, and methods on a cloned class should retain thei... jhawthorn (John Hawthorn)
12:30 AM Revision 6200574d (git): Fix bug reference number and tracker ID to match Bug #21342
hsbt (Hiroshi SHIBATA)
12:30 AM Revision bbe94d9b (git): Fix typo "rescured" to "rescued"
hsbt (Hiroshi SHIBATA)
12:17 AM Revision 23175641 (git): Revert "ZJIT: Skip TestOpenURI and TestOpenURISSL (#16603)"
This reverts commit 33b9d2ab9f45a0c66665fb8dc40ddebd07c7b7b7. alanwu (Alan Wu)
12:17 AM Revision 6ebe6f97 (git): Revert "ZJIT: Skip TestOpenURIProxy on Linux (#16606)"
This reverts commit d368d42ec6b50cece947556a2185ce73fa493bfe. alanwu (Alan Wu)
12:17 AM Revision 61bef957 (git): YJIT: ZJIT: Use opt-level=1 on dev builds to avoid SystemStackError
Despite adding rb_ec_stack_check() to Rust code entry points, we've seen
SystemStackError causing test failures due to debug builds consume too
much native stack space. Let's use opt-level=1 so rustc/LLVM are more
efficient with stack sp...
alanwu (Alan Wu)
12:17 AM Revision b8c35082 (git): ZJIT: Avoid transmute dodging rustc/LLVM int-to-ptr miscompilation
The transmute triggered a miscompilation on Rust 1.85.0, where the
callback was "optimized" to unconditional go to a `SIGTRAP`ping
instruction.
While later Rust versions don't have the same miscompilation, it seems
that this is also par...
alanwu (Alan Wu)

04/02/2026

11:27 PM Revision a6c6e563 (git): Fix random timeout in test_thread_join_during_finalizers on Windows (#16650)
Reduce the number of spawned processes from 50 to 20 and increase the
timeout from 30s to 60s. Process creation is expensive on Windows, and
the combination caused the test to exceed the 30s limit on Windows CI.
k0kubun (Takashi Kokubun)
11:05 PM Revision 1d98daa1 (git): Relax RSS limit in test_named_structs_are_not_rooted
The default limit of 2.0 is too tight for RSS measurements on macOS,
causing random CI failures when the ratio lands just above 2.0 (e.g.
2.05). Increase to 2.2 to account for normal RSS measurement noise.
https://github.com/ruby/ruby/a...
k0kubun (Takashi Kokubun)
10:50 PM Revision 85146a5f (git): ZJIT: Use CFP_PC in warn_unused_block for outlined PC (#16649)
warn_unused_block uses the caller's PC to build a dedup key for the
unused block warning table. When called from ZJIT-compiled code via
rb_vm_send, cfp->pc may be stale (poisoned or uninitialized) because
ZJIT stores the real PC in cfp->...
k0kubun (Takashi Kokubun)
09:34 PM Revision e957b3a9 (git): YJIT: Stop checking rb_zjit_enabled_p on YJIT callbacks (#16648)
k0kubun (Takashi Kokubun)
09:29 PM Revision bcd14796 (git): Fix random Broken pipe error in TestOpenURI#test_read_timeout
The server thread writes the HTTP response while the client has a
0.1s read_timeout. On slow CI (especially Windows), the client can
time out and close the socket before the server finishes writing
headers or the response body, causing E...
k0kubun (Takashi Kokubun)
08:59 PM Revision 409b88d9 (git): Fix race condition between linking ruby and update-default-gemspecs
`yes-update-default-gemspecs` uses `$(XRUBY)` which execs the ruby
binary, but only depended on `main` (extensions and encodings).
When `make runirb` runs with parallel jobs, the linker may still be
writing the ruby binary while `update-...
k0kubun (Takashi Kokubun)
08:34 PM Revision b2e032dc (git): auto_request_review.yml: Un-fork auto-request-review
The PR has been upstreamed. k0kubun (Takashi Kokubun)
07:26 PM Revision 7aa3cbb0 (git): Convert K&R function definitions in configure.ac
jhawthorn (John Hawthorn)
06:46 PM Bug #21980 (Open): RubyVM::AST offsets are incorrect when BOM
When there is a BOM on a file, the offsets are incorrect for nodes. See:
```
RubyVM::AbstractSyntaxTree.parse("\xEF\xBB\xBF1").source # => "\xEF"
```
kddnewton (Kevin Newton)
01:22 PM Feature #21976: Add $SECONDS, $RANDOM, and other bashisms
Sorry to be late: https://github.com/nobu/bashism nobu (Nobuyoshi Nakada)
11:56 AM Bug #21933: Ruby::Box: named capture local variable can become nil after non-matching lines
I opened a pull request with a fix and regression test for this issue:
https://github.com/ruby/ruby/pull/16644
afurm (Andrii Furmanets)
11:17 AM Revision e866d953 (git): Prism: Close the open file once finished reading
nobu (Nobuyoshi Nakada)
11:08 AM Bug #21974 (Closed): Cannot inspect RubyVM::AST for CDECL
Applied in changeset commit:git|4009b713a64f469e593ffbc5bb4b37eff43f3be3.
----------
[Bug #21974] Fix RubyVM::AST inspection for ::Foo = 1 (#16642)
* Fix AST CDECL children for top-level constants
* Simplify cdecl AST regression test
afurm (Andrii Furmanets)
09:00 AM Bug #21974: Cannot inspect RubyVM::AST for CDECL
I have created a fix for this https://github.com/ruby/ruby/pull/16642 afurm (Andrii Furmanets)
11:08 AM Revision 4009b713 (git): [Bug #21974] Fix RubyVM::AST inspection for ::Foo = 1 (#16642)
* Fix AST CDECL children for top-level constants
* Simplify cdecl AST regression test
afurm (Andrii Furmanets)
05:36 AM Revision 3319be01 (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.70.4 to 2.71.1
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]
04:49 AM Revision b7eb96ec (git): Our test suite is broken with rb_sys-0.9.125 bacause we can't build json extension
hsbt (Hiroshi SHIBATA)
04:37 AM Feature #21979 (Open): `String#unpack`/`String#unpack1` should allow negative offset
https://bugs.ruby-lang.org/issues/18254#note-14
I think `String#unpack`/`String#unpack1` should allow negative offset as well as the other methods, for example `String#slice` that is referred to in the description.
[ruby/ruby#16641]...
nobu (Nobuyoshi Nakada)
04:30 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
I wasn't aware that negative offset is not allowed.
Shouldn't `unpack`/`unpack1` also allow it as well as the other methods, `String#slice`, `String#[]` and so on?
nobu (Nobuyoshi Nakada)
04:13 AM Bug #20948 (Closed): Constant references incorrectly cached in `module (expr)::Foo`
Applied in changeset commit:git|91ae69860591f0dfc85571cfbd023dd199e17e73.
----------
Use compile-time flag to indicate dynamic CREFs
The inline constant cache previously used `RCLASS_SINGLETON_P` to detect
"unstable" CREFs that need ic...
jhawthorn (John Hawthorn)
04:13 AM Revision 91ae6986 (git): Use compile-time flag to indicate dynamic CREFs
The inline constant cache previously used `RCLASS_SINGLETON_P` to detect
"unstable" CREFs that need ic_cref stored and checked on every IC hit.
This caused the `class << self` pattern to create inline caches which
requires extra checks a...
jhawthorn (John Hawthorn)
03:56 AM Revision 07e52c81 (git): Fix `TestSocket#test_bintime`
`String#unpack` does not allow negative offset. nobu (Nobuyoshi Nakada)
03:17 AM Revision 81df2bda (git): [ruby/rubygems] Bump the rb-sys group across 2 directories with 1 update
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).
Bumps the rb-sys group with 1 update in the /test/rubygems/t...
dependabot[bot]
02:53 AM Revision b59fe8e7 (git): [ruby/rubygems] Handle empty result gracefully in gem pristine --only-missing-extensions
When no gems have missing extensions (e.g. on JRuby where
missing_extensions? always returns false), display an informational
message instead of raising Gem::Exception.
https://github.com/ruby/rubygems/commit/738d2dbdf6
Co-Authored-By:...
hsbt (Hiroshi SHIBATA)
02:53 AM Revision cb75f04f (git): [ruby/rubygems] Skip missing_extensions? check on JRuby
JRuby does not require extension rebuilds when switching JRuby or Java
versions because Java extensions are shipped pre-compiled and JRuby does
not expose a version-specific C API. This means missing_extensions?
returning true on JRuby i...
hsbt (Hiroshi SHIBATA)
02:53 AM Revision 79c0a025 (git): [ruby/rubygems] Use IO.copy_stream to drain remaining gzip data instead of read
Replace gzio.read with IO.copy_stream(gzio, IO::NULL) to avoid
allocating a potentially large string when discarding unconsumed
compressed data.
https://github.com/ruby/rubygems/commit/e4d0196887
Co-Authored-By: Claude Opus 4.6 (1M con...
hsbt (Hiroshi SHIBATA)
02:53 AM Revision 9233eae6 (git): [ruby/rubygems] Consume remaining gzip data in open_tar_gz to suppress zlib warning
When a GzipReader is closed before all compressed data is consumed,
zlib emits "attempt to close unfinished zstream; reset forced" warning.
This happens in open_tar_gz because the TarReader stops reading at the
end-of-archive marker, lea...
hsbt (Hiroshi SHIBATA)
02:43 AM Revision 27f24a37 (git): [ruby/rubygems] Fix incompatible function pointer type error with Xcode 26.5 beta
Xcode 26.5 beta ships a clang that promotes -Wincompatible-function-pointer-types to an error by default. The test's inline C extension defined `VALUE foo()` (taking no arguments) but passed it to `rb_define_global_function` which expect... hsbt (Hiroshi SHIBATA)
02:21 AM Bug #21978 (Closed): Fix class variable cache isn't invalidated via modules
Applied in changeset commit:git|dd3542a0cd00b40d406763e85ac12a1086bab682.
----------
Fix class variable cache not invalidated by class_variable_set
The previous invalidation walked subclasses but missed cvars from
included modules, and...
jhawthorn (John Hawthorn)
02:21 AM Revision dd3542a0 (git): Fix class variable cache not invalidated by class_variable_set
The previous invalidation walked subclasses but missed cvars from
included modules, and skipped invalidation when creating a new cvar on
modules entirely. Always invalidate when a new class variable is
created, since this should be relat...
jhawthorn (John Hawthorn)
12:18 AM Revision f0c73671 (git): Revert "ZJIT: Clean up branching in polymorphic opt_send_without_block HIR construction (#16634)"
This reverts commit 77b803cfc833233a49b497a9342f16c9237833e6.
There is a new NULL dereference in tool/test/testunit/test_sorting.rb
that seem to have started with this commit.
alanwu (Alan Wu)

04/01/2026

11:37 PM Misc #21975: Add "UTF-八" as an alias for UTF-8 encoding
Dan0042 (Daniel DeLorme) wrote in #note-3:
> Indeed, but I believe "UTF-八" would be a better alias here
Fully agree. I was just too lazy to go figure out the full-width hyphen, sorry.
duerst (Martin Dürst)
02:09 PM Misc #21975: Add "UTF-八" as an alias for UTF-8 encoding
duerst (Martin Dürst) wrote in #note-2:
> I think it's a good idea to allow "UTF-八" (and probably also full-width "UTF-八") as an alternative to "UTF-8" for internal Ruby use.
Indeed, but I believe "UTF-八" would be a better alias here...
Dan0042 (Daniel DeLorme)
06:36 AM Misc #21975: Add "UTF-八" as an alias for UTF-8 encoding
Thanks to @ko1 for this timely news. It looks like the current Japanese government is recently taking some steps that in some ways have felt long overdue. On December 22, 2025, they changed the Romanization used by the Government from 'K... duerst (Martin Dürst)
01:50 AM Misc #21975: Add "UTF-八" as an alias for UTF-8 encoding
ko1 (Koichi Sasada) wrote:
> In Japan, legal texts must write all characters - including digits - using full-width or kanji forms. As a result, the encoding name "UTF-8"
> ...
Should "UTF-" also be full-width ("UTF−")?
jinroq (Jinroq SAITOH)
11:29 PM Revision 25ca647d (git): ZJIT: Hook into GC W^X callbacks for compaction (#16635)
k0kubun (Takashi Kokubun)
11:28 PM Revision c3413996 (git): Fix memory leak in pm_parse_process
pm_parse_process initializes the index_lookup_table but nothing seems to
use it after it has been allocated. However, pm_compile_scope_node will
overwrite the index_lookup_table and cause it to leak memory. This can
be seen during bootup...
peterzhu2118 (Peter Zhu)
08:56 PM Revision 77b803cf (git): ZJIT: Clean up branching in polymorphic opt_send_without_block HIR construction (#16634)
We have global regalloc now and don't need this manual threading. Max Bernstein
07:10 PM Bug #21971 (Closed): Backport commit 5de4cc560864 / PR #15848
Forgot to close byroot (Jean Boussier)
06:50 PM Bug #21978 (Closed): Fix class variable cache isn't invalidated via modules

```ruby
module M; @@x = 1; end
class A; end
class B < A
include M
def self.x; @@x; end
end
B.x # warm cache
A.class_variable_set(:@@x, 2)
B.x
```
The last call to `B.x` should fail with `Should raise: class variable ...
jhawthorn (John Hawthorn)
05:47 PM Revision 1bb1f6c4 (git): [ruby/prism] Emit `on_kw` for ripper
`yard` uses it
Start checking against the ordering of the events and also their location.
I didn't fix any of the preexisting failures and just ignored them. Some are easy to fix, others look like particularities of ripper
that I don't...
Earlopain (Earlopain _)
05:08 PM Revision 6e18d5f5 (git): ZJIT: Remove old unused graphviz code (#16630)
We use iongraph now. Max Bernstein
02:13 PM Revision a8f3c345 (git): ZJIT: Add missing guard on ivar access on T_{DATA,CLASS,MODULE}
T_DATA, T_MODULE, and T_CLASS objects can share the exact same shape.
The shape on these objects give an index off of the fields array to
get at the ivar. When two objects share the same shape, but differ
in the T_* builtin type, however...
alanwu (Alan Wu)
02:03 PM Revision 8824fd3b (git): [ruby/prism] Generate templated sources under main/java-templates
This path avoids the sources getting wiped out during `mvn clean`,
since they are not generated during the maven build.
This patch also moves the generated WASM build under src/main/wasm
since it is really a source file and not a test f...
headius (Charles Nutter)
11:34 AM Revision 9224d90f (git): Refactor socket timestamp tests
- Avoid unnecessarily binding sender sockets, as ephemeral ports can
very occasionally conflict on Linux. This investigation is assisted
by Claude Code.
- Compare timestamps using a range instead of relying on `inspect`.
- Use the `...
nobu (Nobuyoshi Nakada)
11:14 AM Revision ce398d75 (git): [ruby/prism] Remove a warning from `discarded-qualifiers`
I've been seeing this for a while now:
```
../../../../ext/prism/../../src/memchr.c: In function ‘pm_memchr’:
../../../../ext/prism/../../src/memchr.c:35:16: warning: return discards ‘const’ qualifier from pointer target type [-Wdiscarde...
Earlopain (Earlopain _)
10:44 AM Bug #21818 (Closed): Thread backtraces cannot be communicated over Ractor ports
Applied in changeset commit:git|9a2ffd8e5448e0c2ac4ae58d0ef02afc195f2cb8.
----------
Fix sending backtraces across ractors
[Bug #21818]
Currently exceptions can be sent across ractors,
but because of a limitation in the TypedData API,...
byroot (Jean Boussier)
10:43 AM Revision 9a2ffd8e (git): Fix sending backtraces across ractors
[Bug #21818]
Currently exceptions can be sent across ractors,
but because of a limitation in the TypedData API,
the exception backtrace is duped as an empty backtrace.
The problem is that backtraces are embedded objects,
hence the clas...
byroot (Jean Boussier)
09:46 AM Bug #21977 (Assigned): Ruby::Box crash with `RUBY_BOX=1` via `Binding` refinement, `UnboundMethod#bind_call`, and `Symbol#to_proc`
mame (Yusuke Endoh)
09:44 AM Bug #21977 (Assigned): Ruby::Box crash with `RUBY_BOX=1` via `Binding` refinement, `UnboundMethod#bind_call`, and `Symbol#to_proc`
## Summary
I found a reproducible interpreter crash when Ruby is run with `RUBY_BOX=1`.
A refinement on `Binding`, combined with `UnboundMethod#bind_call` and `Symbol#to_proc`, causes Ruby to abort with:
```text
[BUG] BUG: Loca...
singetu0096 (Rintaro Kawasugi)
07:26 AM Revision 3f1acedb (git): [ruby/rubygems] Use gem exec --conservative for sigstore-cli instead of pinning version
Hardcoding sigstore-cli:0.2.2 meant rubygems would need a new release
whenever sigstore-cli ships a new version. Using --conservative lets
gem exec prefer an already-installed version and falls back to the
latest when sigstore-cli is not...
hsbt (Hiroshi SHIBATA)
07:26 AM Revision a27f303f (git): [ruby/rubygems] Normalize host comparison in attestation_supported_host?
The method compared against a hardcoded string, so a trailing slash
(e.g. "https://rubygems.org/") would cause auto-attestation to be
silently skipped. Now we chomp the trailing slash and compare against
Gem::DEFAULT_HOST to be consisten...
hsbt (Hiroshi SHIBATA)
07:26 AM Revision b9358e9f (git): [ruby/rubygems] Show only error message on attestation failure unless verbose
When auto-attestation fails, the warning previously included
e.full_message with a full backtrace that could be noisy and expose
local paths. Now only e.message is shown by default, and the full
backtrace is included only when Gem.config...
hsbt (Hiroshi SHIBATA)
07:26 AM Revision 80472134 (git): [ruby/rubygems] Honor explicit --attestation option regardless of platform and host
The send_push_request method previously skipped all attestation handling
on JRuby, non-rubygems.org hosts, or outside GitHub Actions. This meant
that even when a user explicitly passed --attestation with a local
sigstore bundle, the atte...
hsbt (Hiroshi SHIBATA)
07:26 AM Revision 54ce9113 (git): [ruby/rubygems] Reverse to use attestation condition
https://github.com/ruby/rubygems/commit/ea1f43c4ae hsbt (Hiroshi SHIBATA)
07:26 AM Revision d2f9872e (git): [ruby/rubygems] Omit tests of auto-attestation with JRuby
https://github.com/ruby/rubygems/commit/543ac52412 hsbt (Hiroshi SHIBATA)
07:26 AM Revision 6ef9fe59 (git): [ruby/rubygems] Use Tempfile for auto-attestation bundles and clean up after use
https://github.com/ruby/rubygems/commit/498401c010
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
07:26 AM Revision c4eeb675 (git): [ruby/rubygems] Remove raise from stub to rely on flag for test assertions
https://github.com/ruby/rubygems/commit/7ebc1abafd
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
07:26 AM Revision e35eaf56 (git): [ruby/rubygems] Added test for auto-attestation
https://github.com/ruby/rubygems/commit/df2bdde8e5 hsbt (Hiroshi SHIBATA)
07:26 AM Revision bf617311 (git): [ruby/rubygems] Add test coverage for skipping auto-attestation
https://github.com/ruby/rubygems/commit/6cd04a57da
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
07:26 AM Revision 2041c877 (git): [ruby/rubygems] Refactor push request to support attestations
https://github.com/ruby/rubygems/commit/74924da660 hsbt (Hiroshi SHIBATA)
07:26 AM Revision a9b8d47d (git): [ruby/rubygems] Merge rubygems-attestation-patch.rb from rubygems/release-gem
https://github.com/ruby/rubygems/commit/64f085f5ee hsbt (Hiroshi SHIBATA)
07:10 AM Feature #21861 (Closed): C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc
Applied in changeset commit:git|53099633e208b43e26a8ee3c6fdd936e2943b0d5.
----------
Make `ruby_xfree_sized` and `ruby_xrealloc_sized` public
[Feature #21861]
byroot (Jean Boussier)
07:10 AM Revision 53099633 (git): Make `ruby_xfree_sized` and `ruby_xrealloc_sized` public
[Feature #21861] byroot (Jean Boussier)
04:24 AM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
duerst (Martin Dürst) wrote in #note-6:
> Here is another proposal: Why not count using administrative/fiscal years? The administrative/fiscal year (年度 ('nendo') in Japanese, as opposed to simply 年 for (calendar) year) starts on April 1...
jinroq (Jinroq SAITOH)
02:29 AM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
Here is another proposal: Why not count using administrative/fiscal years? The administrative/fiscal year (年度 ('nendo') in Japanese, as opposed to simply 年 for (calendar) year) starts on April 1st.
As an example, 1993-02-24 to 1993-3-...
duerst (Martin Dürst)
02:26 AM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
jinroq (Jinroq SAITOH) wrote in #note-4:
> > Under current Japanese law, a person's age increases at midnight on the day before their birthday. However, it might be better to use the traditional 'Kazeidoshi' (East Asian age reckoning) ...
shugo (Shugo Maeda)
12:24 AM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
shugo (Shugo Maeda) wrote in #note-2:
> Under current Japanese law, a person's age increases at midnight on the day before their birthday. However, it might be better to use the traditional 'Kazeidoshi' (East Asian age reckoning) syste...
jinroq (Jinroq SAITOH)
12:14 AM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
ufuk (Ufuk Kayserilioglu) wrote in #note-1:
> I think these methods should live on the new `Ruby` module as `Ruby.birthday` and `Ruby.age` instead:
> ...
That's a great insight! Moving these to a Ruby module makes the intent much clear...
jinroq (Jinroq SAITOH)
04:20 AM Revision 2477916e (git): pty: Fix missing arguments
nobu (Nobuyoshi Nakada)
04:20 AM Revision 1a668dee (git): pty: Rename as the purpose
This function prevents other users from opening this device for
writing so not to be sent messages using commands such as `talk` or
`wall`.
nobu (Nobuyoshi Nakada)
02:32 AM Revision 05086ee8 (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.70.3 to 2.70.4
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]
01:51 AM Feature #21976: Add $SECONDS, $RANDOM, and other bashisms
Did you think you could fly under the radar with that semi-colon?
That's not acceptable corner to cut.
For proper POSIX shell compatibility, it's imperative that the Ruby grammar be extended to accept `:` as a bare keyword, equivalent ...
AMomchilov (Alexander Momchilov)
01:14 AM Feature #21976 (Open): Add $SECONDS, $RANDOM, and other bashisms
Some time ago there was a lot of discussion around a script named [safe_sleep.sh](https://github.com/actions/runner/blob/af6c8e6eddef233fdef862c1287d9b013c8aabff/src/Misc/layoutroot/safe_sleep.sh) in the GitHub Actions runner. Like [many... jhawthorn (John Hawthorn)
12:57 AM Revision 20af0e90 (git): Add retry logic to stdgems.org curl requests in CI
The curl requests to stdgems.org occasionally fail with connection
errors, causing spurious CI failures. Add curl's built-in retry
flags to handle transient network issues with exponential backoff.
example:
https://github.com/ruby/ruby/...
k0kubun (Takashi Kokubun)
12:51 AM Revision 60de70c5 (git): [ruby/rubygems] Improve error message when current platform is not in lockfile
Fixes https://github.com/ruby/rubygems/pull/9413
https://github.com/ruby/rubygems/commit/02d2179047
Kenta Ishizaki
12:36 AM Revision 7683ab75 (git): ZJIT: Side-exit sends with blocks to non-block methods (#16624)
When the caller passes a block to a method that either rejects blocks
(`&nil` parameter, `accepts_no_block`) or doesn't use them (`use_block`
is false), ZJIT now falls back to the interpreter instead of compiling
a direct send. This ensu...
k0kubun (Takashi Kokubun)
12:29 AM Revision 88efe89d (git): post_push.yml: Use continue-on-error for flaky steps
"Sync git.ruby-lang.org" and "Push PR notes to GitHub" steps can
fail due to transient issues, which blocks execution of all
subsequent steps. Use continue-on-error so the rest of the workflow
still runs, and add a "Check for failures" s...
k0kubun (Takashi Kokubun)
12:24 AM Revision f6ddb9c6 (git): prism_compile.c: Fix -Wmaybe-uninitialized warning in pm_compile_call
Initialize `end_cursor` to 0. It is guarded by `end_found` but the
compiler cannot prove `end_found` is always true when `end_cursor` is
read.
k0kubun (Takashi Kokubun)
12:24 AM Revision 1389a36b (git): sprintf.c: Fix -Wmaybe-uninitialized warnings in rb_str_format
Initialize `c` and `encidx` to 0. They are assigned inside
`if (n >= 0)` and the following `if (n <= 0)` calls rb_raise, but the
compiler cannot see through the noreturn guarantee.
k0kubun (Takashi Kokubun)
12:24 AM Revision 6a5a2612 (git): variable.c: Fix -Wmaybe-uninitialized warnings in rb_gvar_set/rb_gvar_get
Initialize `entry` and `var` to NULL. They are assigned inside
RB_VM_LOCKING() but used after it, and the compiler cannot prove the
locked block always executes.
k0kubun (Takashi Kokubun)
12:10 AM Revision d926f407 (git): [ruby/mmtk] Add moving_gc_count to GC.stat
Outputs the number of GC cycles that are moving.
https://github.com/ruby/mmtk/commit/fef8f04186
peterzhu2118 (Peter Zhu)

03/31/2026

11:57 PM Misc #21975 (Open): Add "UTF-八" as an alias for UTF-8 encoding
In Japan, legal texts must write all characters - including digits - using full-width or kanji forms. As a result, the encoding name "UTF-8"
appears as "UTF-八" (八 = eight in kanji) in official government notices.
Specifically, it a...
ko1 (Koichi Sasada)
11:32 PM Revision 78f11bde (git): ZJIT: Support VM_OPT_NEWARRAY_SEND_PACK (#16596)
Nozomi Hijikata
11:30 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
With this implemented and then removed after Ruby 4.0.0, Preview 2, is this still planned for completion? Would really like to have this but unclear on the current plan. I assume we will have to wait until Ruby 4.1.0 at best? bkuhlmann (Brooke Kuhlmann)
11:09 PM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
Under current Japanese law, a person's age increases at midnight on the day before their birthday. However, it might be better to use the traditional 'Kazeidoshi' (East Asian age reckoning) system, as its logic is much simpler. shugo (Shugo Maeda)
03:43 PM Feature #21972: Add Date.birthday and Date.age to track Ruby's milestones
I think these methods should live on the new `Ruby` module as `Ruby.birthday` and `Ruby.age` instead:
```ruby
puts "Today: #{Date.today}" # => Today: 2026-04-01
# Check the "age" of Ruby
puts "Age: #{Ruby.age}" # =>...
ufuk (Ufuk Kayserilioglu)
03:01 PM Feature #21972 (Open): Add Date.birthday and Date.age to track Ruby's milestones
Since its inception in 1993, Ruby has grown beyond a mere programming language to become a rich culture beloved by developers worldwide. However, the standard `date` library surprisingly lacks a formal interface to commemorate Ruby's own... jinroq (Jinroq SAITOH)
11:05 PM Revision 3a0b003a (git): auto_request_review.yml: Fix and use last_files_match_only
https://github.com/necojackarc/auto-request-review/pull/135 fixes
last_files_match_only. Let's use a fork to fix it until it gets merged.
k0kubun (Takashi Kokubun)
11:05 PM Revision e191769e (git): auto_request_review.yml: Clarify the meaning of the "Skip" comment
by explicitly adding no-op entries, rather than leaving the line empty,
which may seem like lines that have been deleted.
k0kubun (Takashi Kokubun)
09:48 PM Revision c9ae44e1 (git): set: fix Set#to_set block behavior and add regression test
rwstauner (Randy Stauner)
09:45 PM Revision bcddc56f (git): vm: avoid allocator lookup for singleton class initialize methods
This fixes a SIGABRT of Assertion Failed: RCLASS_ALLOCATOR:!RCLASS_SINGLETON_P(klass) rwstauner (Randy Stauner)
07:58 PM Bug #21974 (Closed): Cannot inspect RubyVM::AST for CDECL
```
./ruby -e 'pp RubyVM::AbstractSyntaxTree.parse("::Foo = 1")'
```
and
```
./ruby -e 'p RubyVM::AbstractSyntaxTree.parse("::Foo = 1").children[2].children'
```
both crash
kddnewton (Kevin Newton)
06:56 PM Revision 0364a612 (git): ZJIT: Clean up branching in HIR construction (#16616)
We have the global register allocator now and don't need to thread everything through manually as block params. Simplify HIR construction. Max Bernstein
06:48 PM Feature #21973: Smile argument
My email client does not like this proposal:
<img style="width: 232px;" src="clipboard-202603312047-a8wkw.png"><br>
Maybe `:))` (even bigger smile) should be considered instead?
vo.x (Vit Ondruch)
04:05 PM Feature #21973: Smile argument
Implementation should be easy like that :)
```ruby
def q(a:, b:1)
p a:, b: #=> {a: 10, b: 20}
end
def smile_send mid, b, *params
h = {}
method(mid).parameters.each do |(type, key)|
case type
when :keyreq
...
ko1 (Koichi Sasada)
03:35 PM Feature #21973 (Open): Smile argument
Ruby makes us smile. So I want Ruby to smile too, and that is why I would like to propose this feature.
The smile argument makes Ruby smile by allowing a method call to end its argument list with `:)`.
smile_method(arg, :)
This ...
kinoppyd (Yasuhiro Kinoshita)
03:14 PM Revision 9c827a49 (git): [ruby/openssl] test_pkey_rsa.rb: Fix test_private_encoding_encrypted in OpenSSL 4.0 FIPS
OpenSSL 4.0.0 added a check for Password-Based Key Derivation Function 2
(PBKDF2) to require the minimal password length 8 in FIPS by the following
commit.
https://github.com/openssl/openssl/commit/71ed0fc8b3cdb33cd06059416686f8972ede024...
Jun Aruga
03:14 PM Revision 5973d619 (git): [ruby/openssl] ssl: fix test_tmp_dh and test_tmp_dh_callback with OpenSSL 4.0
OpenSSL master added support for RFC 7919 groups in TLS 1.2. They are
preferred over SSLContext#tmp_dh= or #tmp_dh_callback= values if the
client advertises them in the supported_groups extension.
https://github.com/ruby/openssl/commit/...
rhenium (Kazuki Yamaguchi)
03:14 PM Revision b41b1430 (git): [ruby/openssl] asn1: use new ASN1_BIT_STRING accessor functions with OpenSSL 4.0
ASN1_STRING has been made opaque in OpenSSL's master branch. Use the
new accessor functions instead of accessing fields directly.
Other uses of ASN1_STRING fields were already updated in
<https://github.com/ruby/openssl/pull/978>. This ...
rhenium (Kazuki Yamaguchi)
03:14 PM Revision f17a0af9 (git): [ruby/openssl] pkey: remove unnecessary prototype from ossl_pkey.h
ossl_ec_new() was removed in commit https://github.com/ruby/openssl/commit/94aeab2f265d (pkey: simplify
ossl_pkey_new(), 2017-03-16), but it forgot to remove the declaration
while doing so.
https://github.com/ruby/openssl/commit/faad7a0811
rhenium (Kazuki Yamaguchi)
03:14 PM Revision de1d14c0 (git): [ruby/openssl] Add const qualifiers for OpenSSL 4.0 compatibility
OpenSSL's master branch is changing functions to return const pointers
where the returned objects are not meant to be modified by the caller.
Update ossl_*_new() to take const pointers accordingly. Unfortunately,
*_dup() in older versio...
rhenium (Kazuki Yamaguchi)
01:04 PM Revision 6afed23a (git): [ruby/rubygems] Prevent checksum for this test:
- ### Problem
This test breaks whenever checksums are computed. It didn't break
before because the gemfile in this test doesn't include any gems
(only git gems) and therefore checksum is skipped.
### Context
This test was ad...
Edouard CHIN
01:04 PM Revision 1e91f566 (git): [ruby/rubygems] Fix test suite that will start to fail whenever we attempt a release:
- ### Problem
Whenever we bump the bundler `VERSION` to a non development release,
like we recently did in [4.0.9](https://github.com/ruby/rubygems/pull/9426)
The test suite will behave differently and will break due to the
Bun...
Edouard CHIN
01:04 PM Revision b359ea34 (git): [ruby/rubygems] Skip checksum for the bundler gem if no `bundler.gem` exists on disk:
- ### Problem
This change is purely to fix a problem when developing Bundler.
When we tried to release Bundler 4.0.9, we bumped the VERSION
from `4.1.0.dev` to `4.0.9`, this condition now evaluates to false
https://github.com/ru...
Edouard CHIN
06:14 AM Revision a08f5474 (git): Ignore files with parse errors in CodeQL analysis
These test files, specs, and trace_point.rb contain intentionally
invalid syntax or special constructs that CodeQL's parser cannot
handle. They are not security-relevant and should be excluded from
analysis.
Co-Authored-By: Claude Opus ...
hsbt (Hiroshi SHIBATA)
04:06 AM Revision f41c1941 (git): pty: Prefer FD-base operations if available
nobu (Nobuyoshi Nakada)
03:45 AM Revision c6bee053 (git): Narrow CodeQL paths-ignore to only fixture directories
Keep test/ and spec/ in CodeQL analysis for better SAST coverage.
Only exclude directories containing intentionally unparseable files
such as UTF-16 encoded fixtures and bad syntax test fixtures.
Co-Authored-By: Claude Opus 4.6 (1M cont...
hsbt (Hiroshi SHIBATA)
03:45 AM Revision bc032028 (git): Add actions:read permission to pr-playground workflow
The github-script step calls the Actions API to list workflow runs
and download artifacts, which requires actions:read permission.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:45 AM Revision 3ae990db (git): Remove excessive-permissions from zizmor ignore list
These four workflows now have explicit top-level permissions set
to contents:read, so the excessive-permissions finding no longer
applies.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:45 AM Revision bd3904f1 (git): Pin cygwin-install-action to v6.1 by commit SHA
Replace @master reference with the pinned commit SHA for v6.1,
and remove cygwin.yml from the zizmor unpinned-uses ignore list
since it is now properly pinned.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
03:45 AM Revision b956e19a (git): Update pinned action versions in Launchable setup
The commit SHAs did not match their version comment tags, as
flagged by zizmor ref-version-mismatch. Update all three actions
to their latest releases with correct SHAs.
- actions/setup-python v5.0.0 -> v5.6.0
- actions/setup-java v4.0....
hsbt (Hiroshi SHIBATA)
03:45 AM Revision b2562525 (git): Exclude test directories from CodeQL analysis
CodeQL's Ruby extractor cannot parse UTF-16 encoded fixtures,
TRICK entries, and some edge-case syntax in test files, causing
84 parse error warnings. These directories (spec/, test/, sample/,
benchmark/) are not relevant for security sc...
hsbt (Hiroshi SHIBATA)
03:45 AM Revision 409a0a11 (git): Suppress zizmor secrets-outside-env audit
All committers with write access to this repository are trusted,
and fork PRs cannot access secrets by default. There is no threat
model that environment-scoped secrets would mitigate here.
Co-Authored-By: Claude Opus 4.6 (1M context) <...
hsbt (Hiroshi SHIBATA)
03:45 AM Revision d47d97c9 (git): Add top-level permissions to workflows missing them
Restrict the default GITHUB_TOKEN permissions to contents:read
for workflows that had no top-level permissions block, as flagged
by Scorecard's TokenPermissionsID check.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
02:26 AM Revision 3b502e62 (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.70.2 to 2.70.3
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]
01:27 AM Revision 1da540ae (git): Invalidate CC on cme free as well
jhawthorn (John Hawthorn)
01:26 AM Revision 3c251f79 (git): Don't add singleton classes to subclasses list
Singleton classes don't need to be iterated in the subclasses list, we
only need to know that a subclass exists so that we can use the "method
entry" path for invalidation.
jhawthorn (John Hawthorn)
01:25 AM Revision 90f74e06 (git): [ruby/strscan] Implement compaction and embedded structs
(https://github.com/ruby/strscan/pull/201)
GC compaction was introduced in Ruby 2.7.
Embedded Structs was introduced in Ruby 3.3. When enabled, the `struct
strscanner` is stored directly inside the object slot, meaning reading
the stru...
byroot (Jean Boussier)
12:33 AM Revision f6adf1c4 (git): ZJIT: Use a slice for ISeq `opt_table` for quick one-off access
This gets rid of the copying of the entire opt_table in
function_stub_hit() since it only reads one element. HIR builder
still does a copy and that's unchanged. It needs to read the whole
table.
alanwu (Alan Wu)
12:21 AM Bug #21971: Backport commit 5de4cc560864 / PR #15848
More details by Chris in the pull request: https://github.com/ruby/ruby/pull/15848 mackuba (Kuba Suder)
12:19 AM Bug #21971 (Closed): Backport commit 5de4cc560864 / PR #15848
Follow-up to ticket: https://bugs.ruby-lang.org/issues/21824
There was a group of old commits merged before 4.0 which were meant to improve regexp performance in some cases. Unfortunately, they also greatly degraded regexp performance...
mackuba (Kuba Suder)

03/30/2026

11:39 PM Revision 34c94b31 (git): [DOC] Fix formatting in IO
Colon should be outside of the code. peterzhu2118 (Peter Zhu)
11:10 PM Revision 72f309fe (git): [DOC] Doc for Pathname class (#16352)
burdettelamar (Burdette Lamar)
08:33 PM Revision 98e55e7b (git): ZJIT: Add --zjit-max-versions option (#16607)
Allow configuring the maximum number of compiled versions per ISEQ
via --zjit-max-versions=num (default: 2). Like YJIT's equivalent,
this option is hidden from --help output.
k0kubun (Takashi Kokubun)
08:09 PM Revision d368d42e (git): ZJIT: Skip TestOpenURIProxy on Linux (#16606)
Same random SystemStackError as TestOpenURI and TestOpenURISSL. k0kubun (Takashi Kokubun)
07:28 PM Revision 89133221 (git): Run GC if fiber pool expansion fails. (#16535)
[Bug #21964] Samuel Williams
07:26 PM Revision 714b4b54 (git): ZJIT: Compile modified path in getblockparamproxy (#16573)
ZJIT: Avoid side exits on modified getblockparamproxy Nozomi Hijikata
06:57 PM Revision 258c6b0b (git): Update debug.gem sha to fix random failures
https://github.com/ruby/debug/pull/1174 k0kubun (Takashi Kokubun)
04:55 PM Revision 1cbb161e (git): Decrease the frequency of cargo updates
They're development-only dependencies. We shouldn't need to pay the
maintenance cost for such frequent updates, especially when the
dependabot PRs have failed the CI two times in a row.
k0kubun (Takashi Kokubun)
04:55 PM Revision c8976131 (git): cargo update --manifest-path zjit/Cargo.toml
k0kubun (Takashi Kokubun)
04:55 PM Revision 079ee4ba (git): Fix rand 0.10.0 compatibility in ZJIT parcopy tests
rand 0.10.0 moved `random_range` from the `Rng` trait to `RngExt`.
Update the import accordingly.
k0kubun (Takashi Kokubun)
04:55 PM Revision 7444cb9f (git): Bump the jit group across 1 directory with 2 updates
Bumps the jit group with 2 updates in the /zjit directory: [insta](https://github.com/mitsuhiko/insta) and [rand](https://github.com/rust-random/rand).
Updates `insta` from 1.47.0 to 1.47.1
- [Release notes](https://github.com/mitsuhik...
dependabot[bot]
04:28 PM Revision 33b9d2ab (git): ZJIT: Skip TestOpenURI and TestOpenURISSL (#16603)
k0kubun (Takashi Kokubun)
02:40 PM Revision f0f92435 (git): Use ubuntu-latest for macOS result jobs
The result jobs in macOS workflows only check if other jobs failed
(just runs `exit 1`). They don't need macOS runners. Using
ubuntu-latest instead frees up macOS runner slots and starts faster
due to shorter queue times.
st0012 (Stan Lo)
02:40 PM Revision 3c22172c (git): Rebalance compilation jobs in Compilations workflow
Move compilation steps from the heaviest jobs to the lightest to reduce
the critical path of the Compilations workflow.
Before: jobs ranged from 13-41 min (compile#12 had 4 steps, compile#3
had 10 clang versions).
After: jobs range fro...
st0012 (Stan Lo)
01:14 PM Revision ae9b60f1 (git): [Feature #19107] parse.y: Allow trailing comma in method signature
nobu (Nobuyoshi Nakada)
12:33 PM Revision 5b83468b (git): Adjust indent [ci skip]
nobu (Nobuyoshi Nakada)
12:31 PM Revision 05428c8e (git): ZJIT: Remove side-exit locations dump after test
nobu (Nobuyoshi Nakada)
11:31 AM Revision 3fd1be95 (git): Introduce GC.stat_heap(:heap_allocatable_slots)
eightbitraptor (Matt V-H)
11:31 AM Revision db1a23fb (git): Remove unused minimum_slots_for_heap function
eightbitraptor (Matt V-H)
11:31 AM Revision 0875a0f8 (git): Replace heap_init_slots array with single heap_init_bytes target
Replace per-heap GC_HEAP_INIT_SLOTS with a single GC_HEAP_INIT_BYTES
target.
Instead of allocating a fixed 10k slot budget for each heap to grow
into. This PR gives each heap a fixed 2.5Mb heap growth allowance. This
keeps the overall h...
eightbitraptor (Matt V-H)
10:18 AM Bug #21970: Corrupted `ciobj->operands` in `compile.c: optimize_checktype`
Of course:
```
(gdb) p *iobj
$1 = {link = {type = ISEQ_ELEMENT_INSN, next = 0xaaab00000848, prev = 0xaaab00000818}, insn_id = YARVINSN_putnil, operand_size = 0, sc_state = 0, operands = 0x0, insn_info = {
line_no = 220, node_i...
byroot (Jean Boussier)
09:20 AM Bug #21970: Corrupted `ciobj->operands` in `compile.c: optimize_checktype`
Is it possible to inspect the contents of `*iobj` and `*ciobj`? nobu (Nobuyoshi Nakada)
08:48 AM Bug #21970 (Open): Corrupted `ciobj->operands` in `compile.c: optimize_checktype`
A rare crash I observed in production. I unfortunately don't have a reproduction, but perhaps this will ring a bell to someone.
```
#4 0x0000aaaac9afb1b8 [PAC] in sigsegv (sig=11, info=0xaaaaff573e30, ctx=0xaaaaff573eb0) at signal.c...
byroot (Jean Boussier)
10:10 AM Revision cbd8fac4 (git): win32: Escape macros in intermediate makefiles
nobu (Nobuyoshi Nakada)
09:45 AM Revision 80aea31e (git): Skip implicit rule for .rbinc when BASERUBY is unavailable
nobu (Nobuyoshi Nakada)
09:40 AM Bug #21967: `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
So for the record, I managed to remove our dependency on `nkf`, and the issue seem to have disappeared so far.
So this suggest `nkf` is indeed the root cause, but that is weird because I looked at the extension, and it's really not do...
byroot (Jean Boussier)
09:27 AM Revision ee31cc6e (git): Remove dead `Resolve job ID` step from macOS workflow (#16591)
This step was added in 1ba93c2c4d for uploading core dumps to AWS S3,
but the S3 upload was later removed while this step was left behind.
The `job_id` output is not referenced anywhere in the workflow.
st0012 (Stan Lo)
06:18 AM Bug #21969 (Third Party's Issue): fork() + Socket.getaddrinfo() triggers SIGSEGV/SIGABRT via libsystem_trace.dylib on macOS 26 (darwin25) x86_64 and ARM64
#21790 also identifies `_os_log_preferences_refresh` in `libsystem_trace.dylib` as the crash site (see note #4). The NAT64 code path (`_gai_nat64_second_pass`) appears higher in the call stack, but the actual fault is the same stale shar... mame (Yusuke Endoh)
05:26 AM Bug #21969 (Third Party's Issue): fork() + Socket.getaddrinfo() triggers SIGSEGV/SIGABRT via libsystem_trace.dylib on macOS 26 (darwin25) x86_64 and ARM64
On macOS 26 (darwin25), forked child processes crash with SIGSEGV (x86_64) or SIGABRT (ARM64) when calling `Socket.getaddrinfo` after the parent process has established `libsystem_trace.dylib` os_log shared-memory state through prior DNS... saurabhpandit (Saurabh Pandit)
05:34 AM Revision 3379c7ef (git): [ruby/rubygems] Restore rb_sys dependency for Rust
https://github.com/ruby/rubygems/commit/7cd3b9a08a 방성범 (Bang Seongbeom)
03:29 AM Bug #21965 (Closed): cross compile with out-of-source build is broken
https://github.com/ruby/ruby/pull/16456 fixed this and added my simple workflow for cross compile. hsbt (Hiroshi SHIBATA)
02:57 AM Revision 503cf433 (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.295.0` | `1.299.0` |
| [github/codeql-action](https://github.com/...
dependabot[bot]
02:57 AM Revision c99e07fe (git): Skip cleaning up the default docker image to avoid redundant pulls
The default image (clang-20) is reused across multiple steps within
the same job. Only remove non-default images after use.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
02:57 AM Revision 5f08b4c6 (git): Remove stephanmisc/docuum dependency to avoid DockerHub rate limits
Replace the docuum service container with a simple `docker rmi` step
after each compilation. This avoids pulling an external image from
DockerHub, which was causing rate limit issues.
Co-Authored-By: Claude Opus 4.6 (1M context) <norepl...
hsbt (Hiroshi SHIBATA)
01:10 AM Revision a0c6e64a (git): Add arm-to-x86 cross-compile matrix and generalize apt setup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
01:10 AM Revision 371255ff (git): Add cross-compile workflow for out-of-source ARM build testing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
01:10 AM Revision 2329ca1d (git): Revert generating sources in make-snapshot
nobu (Nobuyoshi Nakada)

03/29/2026

03:34 PM Revision 01e4a827 (git): Fall back writing prism sources to the current directory
nobu (Nobuyoshi Nakada)
03:34 PM Revision 4e3625fb (git): Add rule for dummy config.h
nobu (Nobuyoshi Nakada)
03:33 PM Revision 2cefc23a (git): Update rbinc files for snapshots
nobu (Nobuyoshi Nakada)
03:33 PM Revision 58f324d3 (git): Update prism sources before dump_ast
nobu (Nobuyoshi Nakada)
03:33 PM Revision 09a314d7 (git): Update prereq.status
nobu (Nobuyoshi Nakada)
03:33 PM Revision 353dca47 (git): Clean the build tool
nobu (Nobuyoshi Nakada)
03:33 PM Revision 70f5f861 (git): Distinguish the executable suffixes
Build and target executable suffixes are unrelated in
cross-compilation.
nobu (Nobuyoshi Nakada)
02:14 PM Revision ee2c1528 (git): Fix `dump_ast` build for cross-compiling
nobu (Nobuyoshi Nakada)
06:52 AM Bug #21952: Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
So it appears that when duplicating a class in another box, we copy the class variables table, but not its entries, causing both boxes to think they own that memory, resulting in a double free.
I have a fix for the specific reproducer...
byroot (Jean Boussier)
05:57 AM Revision f9175a9e (git): Ensure safe handling of `IO::Buffer#hexdump` width. (#16593)
Samuel Williams
01:14 AM Revision 843bb9b7 (git): Exclude StringScanner implementation for TruffleRuby
nobu (Nobuyoshi Nakada)
12:05 AM Revision b3a3b94b (git): [ruby/strscan] [DOC] Undoc unused constants
https://github.com/ruby/strscan/commit/1d85632f2a nobu (Nobuyoshi Nakada)

03/28/2026

09:49 PM Revision cbcd7522 (git): [ruby/strscan] Implement StringScanner for TruffleRuby in pure Ruby
(https://github.com/ruby/strscan/pull/195)
* Fixes https://github.com/ruby/strscan/issues/194.
* This is a fresh new implementation from scratch, contributed directly
to ruby/strscan, under BSD-2-Clause.
This was implemented using the s...
Eregon (Benoit Daloze)
03:02 PM Revision 64e10365 (git): ZJIT: Fn stub: Move args to create appropriate unfilled optional param gap
When a SendDirect lands in a callee that fails to compile, we need to
reconstruct the interpreter state at the entry point of the callee in
function_stub_hit().
SendDirect never leaves gaps in its args Vec, and consequently, it
contains...
alanwu (Alan Wu)
01:28 PM Revision 546e2eba (git): Add `make html-server` for live-reloading doc preview (#16494)
RDoc now has a `--server` mode that starts a local HTTP server
with live reload. Add an `html-server` make target so developers
can preview Ruby documentation while editing source files.
Usage: `make html-server` from the build director...
st0012 (Stan Lo)
01:12 PM Revision d89a9f82 (git): Extract `check_event_support` helper to reduce duplication in `vm_trace.c` (#16587)
Extract check_event_support helper to reduce duplication in vm_trace.c
Five rb_tracearg_* functions repeated the same event validation
pattern. Extract it into a check_event_support() helper.
st0012 (Stan Lo)
09:09 AM Bug #21952: Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
I managed to reduce this further.
This is reproducible with pure Ruby now, without `fiddle/import`. The current reduced reproducer is along these lines:
```ruby
Ruby::Box.root.eval(<<~RUBY)
module M
@@x = 0
...
katsyoshi (Katsuyoshi MATSUMOTO)
 

Also available in: Atom