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 `... -
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... -
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,... -
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... -
09:46 AM Bug #21977 (Assigned): Ruby::Box crash with `RUBY_BOX=1` via `Binding` refinement, `UnboundMethod#bind_call`, and `Symbol#to_proc`
-
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... -
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... -
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... -
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... -
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... -
07:26 AM Revision 54ce9113 (git): [ruby/rubygems] Reverse to use attestation condition
- https://github.com/ruby/rubygems/commit/ea1f43c4ae
-
07:26 AM Revision d2f9872e (git): [ruby/rubygems] Omit tests of auto-attestation with JRuby
- https://github.com/ruby/rubygems/commit/543ac52412
- 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> - 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> -
07:26 AM Revision e35eaf56 (git): [ruby/rubygems] Added test for auto-attestation
- https://github.com/ruby/rubygems/commit/df2bdde8e5
- 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> -
07:26 AM Revision 2041c877 (git): [ruby/rubygems] Refactor push request to support attestations
- https://github.com/ruby/rubygems/commit/74924da660
-
07:26 AM Revision a9b8d47d (git): [ruby/rubygems] Merge rubygems-attestation-patch.rb from rubygems/release-gem
- https://github.com/ruby/rubygems/commit/64f085f5ee
-
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] -
07:10 AM Revision 53099633 (git): Make `ruby_xfree_sized` and `ruby_xrealloc_sized` public
- [Feature #21861]
-
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...
-
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−")? -
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... -
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-... -
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) ... -
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... -
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... -
04:20 AM Revision 2477916e (git): pty: Fix missing arguments
-
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`. - 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... -
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 ... -
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...
-
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/... - 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 -
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... -
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... -
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. -
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. -
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. -
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
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... - 11:32 PM Revision 78f11bde (git): ZJIT: Support VM_OPT_NEWARRAY_SEND_PACK (#16596)
-
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?
-
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.
-
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}" # =>... -
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...
-
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. -
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. -
09:48 PM Revision c9ae44e1 (git): set: fix Set#to_set block behavior and add regression test
-
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)
-
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 - 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.
-
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? -
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
... -
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 ... - 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... -
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/... -
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 ... -
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 -
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... - 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... - 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... - 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... -
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 ... -
04:06 AM Revision f41c1941 (git): pty: Prefer FD-base operations if available
-
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... -
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> -
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> -
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> -
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.... -
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... -
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) <... -
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> - 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... -
01:27 AM Revision 1da540ae (git): Invalidate CC on cme free as well
-
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. -
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... -
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. -
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
-
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...
03/30/2026
-
11:39 PM Revision 34c94b31 (git): [DOC] Fix formatting in IO
- Colon should be outside of the code.
-
11:10 PM Revision 72f309fe (git): [DOC] Doc for Pathname class (#16352)
-
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. -
08:09 PM Revision d368d42e (git): ZJIT: Skip TestOpenURIProxy on Linux (#16606)
- Same random SystemStackError as TestOpenURI and TestOpenURISSL.
- 07:28 PM Revision 89133221 (git): Run GC if fiber pool expansion fails. (#16535)
- [Bug #21964]
- 07:26 PM Revision 714b4b54 (git): ZJIT: Compile modified path in getblockparamproxy (#16573)
- ZJIT: Avoid side exits on modified getblockparamproxy
-
06:57 PM Revision 258c6b0b (git): Update debug.gem sha to fix random failures
- https://github.com/ruby/debug/pull/1174
-
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. -
04:55 PM Revision c8976131 (git): cargo update --manifest-path zjit/Cargo.toml
-
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. - 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... -
04:28 PM Revision 33b9d2ab (git): ZJIT: Skip TestOpenURI and TestOpenURISSL (#16603)
-
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. -
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... -
01:14 PM Revision ae9b60f1 (git): [Feature #19107] parse.y: Allow trailing comma in method signature
-
12:33 PM Revision 5b83468b (git): Adjust indent [ci skip]
-
12:31 PM Revision 05428c8e (git): ZJIT: Remove side-exit locations dump after test
-
11:31 AM Revision 3fd1be95 (git): Introduce GC.stat_heap(:heap_allocatable_slots)
-
11:31 AM Revision db1a23fb (git): Remove unused minimum_slots_for_heap function
-
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... -
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... -
09:20 AM Bug #21970: Corrupted `ciobj->operands` in `compile.c: optimize_checktype`
- Is it possible to inspect the contents of `*iobj` and `*ciobj`?
-
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... -
10:10 AM Revision cbd8fac4 (git): win32: Escape macros in intermediate makefiles
-
09:45 AM Revision 80aea31e (git): Skip implicit rule for .rbinc when BASERUBY is unavailable
-
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... -
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. -
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...
-
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...
- 05:34 AM Revision 3379c7ef (git): [ruby/rubygems] Restore rb_sys dependency for Rust
- https://github.com/ruby/rubygems/commit/7cd3b9a08a
-
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.
- 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/... -
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> -
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... -
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>
-
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>
-
01:10 AM Revision 2329ca1d (git): Revert generating sources in make-snapshot
03/29/2026
-
03:34 PM Revision 01e4a827 (git): Fall back writing prism sources to the current directory
-
03:34 PM Revision 4e3625fb (git): Add rule for dummy config.h
-
03:33 PM Revision 2cefc23a (git): Update rbinc files for snapshots
-
03:33 PM Revision 58f324d3 (git): Update prism sources before dump_ast
-
03:33 PM Revision 09a314d7 (git): Update prereq.status
-
03:33 PM Revision 353dca47 (git): Clean the build tool
-
03:33 PM Revision 70f5f861 (git): Distinguish the executable suffixes
- Build and target executable suffixes are unrelated in
cross-compilation. -
02:14 PM Revision ee2c1528 (git): Fix `dump_ast` build for cross-compiling
-
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... - 05:57 AM Revision f9175a9e (git): Ensure safe handling of `IO::Buffer#hexdump` width. (#16593)
-
01:14 AM Revision 843bb9b7 (git): Exclude StringScanner implementation for TruffleRuby
-
12:05 AM Revision b3a3b94b (git): [ruby/strscan] [DOC] Undoc unused constants
- https://github.com/ruby/strscan/commit/1d85632f2a
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... -
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... -
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... -
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. -
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
...
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. -
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. -
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. -
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_... -
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. -
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. -
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. -
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. -
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. -
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. -
11:26 PM Revision 984feb2b (git): ZJIT: Import JITFrame directly instead of via payload
-
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. -
11:26 PM Revision 31dba124 (git): ZJIT: Rename CFP_JIT_RETURN to CFP_HAS_JIT_RETURN
-
11:26 PM Revision c8f97943 (git): ZJIT: Lightweight Frames
- Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
-
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 ... -
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... -
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. -
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. -
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... -
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 -
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. -
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... -
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... -
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... -
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... -
06:27 PM Revision ec2ff4fc (git): Remove unnecessary begin/end in do/end block in _tmpdir.rb
-
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. -
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... -
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. -
06:03 PM Revision 93c6f97b (git): [ruby/prism] Fix -Wconversion warnings from gcc 8.5.0
- https://github.com/ruby/prism/commit/6069d67d22
-
06:03 PM Revision 400727a2 (git): [ruby/prism] Remove unused variable in tests
- https://github.com/ruby/prism/commit/5bb64a246d
-
05:26 PM Revision 6035121c (git): Fix NEWS entry about Array#pack
-
05:26 PM Revision 0e4c2a38 (git): Revert "[DOC] Describe new return value of source_location"
- This reverts commit edff523407ac54b09a95a946c927656262595178.
-
05:26 PM Revision 096213b2 (git): Revert "Reapply "[Feature #6012] Extend `source_location` for end position"
- This reverts commit 8f5e0d8ff82ff63d60da445826fa44be3d8d0820.
-
05:26 PM Revision 9f25970e (git): Revert "[Bug #21783] Fix documentation of {Method,UnboundMethod,Proc}#source_location"
- This reverts commit 31c3bcb4818d9f62a6ad5c284f152abb40d552d0.
-
05:26 PM Revision 0ca6e5bb (git): Revert "Update version guards in ruby/spec"
- This reverts commit 1d0cc4c5b376996f53ea74a8896ff10fae054252.
-
05:26 PM Revision 8ea9f63e (git): Revert "Exclude rbs tests which need updates for {Method,UnboundMethod,Proc}#source_location"
- This reverts commit c161328240cd18f6e77b29fae61048fd9b7c730d.
-
05:09 PM Revision 2e753bf2 (git): Move rb_class_allocate_instance into gc.c
-
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... -
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. -
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. -
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. -
04:29 PM Revision 7b85b214 (git): Bump irb version to fix a flaky test
- https://github.com/ruby/irb/pull/1191
-
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 ... -
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... -
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 +... -
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... -
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... -
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. -
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 -
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.... -
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'... - 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... - 06:45 AM Revision 8b966199 (git): [ruby/json] Fix json generation for symbols on TruffleRuby
- https://github.com/ruby/json/commit/0e99fcb581
-
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... -
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... -
04:00 AM Revision 415cf158 (git): Fix -Wold-style-definition warnings in cont.c
- Use (void) instead of () for functions taking no parameters.
-
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. - 02:32 AM Revision d85c6409 (git): Fix performance of fiber pool stack tests. (#16570)
- 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... -
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> -
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> -
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> -
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> -
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> -
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> -
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> -
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> - 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...
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 ... -
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... -
09:53 PM Revision 5483bfc1 (git): Bump up to 3.2.11
-
09:37 PM Revision 174ace6a (git): Convert K&R function definitions in configure.ac
-
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.... -
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. -
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="... -
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... -
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.
... -
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... -
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... -
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... -
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 ... - 09:47 AM Revision 768a6cfb (git): [ruby/rubygems] Update SPDX license list as of 2026-02-20
- https://github.com/ruby/rubygems/commit/b29d554643
-
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 ... -
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] - 08:57 AM Revision 7c8762a9 (git): Run GC if fiber pool expansion fails. (#16535)
- [Bug #21964]
-
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... -
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> -
08:39 AM Bug #21958: Snapshot CI is breaking now
- Thanks! I confirmed that.
-
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... -
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... -
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... -
06:32 AM Revision 742ec350 (git): [ruby/json] Avoid method redefinition warnings in test_broken_bignum
- https://github.com/ruby/json/commit/d0b47b0011
-
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... - 05:45 AM Revision 4032e6d9 (git): [ruby/json] Generate non-frozen strings on TruffleRuby for consistency
- https://github.com/ruby/json/commit/c76b244029
-
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. -
04:25 AM Revision cdb1a429 (git): Get rid of using GNU sed extension `T`
-
03:31 AM Revision a35f8a14 (git): [ruby/did_you_mean] [DOC] Fix links
- https://github.com/ruby/did_you_mean/commit/0b35da6496
-
02:58 AM Revision 5796bc37 (git): use a hint avoid the optimistic sched lock drop/reacquire
-
02:58 AM Revision ddb8d353 (git): Give the hot thread scheduler priority
- 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/... -
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... -
12:05 AM Revision 1f2d1512 (git): Bump up to 3.3.11