Project

General

Profile

Activity

From 03/26/2026 to 04/01/2026

Today

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)
06:36 AM Feature #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 Feature #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)
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 Feature #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 (Open): 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 (Open): 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)

03/27/2026

11:26 PM Revision 634707a7 (git): Rename CFP_HAS_JIT_RETURN to CFP_JIT_RETURN
Return the pointer directly instead of a bool, for consistency with
CFP_ISEQ and CFP_PC. The pointer is truthy in if conditions so all
callers work unchanged.
k0kubun (Takashi Kokubun)
11:26 PM Revision ee60b99b (git): Rename rb_cfp_iseq to CFP_ISEQ and rb_cfp_pc to CFP_PC
Rename for consistency with ISEQ_BODY naming convention. Remove the
separate rb_cfp_has_iseq/rb_cfp_has_pc wrappers — CFP_ISEQ and CFP_PC
return NULL for missing values, which works directly in if conditions.
k0kubun (Takashi Kokubun)
11:26 PM Revision 4391c5f0 (git): Use cfp->_iseq directly in GET_ISEQ() macro
The interpreter always has a valid _iseq field (it's written on exit
from JIT code), so GET_ISEQ() doesn't need to go through rb_cfp_iseq().
Code in vm_insnhelper.c that may be called as a ZJIT fallback should
use rb_cfp_iseq() instead.
k0kubun (Takashi Kokubun)
11:26 PM Revision 226f3705 (git): Rename cfp->iseq to cfp->_iseq and rb_zjit_cfp_iseq to rb_cfp_iseq
Per tenderlove's review, every cfp->iseq read should go through an
accessor that accounts for JITFrame. Rename the field to _iseq so
direct access causes a compile error, and rename the accessors to
drop the zjit prefix (rb_cfp_iseq, rb_...
k0kubun (Takashi Kokubun)
11:26 PM Revision 4e5b0d31 (git): ZJIT: Have JITFrame relocate itself via Rust function
Expose rb_zjit_jit_frame_update_references so vm.c can call into Rust
to relocate the iseq pointer during GC compaction, instead of manually
manipulating JITFrame fields in C. This keeps JITFrame field access
consolidated in Rust.
k0kubun (Takashi Kokubun)
11:26 PM Revision 9c7c28ff (git): ZJIT: Simplify cfp accessor functions in zjit.h
Remove redundant rb_zjit_enabled_p checks from rb_zjit_cfp_pc and
rb_zjit_cfp_iseq since CFP_HAS_JIT_RETURN already checks it. Rewrite
rb_zjit_cfp_has_iseq and rb_zjit_cfp_has_pc as thin wrappers around
rb_zjit_cfp_iseq and rb_zjit_cfp_pc.
k0kubun (Takashi Kokubun)
11:26 PM Revision bfcc31ab (git): ZJIT: Define JITFrame struct in C and import via bindgen
Make zjit.h the single source of truth for the JITFrame struct layout.
Remove the manual #[repr(C)] definition from jit_frame.rs and replace
it with a type alias to the bindgen-generated zjit_jit_frame.
k0kubun (Takashi Kokubun)
11:26 PM Revision 29755f4d (git): ZJIT: Move jit_return clearing from rb_set_cfp_pc into codegen
The jit_return = 0 write in rb_set_cfp_pc was only needed by ZJIT.
Move it to the codegen call site next to where iseq is also set,
making the intent clearer.
k0kubun (Takashi Kokubun)
11:26 PM Revision 59fe446e (git): ZJIT: Use bare opcode variant in iseq_may_write_block_code
Add rb_iseq_bare_opcode_at_pc which uses rb_vm_insn_addr2insn to
return the base instruction, stripping trace/zjit variants. Use it
in iseq_may_write_block_code to simplify the match arms.
k0kubun (Takashi Kokubun)
11:26 PM Revision 219f7bbf (git): ZJIT: Have JITFrame mark and update its own GC pointers
Add mark() and update_references() methods to JITFrame so GC logic
is encapsulated. Store *mut JITFrame in ZJITState to avoid unsafe
const-to-mut casts in gc.rs.
k0kubun (Takashi Kokubun)
11:26 PM Revision 984feb2b (git): ZJIT: Import JITFrame directly instead of via payload
k0kubun (Takashi Kokubun)
11:26 PM Revision c5ed7416 (git): ZJIT: Add doc comments to JITFrame and split into two constructors
Add documentation to JITFrame fields explaining their purpose and
nullability. Split JITFrame::new into new_iseq and new_cfunc
constructors to make the two distinct use cases explicit.
k0kubun (Takashi Kokubun)
11:26 PM Revision 31dba124 (git): ZJIT: Rename CFP_JIT_RETURN to CFP_HAS_JIT_RETURN
k0kubun (Takashi Kokubun)
11:26 PM Revision c8f97943 (git): ZJIT: Lightweight Frames
Co-authored-by: Alan Wu <alanwu@ruby-lang.org> k0kubun (Takashi Kokubun)
11:25 PM Revision 1b2dfdf4 (git): Fix crash report being truncated by secondary crashes (#16586)
When rb_bug() is called (e.g. from a ZJIT Rust panic), the crash report
file could be truncated and left nearly empty due to two issues:
1. The crash report file was opened with default (buffered) I/O. If
rb_vm_bugreport() triggered ...
k0kubun (Takashi Kokubun)
11:25 PM Revision 2d2351af (git): Remove unused compile options/jobs (#16583)
SYMBOL_GC removed in https://github.com/ruby/ruby/commit/2bcb155b49bb421ee82c0d5980546a5071113407
THREAD_CACHE removed in https://github.com/ruby/ruby/commit/be1bbd5b7d40ad863ab35097765d3754726bbd54
BIGNUM_DEBUG removed in https://github...
Earlopain (Earlopain _)
10:33 PM Revision cee3d5f4 (git): ZJIT: Combine two IFUNC tag guards into one
Use IntAnd + GuardBitEquals to check (block_handler & 0x3) == 0x3,
matching VM_BH_IFUNC_P() in the interpreter. Add the IntAnd HIR
instruction (placed next to IntOr) for bitwise AND on raw C integers.
k0kubun (Takashi Kokubun)
10:33 PM Revision 16e96105 (git): ZJIT: Add tests for invokeblock IFUNC specialization
Test Enumerable#map on a class with a Ruby `each` that uses `yield`.
This exercises the IFUNC block handler path in invokeblock, where
Enumerable C code creates an IFUNC wrapping the user's block.
k0kubun (Takashi Kokubun)
10:33 PM Revision 6519a774 (git): ZJIT: Specialize invokeblock for IFUNC block handlers
When profiling shows a monomorphic IFUNC block handler, emit
InvokeBlockIfunc which calls rb_vm_yield_with_cfunc directly
instead of falling back to rb_vm_invokeblock. This avoids the
interpreter dispatch overhead for the most common inv...
k0kubun (Takashi Kokubun)
10:01 PM Revision 9a3fedd3 (git): [ruby/prism] Nodoc the ripper shim
It appears in documentation on https://docs.ruby-lang.org/ under `Object::Ripper`
https://github.com/ruby/prism/commit/6c1000661c
Earlopain (Earlopain _)
09:21 PM Revision 6322acbd (git): ZJIT: Set fallback reasons at HIR construction instead of type_specialize
Move the InvokeBlockNotSpecialized, SendForwardNotSpecialized, and
InvokeSuperForwardNotSpecialized reasons from type_specialize match
arms to HIR construction, since type_specialize doesn't attempt to
specialize these instructions anyway.
k0kubun (Takashi Kokubun)
09:21 PM Revision 324ba083 (git): ZJIT: Categorize uncategorized send fallback reasons in stats
Add specific SendFallbackReason variants for InvokeBlock,
SendForward, and InvokeSuperForward instructions that previously
stayed as Uncategorized in type_specialize. Also add
SingleRactorModeRequired for paths in Send handling that fail...
k0kubun (Takashi Kokubun)
08:05 PM Revision c42a6338 (git): ZJIT: Check native stack in function_stub_hit (#16585)
When JIT-to-JIT calls hit a function stub for lazy compilation, check
if the native stack is nearly exhausted before proceeding. If so, bail
out to the interpreter instead of compiling and entering more JIT code.
This complements the ch...
k0kubun (Takashi Kokubun)
07:32 PM Feature #21852: New improved allocator function interface
I had a call with @byroot and I understand better the proposal now.
I think the proposal makes sense, but with the small tweaks proposed in https://bugs.ruby-lang.org/issues/21963#note-8 it would completely avoid allocated-but-uniniti...
Eregon (Benoit Daloze)
07:29 PM Feature #21963: A solution to completely avoid allocated-but-uninitialized objects
I realized these `init` & `copy` C function hooks could actually be done partly with the proposal in #21852, cc @byroot.
(and that solves the issue about needing more space in RClass!)
Specifically, the `rb_copy_alloc_func_t` gets the or...
Eregon (Benoit Daloze)
06:27 PM Revision ec2ff4fc (git): Remove unnecessary begin/end in do/end block in _tmpdir.rb
k0kubun (Takashi Kokubun)
06:18 PM Revision 75ac1dd6 (git): ZJIT: Recompile sends with literal blocks via exit profiling
Extend convert_no_profile_sends to handle SendNoProfiles (sends with
literal blocks), not just SendWithoutBlockNoProfiles. The match guards
against BlockArg sends since &proc forwarding can't be exit-profiled.
k0kubun (Takashi Kokubun)
06:18 PM Revision 48b7e45c (git): ZJIT: Add BlockHandler::BlockArg for &proc sends
Add a BlockArg variant to BlockHandler for sends that pass a block via
&proc (ARGS_BLOCKARG). Previously these were represented as
Some(BlockIseq(null)), requiring a normalization hack in
reduce_send_to_ccall. Now the three cases are exp...
k0kubun (Takashi Kokubun)
06:18 PM Revision ec2b2b77 (git): ZJIT: Replace blockiseq: Option<IseqPtr> with block: Option<BlockHandler>
Introduce a BlockHandler enum to represent how a block is passed to a
send-like instruction. For now it has only the BlockIseq(IseqPtr)
variant, making this a pure mechanical rename with no behavior change.
k0kubun (Takashi Kokubun)
06:03 PM Revision 93c6f97b (git): [ruby/prism] Fix -Wconversion warnings from gcc 8.5.0
https://github.com/ruby/prism/commit/6069d67d22 Eregon (Benoit Daloze)
06:03 PM Revision 400727a2 (git): [ruby/prism] Remove unused variable in tests
https://github.com/ruby/prism/commit/5bb64a246d Eregon (Benoit Daloze)
05:26 PM Revision 6035121c (git): Fix NEWS entry about Array#pack
Eregon (Benoit Daloze)
05:26 PM Revision 0e4c2a38 (git): Revert "[DOC] Describe new return value of source_location"
This reverts commit edff523407ac54b09a95a946c927656262595178. Eregon (Benoit Daloze)
05:26 PM Revision 096213b2 (git): Revert "Reapply "[Feature #6012] Extend `source_location` for end position"
This reverts commit 8f5e0d8ff82ff63d60da445826fa44be3d8d0820. Eregon (Benoit Daloze)
05:26 PM Revision 9f25970e (git): Revert "[Bug #21783] Fix documentation of {Method,UnboundMethod,Proc}#source_location"
This reverts commit 31c3bcb4818d9f62a6ad5c284f152abb40d552d0. Eregon (Benoit Daloze)
05:26 PM Revision 0ca6e5bb (git): Revert "Update version guards in ruby/spec"
This reverts commit 1d0cc4c5b376996f53ea74a8896ff10fae054252. Eregon (Benoit Daloze)
05:26 PM Revision 8ea9f63e (git): Revert "Exclude rbs tests which need updates for {Method,UnboundMethod,Proc}#source_location"
This reverts commit c161328240cd18f6e77b29fae61048fd9b7c730d. Eregon (Benoit Daloze)
05:09 PM Revision 2e753bf2 (git): Move rb_class_allocate_instance into gc.c
jhawthorn (John Hawthorn)
04:51 PM Revision 06f746fd (git): ZJIT: Skip convert_no_profile_sends on the final ISEQ version
When an ISEQ has already reached MAX_ISEQ_VERSIONS, converting
no-profile sends to SideExits is counterproductive: the exit fires
every time but can never trigger recompilation. Keep them as Send
fallbacks so the interpreter handles them...
k0kubun (Takashi Kokubun)
04:51 PM Revision d3144721 (git): ZJIT: Look up final version status dynamically
Instead of storing is_final_version as a field on Function, compute
it dynamically in convert_no_profile_sends by checking the payload's
version count against MAX_ISEQ_VERSIONS.
k0kubun (Takashi Kokubun)
04:51 PM Revision f8a9d28c (git): ZJIT: Restore test_recompile_no_profile_send test
Keep the original SideExit recompile test alongside the new
final-version test since they cover different behaviors. Remove the
intermediate HIR snapshot since hir_string() now sees the auto-compiled
version as final.
k0kubun (Takashi Kokubun)
04:31 PM Feature #6012 (Rejected): Proc#source_location also return the column
Revert PR: https://github.com/ruby/ruby/pull/16582
I'll mark this issue as rejected to reflect the revert.
Eregon (Benoit Daloze)
04:29 PM Revision 7b85b214 (git): Bump irb version to fix a flaky test
https://github.com/ruby/irb/pull/1191 k0kubun (Takashi Kokubun)
04:10 PM Revision 6b3cd487 (git): ZJIT: Check native stack before compiling ISEQs (#16576)
* ZJIT: Check native stack before compiling ISEQ
When the native/machine stack is nearly exhausted, don't compile and
enter ZJIT code. JIT-compiled code uses more native stack per call
frame than the interpreter, so falling back to the ...
k0kubun (Takashi Kokubun)
04:06 PM Feature #21966 (Closed): Remove rb_obj_class runtime check on rb_define_alloc_func returned objects
Applied in changeset commit:git|851b8f852313c361465cf760701e23db0ea4d474.
----------
Remove class alloc check
This checks that the value returned from the function registered with
rb_define_alloc_func is of the correct class. When this...
jhawthorn (John Hawthorn)
04:06 PM Revision 54d58909 (git): ZJIT: Fix profile_stack to skip block arg for ARGS_BLOCKARG sends (#16581)
For sends with ARGS_BLOCKARG (e.g. `foo(&block)`), the block arg sits
on the stack above the receiver and regular arguments. The profiling
(both interpreter and exit profiling) only records types for the
receiver and regular args (argc +...
k0kubun (Takashi Kokubun)
04:00 PM Revision 851b8f85 (git): Remove class alloc check
This checks that the value returned from the function registered with
rb_define_alloc_func is of the correct class. When this was first
introduced in 1fe40b7cc5 (by Matz on 2001-10-03), allocation was done
via user-defined Object#allocat...
jhawthorn (John Hawthorn)
03:59 PM Misc #21968 (Open): The pathname gem needs a new release
The current pathname gem release (0.4.0) has several issues:
### Many warnings on Ruby 4.0
It emits many constant & method redefinition warnings.
This happens notably when an application has `pathname` as a dependency (direct or t...
Eregon (Benoit Daloze)
03:11 PM Feature #20448: Make coverage event hooking C API public
Hi there, I finally got around to working on this idea: https://github.com/ruby/ruby/pull/16579
Let me know if there's any way I can aid in its review.
ms-tob (Matt S)
02:39 PM Revision 5eff7e0e (git): [ruby/prism] Also handle string conversion in `Ripper.lex`
In `ripper`, both go through the same converion logic.
Needed for rspec, no other failures in their own tests
https://github.com/ruby/prism/commit/510258aa2b
Earlopain (Earlopain _)
02:38 PM Revision b04586c2 (git): [ruby/prism] Implement various string start/end events for ripper
`tstring_beg` in particular is needed by `yard`.
Before:
> 1980 examples, 606 failures, 15 pending
After:
> ...
Thought it would be more, but oh well. It needs `on_sp` which I guess is why there are not many new passes
https://github....
Earlopain (Earlopain _)
09:11 AM Bug #21967 (Open): `vm_call_cfunc: cfp consistency error` while requiring `nkf.so`
I'm unfortunately unable to reproduce this consistently.
It does happen a few times a day on our production servers, and I have a few core dumps around for investigation if needed.
The crash is always while loading `nknf.so`.
I'...
byroot (Jean Boussier)
07:09 AM Revision 998e2f41 (git): [ruby/openssl] Fix potential UAF in ossl_crypto_fixed_length_secure_compare
StringValue() can invoke an object's #to_str method, which may execute
arbitrary Ruby code. If #to_str mutates the other string argument during
comparison, its buffer may be reallocated, leaving a previously obtained
RSTRING_PTR pointing...
apocalypse9949
06:45 AM Revision 8b966199 (git): [ruby/json] Fix json generation for symbols on TruffleRuby
https://github.com/ruby/json/commit/0e99fcb581 Randy Stauner
06:34 AM Revision 3588198c (git): Fix EACCES error during tmpdir cleanup on Windows (#16577)
On Windows, when a test process is killed after a timeout, the OS may
not release file/directory handles immediately. The Dir.rmdir in the
diagnostic tree-walk raises Errno::EACCES, which was unhandled, causing
the entire cleanup to abor...
k0kubun (Takashi Kokubun)
04:49 AM Revision 54593b55 (git): Regenerate Cargo.lock with targeted insta update
The previous `cargo update --manifest-path zjit/Cargo.toml` re-resolved
all dependencies, and Rust 1.84+'s MSRV-aware resolver downgraded cc
(1.2.18 -> 1.0.94) and libc (0.2.171 -> 0.2.163) to satisfy yjit's
rust-version = "1.58.0". This...
k0kubun (Takashi Kokubun)
04:00 AM Revision 415cf158 (git): Fix -Wold-style-definition warnings in cont.c
Use (void) instead of () for functions taking no parameters. k0kubun (Takashi Kokubun)
03:57 AM Revision 0c975963 (git): cargo update --manifest-path zjit/Cargo.toml
Since https://github.com/ruby/ruby/pull/16574, just running zjit-test
causes diffs in Cargo.lock.
This PR gets rid of the diff caused by zjit-test.
k0kubun (Takashi Kokubun)
02:32 AM Revision d85c6409 (git): Fix performance of fiber pool stack tests. (#16570)
Samuel Williams
02:31 AM Revision 5ffecb8c (git): Bump insta in /zjit in the jit group across 1 directory
Bumps the jit group with 1 update in the /zjit directory: [insta](https://github.com/mitsuhiko/insta).
Updates `insta` from 1.46.3 to 1.47.0
- [Release notes](https://github.com/mitsuhiko/insta/releases)
- [Changelog](https://github.co...
dependabot[bot]
12:46 AM Revision 2ebcc3ab (git): [ruby/rubygems] Revert global_cache_spec to subprocess for cross-directory config
https://github.com/ruby/rubygems/commit/7bf9971ebb
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision e0c4e8c1 (git): [ruby/rubygems] Rename config/global_config helpers to bundle_config/bundle_config_global
https://github.com/ruby/rubygems/commit/982ad09264
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision 7571a980 (git): [ruby/rubygems] Replace remaining `bundle "config set"` subprocess calls with in-process config helper
Handle interpolated values, inline calls, and old-style forms that were
missed in previous commits.
https://github.com/ruby/rubygems/commit/d3405c7fe1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision 356ae22f (git): [ruby/rubygems] Replace remaining inline `bundle "config set KEY VALUE"` with in-process config helper
https://github.com/ruby/rubygems/commit/743e4bc9ed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision 607ad194 (git): [ruby/rubygems] Replace `bundle "config set --global KEY VALUE"` subprocess with in-process global_config helper
https://github.com/ruby/rubygems/commit/1f97d646b4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision 7c658ab6 (git): [ruby/rubygems] Replace `bundle "config set --local KEY VALUE"` subprocess with in-process config helper
https://github.com/ruby/rubygems/commit/f5539440d5
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision bacf1730 (git): [ruby/rubygems] Replace `bundle "config set KEY VALUE"` subprocess with in-process config helper
https://github.com/ruby/rubygems/commit/85260feefd
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:46 AM Revision c6fb7382 (git): [ruby/rubygems] Use `bundle config set` instead of deprecated `bundle config` form in specs
https://github.com/ruby/rubygems/commit/bd78b90f64
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
12:34 AM Revision 92f15577 (git): ZJIT: Compile setblockparam (#16517)
* ZJIT: Compile setblockparam
* ZJIT: Add IntOr HIR and remove MarkBlockParamModified
* ZJIT: Use assert_compiles in codegen tests and tighten IntOr validation
- Use assert_compiles for codegen tests, except for the case that intentio...
Nozomi Hijikata

03/26/2026

11:07 PM Revision 6c1071f3 (git): [ruby/rubygems] Better algorithm for sorting gem version:
- In #9414 I introduced a fast path to compare gem version.
The implementation has a couple of caveats such as not computing
a sort key for gems having more than 4 segments
(major, minor, patch, security), as well as skipping gems ...
Edouard CHIN
10:25 PM Feature #21966 (Closed): Remove rb_obj_class runtime check on rb_define_alloc_func returned objects
I want to remove the following runtime check in `class_call_alloc_func`, replacing it with a `RUBY_ASSERT` (so we would still have the check, but only on a debug build).
```
if (rb_obj_class(obj) != rb_class_real(klass)) {
rb_ra...
jhawthorn (John Hawthorn)
09:53 PM Revision 5483bfc1 (git): Bump up to 3.2.11
hsbt (Hiroshi SHIBATA)
09:37 PM Revision 174ace6a (git): Convert K&R function definitions in configure.ac
jhawthorn (John Hawthorn)
09:28 PM Revision 6f90ca28 (git): Increase UDP nonblock test timeout to avoid CI flakes (#16569)
The 1-second Timeout.timeout for IO.select waiting on a localhost
empty UDP packet is too tight for loaded CI runners, causing spurious
Timeout::Error failures. Increase to 30 seconds, which is only a
safety net against indefinite hangs....
k0kubun (Takashi Kokubun)
09:01 PM Revision 797e0f90 (git): ZJIT: Compute stats padding from displayed entries only (#16568)
Previously, key_pad and value_pad were computed from all matching
counters before truncating to the top-N limit, causing excessive
indentation when non-displayed entries had longer names.
k0kubun (Takashi Kokubun)
07:15 PM Revision 6d4681d2 (git): [ruby/prism] Fix `Source.offsets` with `freeze: true`
We still need to do it eagerly when the result will be frozen, same
as for locations.
Fixes the following error for the added test:
> FrozenError: can't modify frozen Prism::ASCIISource: #<Prism::ASCIISource:0x00007ff9d57586f0 @source="...
Earlopain (Earlopain _)
06:37 PM Bug #21926: Thread#value on popen3 wait thread hangs in finalizer
Just for the record, this code should not hang and the fix is good, but the pattern in the reproduction isn't safe.
The defined finalizer could potentially be run on any thread including the wait_thread, which would result in the erro...
jhawthorn (John Hawthorn)
03:53 PM Revision afe5f77a (git): [ruby/json] Keep Integer#to_json optimized and adapt the test
* Redefining Integer#to_s is bound to break many things,
any non-segfault outcome should be acceptable.
So adapt the test to just ensure it does not segfault.
* Also redefining Kernel#String would also break with the previous code.
...
Eregon (Benoit Daloze)
02:34 PM Revision 4a08bb7e (git): Fix crash reporter NULL dereference with ractors (#16561)
rb_ec_ractor_ptr(ec) can return NULL when ec->thread_ptr is NULL
(e.g. when crashing from a GC free function). Dereferencing the
NULL return value crashes the bug reporter itself, causing "Crashed
while printing bug report" and losing al...
k0kubun (Takashi Kokubun)
12:46 PM Revision 788cb322 (git): Parallelize bundled gems test execution (#16513)
Run gem tests concurrently using a thread pool instead of
sequentially. Each gem test runs in its own process group with
output captured via pipes and printed in original order after
all tests complete.
Concurrency is controlled by `TES...
st0012 (Stan Lo)
12:40 PM Feature #21853: Make Embedded TypedData a public API
With the follow-ups PRs (linked by Lars above) for improving the docs and adding a (`ruby-debug`-only since it's `RUBY_ASSERT`) check for RTYPEDDATA_DATA, I'm OK with this.
It's still a bit dangerous and people using it need to be caref...
Eregon (Benoit Daloze)
11:25 AM Feature #21853: Make Embedded TypedData a public API
I found the original PR which added `RUBY_TYPED_EMBEDDABLE` very readable and expressive: https://github.com/ruby/ruby/pull/7440/changes
It allowed me understand and use the feature in swig and fxruby without any docs.
With the latest ...
larskanis (Lars Kanis)
09:47 AM Revision 768a6cfb (git): [ruby/rubygems] Update SPDX license list as of 2026-02-20
https://github.com/ruby/rubygems/commit/b29d554643 License Update
09:07 AM Revision f46743a4 (git): [ruby/rubygems] Move SimpleCov setup before test-unit to fix at_exit ordering
SimpleCov and test-unit both use at_exit hooks, which Ruby executes
in LIFO order. When SimpleCov was loaded after test-unit, its at_exit
hook fired first — before tests had run — producing a spurious
"Coverage report generated" message ...
hsbt (Hiroshi SHIBATA)
08:58 AM Bug #21964 (Closed): Fiber stack acquire can expand unnecessarily
Applied in changeset commit:git|7c8762a93f7083566ee6695368da1487fa35fd4e.
----------
Run GC if fiber pool expansion fails. (#16535)
[Bug #21964]
Anonymous
08:57 AM Revision 7c8762a9 (git): Run GC if fiber pool expansion fails. (#16535)
[Bug #21964] Samuel Williams
08:54 AM Bug #21965 (Closed): cross compile with out-of-source build is broken
cross compile with out-of-source build is broken since 14th March.
I created simple cross-compile workflow with out-of-source build at https://github.com/ruby/ruby/pull/16545 because our CI suite is not covered that case.
`ruby_4_0...
hsbt (Hiroshi SHIBATA)
08:41 AM Revision 8a13a52f (git): [ruby/rubygems] Skip flaky test_with_webauthn_enabled_failure on TruffleRuby in TestGemCommandsOwnerCommand
https://github.com/ruby/rubygems/commit/924cf41d11
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
08:39 AM Bug #21958: Snapshot CI is breaking now
Thanks! I confirmed that. hsbt (Hiroshi SHIBATA)
08:27 AM Revision 940d985f (git): [ruby/rubygems] Register native extension files in default spec map
Default gem gemspecs list native extension files (e.g. date_core.bundle)
without the require path prefix (lib/). In new_format mode,
register_default_spec skipped these files because they didn't match the
prefix pattern, causing find_def...
hsbt (Hiroshi SHIBATA)
07:27 AM Revision c5ab2114 (git): Fix test_thread_join_during_finalizers failure on mmtk GC (#16559)
In mmtk, finalizers are registered as postponed jobs
(rb_postponed_job_preregister) rather than running inline during GC
as with the default GC. Postponed jobs can execute on any Ruby thread
that checks for pending jobs, not just the thr...
k0kubun (Takashi Kokubun)
06:57 AM Revision 102cb81f (git): ZJIT: Include locals in NoEPEscape PatchPoint side exits (#16558)
ZJIT: Invalidate ISEQ version on EP escape
NoEPEscape PatchPoint side exits use without_locals() to avoid
overwriting locals that may have been modified externally (e.g., by
eval or instance_eval). This is correct when the PatchPoint fi...
k0kubun (Takashi Kokubun)
06:32 AM Revision 742ec350 (git): [ruby/json] Avoid method redefinition warnings in test_broken_bignum
https://github.com/ruby/json/commit/d0b47b0011 byroot (Jean Boussier)
06:32 AM Revision 95b6f2c6 (git): [ruby/json] test_broken_bignum: avoid fork and subprocess for robustness
The raw fork + Process.waitpid2 pattern causes a SEGV on i686-linux in
ruby/ruby CI. The crash occurs in waitpid_blocking_no_SIGCHLD going
through the 32-bit vdso, which is a Ruby VM / kernel interaction issue
unrelated to the json gem i...
k0kubun (Takashi Kokubun)
05:45 AM Revision 4032e6d9 (git): [ruby/json] Generate non-frozen strings on TruffleRuby for consistency
https://github.com/ruby/json/commit/c76b244029 Randy Stauner
04:25 AM Revision a53b3fd2 (git): Suppress warnings at Apple clang 21.0.0
`RBIMPL_COMPILER_SINCE(Clang)` excludes Apple clang. Use simply
`__clang_major__` instead.
nobu (Nobuyoshi Nakada)
04:25 AM Revision cdb1a429 (git): Get rid of using GNU sed extension `T`
nobu (Nobuyoshi Nakada)
03:31 AM Revision a35f8a14 (git): [ruby/did_you_mean] [DOC] Fix links
https://github.com/ruby/did_you_mean/commit/0b35da6496 burdettelamar (Burdette Lamar)
02:58 AM Revision 5796bc37 (git): use a hint avoid the optimistic sched lock drop/reacquire
jpl-coconut (Jacob Lacouture)
02:58 AM Revision ddb8d353 (git): Give the hot thread scheduler priority
jpl-coconut (Jacob Lacouture)
02:23 AM Revision d241be17 (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.69.9 to 2.69.10
- [Release notes](https://github.com/taiki-e/...
dependabot[bot]
12:44 AM Revision eb805118 (git): test/socket: rescue Errno::ENOBUFS in test_udp_server (#16553)
The server thread's msg_src.reply can raise Errno::ENOBUFS
("No buffer space available") transiently on macOS CI. This
exception was not caught, propagating through th.join in the
ensure block and failing the test.
Rescue it in the serv...
k0kubun (Takashi Kokubun)
12:05 AM Revision 1f2d1512 (git): Bump up to 3.3.11
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom