Project

General

Profile

Activity

From 03/12/2026 to 03/18/2026

Today

05:44 PM Revision b2fc406a (git): ZJIT: Remove rb_zjit_writebarrier_check_immediate
Max Bernstein
05:44 PM Revision 35b9f9dc (git): ZJIT: Don't call write barrier if the object is an immediate
In addition to compile-time knowledge, we can also (now that the global
regalloc has landed) check at run time if the value being stored is a
heap object.
Max Bernstein
05:27 PM Revision 896e5c48 (git): Update default gems list at e74e3e1120871023c85d1d1afd7070 [ci skip]
git[bot]
05:26 PM Revision e74e3e11 (git): [ruby/json] Release 2.19.2
https://github.com/ruby/json/commit/54f8a878ae byroot (Jean Boussier)
05:19 PM Revision 0636592a (git): [ruby/json] Fix a format string injection vulnerability
In `JSON.parse(doc, allow_duplicate_key: false)`.
https://github.com/ruby/json/commit/393b41c3e5
byroot (Jean Boussier)
04:19 PM Revision 00a31a46 (git): ZJIT: Set up Launchable for ZJIT CI jobs (#16444)
k0kubun (Takashi Kokubun)
04:14 PM Revision fc480c1c (git): ZJIT: Increase SYNTAX_SUGGEST_TIMEOUT for ZJIT CI from 5 to 30 (#16443)
ZJIT CI runs with --zjit-call-threshold=1 which JIT-compiles every
function on first call, adding significant overhead. The 5-second
timeout for test-syntax-suggest's "does not timeout on massive files"
test is too tight under this confi...
k0kubun (Takashi Kokubun)
03:37 PM Feature #21932: `MatchData#get_int`
Thanks for the explanations.
naruse (Yui NARUSE) wrote in #note-9:
> In this use case, interpreting "0x" prefix is not useful
It could be useful, but one could workaround that with `/0x(\h+)/` instead of `/(0x\h+)/`.
Leading 0 (octal)...
Eregon (Benoit Daloze)
10:09 AM Feature #21932: `MatchData#get_int`
Eregon (Benoit Daloze) wrote in #note-8:
> I think returning 0 when the group isn't parseable as a number seems bad behavior.
> ...
There is two reason:
1. there are two major method to parse integer in Ruby: to_i and Integer().
*...
naruse (Yui NARUSE)
08:37 AM Feature #21932: `MatchData#get_int`
I think returning 0 when the group isn't parseable as a number seems bad behavior.
At least if I would use this method, I would expect two things of it:
* It returns the Integer value of that group, without needing `Integer($N)`
* I...
Eregon (Benoit Daloze)
02:44 AM Feature #21932: `MatchData#get_int`
Here is a supplement to Matz's decision.
This method will basically follow the behavior of `String#to_i`.
The base can be specified as the second argument:
```ruby
"2024" =~ /(\d+)/
$~.integer_at(1) # => 2024 (default: bas...
mame (Yusuke Endoh)
01:27 PM Revision 5c92d3f9 (git): [ruby/rubygems] Lock the checksum of Bundler itself in the lockfile:
- ### Problem
With the Bundler autoswitch feature, system Bundler may install
a `bundler.gem` that matches the Gemfile.lock.
The `bundler.gem` that gets downloaded is like any other gems,
but its treated differently (it doesn't ...
Edouard CHIN
12:59 PM Feature #20215: Introduce `IO#readable?`
Id like to second this idea. The incorrect usage of eof? in the net-http lib has caused many debugging hours. Right now there is a long-standing bug in net-http that was very tricky to find due to the ambiguous nature of eof?. Some detai... dotconfig404 (Friedrich Raschwitz)
12:23 PM Revision 02982ef5 (git): Manually sync prism
Earlopain (Earlopain _)
11:37 AM Revision 3b828ab9 (git): [ruby/rubygems] Store the version of git at the class level:
- ### Problem
For each git gems in a Gemfile a new Git source object is
instantiated. Each git source will make a system call to check the
version of git. This is inefficient and we lose ~50ms on each system
calls.
### Soluti...
Edouard CHIN
10:55 AM Revision 45dbc5a4 (git): [ruby/rubygems] Update the `bundle config --help` man page:
- Clarify what `BUNDLE_JOB` is used for and that it affects the
number of parallel downloads.
https://github.com/ruby/rubygems/commit/36f572b4db
Edouard CHIN
10:55 AM Revision a0efe151 (git): [ruby/rubygems] Normalize the number of workers:
- ### Problem
I'd like to normalize the number of workers when downloading gems
and use the `BUNDLE_JOBS` configuration (or default to
`Etc.nprocessors`).
Right now the number of workers when doing parallel work seems a bit
ra...
Edouard CHIN
09:43 AM Revision 8b147ba5 (git): [ruby/prism] Fix assignments
(https://github.com/ruby/prism/pull/4012)
Useless comparisons, probably typos.
https://github.com/ruby/prism/commit/7c1927efd6
nobu (Nobuyoshi Nakada)
07:58 AM Revision cadc6196 (git): [ruby/rubygems] Fix uninstall_gem to set GEM_HOME instead of install_dir
Gem::Uninstaller with install_dir uses File.realpath for @gem_home but
not for the specification_record path lookup, causing path mismatches
on some CI environments. Instead, temporarily set GEM_HOME and call
Gem.clear_paths to mimic the...
hsbt (Hiroshi SHIBATA)
07:58 AM Revision 3385f318 (git): [ruby/rubygems] Use env shebang for in-process gem installation wrappers
With load_relative enabled (ruby-core CI), Gem::Installer generates
wrapper scripts with a bash prolog (#!/bin/sh) when wrappers: true is
set. Bundler's directly_loadable? only recognizes Ruby shebangs, so
these shell wrappers cause "com...
hsbt (Hiroshi SHIBATA)
07:58 AM Revision 77d6f3af (git): [ruby/rubygems] Simulate platform for in-process gem installation
When install_gem runs Gem::Installer in-process, BUNDLER_SPEC_PLATFORM
is not applied because hax.rb only runs in subprocesses. Add
with_simulated_platform helper that mirrors hax.rb's platform override
for in-process operations, and res...
hsbt (Hiroshi SHIBATA)
07:58 AM Revision 69773de5 (git): [ruby/rubygems] Refactor rspec gem command to use new helper methods for uninstalling and listing installed gems
https://github.com/ruby/rubygems/commit/185964f9b1 Colby Swandale
07:22 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
> We usually don't backport performance improvements, but I think we should make an exception.
IMO the performance degradation is severe enough that I consider it a bug, and that is why I marked it for backport. So I don't really see ...
byroot (Jean Boussier)
12:12 AM Bug #21856 (Closed): Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
I merged my proposed design, which should restore Ruby 3.4's performance https://github.com/ruby/ruby/pull/16363 (forgot to tag this issue in the commit message, sorry)
I'm going to look into backporting this to Ruby 4.0. We usually d...
jhawthorn (John Hawthorn)
06:31 AM Feature #21951: Lazy load error extension gems to speed up boot time
Some libraries implicitly depend on `did_you_mean` and other gems being loaded at boot, calling their class methods (e.g., `DidYouMean::SpellChecker`) without an explicit `require`.
I tried to switch from a simple deferred `require` a...
hsbt (Hiroshi SHIBATA)
04:53 AM Revision 95af0867 (git): ZJIT: Inline String#!= by negating String#== (#16391)
Looking at the profiling results below, we can likely inline `String#!=` similarly to how we already handle `Integer` (and some `BasicObject#!=` cases).
As Max mentioned in [the original issue](https://github.com/Shopify/ruby/issues/884...
Nozomi Hijikata
04:31 AM Revision 8581ba91 (git): Fix race condition in test_condvar_wait_and_broadcast (#16442)
Replace `sleep 0.1` with `Thread.pass until threads.all?(&:stop?)`
to ensure all worker threads have entered `condvar.wait` before
broadcasting. The fixed sleep was insufficient on slow CI environments
(e.g. Windows 2025), causing broadc...
k0kubun (Takashi Kokubun)
04:24 AM Revision 314c5fd0 (git): auto_review_pr: Add a workflow_dispatch trigger
k0kubun (Takashi Kokubun)
04:19 AM Revision 283d6cba (git): auto_review_pr: Avoid leaving a review on dependabot PRs
k0kubun (Takashi Kokubun)
04:17 AM Revision f9e852d9 (git): auto_review_pr: suggest re-filing PRs from fork branches (#16446)
PRs filed from branches in ruby/ruby (rather than forks) make it
harder to manage the bi-directional mirror with git.ruby-lang.org.
Add an auto-review comment asking contributors to re-file from a fork.
Refactor #review into separate me...
k0kubun (Takashi Kokubun)
04:09 AM Revision d803c1d1 (git): ZJIT: Assert that `out` doesn't use MemBase::StackIndirect
k0kubun (Takashi Kokubun)
04:09 AM Revision 0368760d (git): ZJIT: Stop passing scratch reg for lowering out in x86_64
k0kubun (Takashi Kokubun)
03:54 AM Revision c1d4caa4 (git): [ruby/rubygems] Prevent tests from modifying user's global git config
Set GIT_CONFIG_GLOBAL and GIT_CONFIG_NOSYSTEM environment variables
in the test suite setup to isolate git configuration when Git >= 2.32
is available. This prevents test runs from accidentally polluting the
developer's real git config.
...
hsbt (Hiroshi SHIBATA)
03:54 AM Revision dfd51c4c (git): [ruby/rubygems] Add git version filter for spec metadata
Use RequirementChecker to filter specs tagged with git version
requirements (e.g., `git: ">= 2.28.0"`), matching the existing
pattern used for rubygems version filtering.
https://github.com/ruby/rubygems/commit/d157405217
Co-Authored-B...
hsbt (Hiroshi SHIBATA)
02:38 AM Revision 9dc87b19 (git): Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `ruby/setup-ruby` from 1.294.0 to ...
dependabot[bot]
02:36 AM Misc #21956: DevMeeting-2026-05-13
Note: This is the ticket for the meeting scheduled *after* the dev meeting co-located with RubyKaigi (2026-04-21). Until then, please list agenda items on https://bugs.ruby-lang.org/issues/21916. mame (Yusuke Endoh)
02:34 AM Misc #21956 (Open): DevMeeting-2026-05-13
# The next dev meeting
**Date: 2026/05/13 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o...
mame (Yusuke Endoh)
02:32 AM Misc #21877 (Closed): DevMeeting-2026-03-17
The next dev meeting will be held in-person, co-located with RubyKaigi. See https://bugs.ruby-lang.org/issues/21916 mame (Yusuke Endoh)
02:12 AM Revision 41978d83 (git): [ruby/rubygems] Fix and improve tests for source URI trailing slash normalization
- Fix setup_fake_source double-slash bug: normalize URI before
registering spec data to prevent URL mismatch in load_specs
- Fix test_execute_add/append_https_rubygems_org: these tests were
incorrectly expecting TermError due to the ...
hsbt (Hiroshi SHIBATA)
02:12 AM Revision c8c57592 (git): [ruby/rubygems] Refactor source URI normalization in sources command
- Rename add_trailing_slash to normalize_source_uri to better reflect
that it also removes duplicated trailing slashes
- Extract build_source and build_new_source to eliminate duplicated
source creation pattern across add_source, app...
hsbt (Hiroshi SHIBATA)
02:12 AM Revision 63818352 (git): [ruby/rubygems] spec: Add missing bad uri test for prepend for gem sources
https://github.com/ruby/rubygems/commit/376bcdf430 Matthias Zirnstein
02:12 AM Revision ec7bdd63 (git): [ruby/rubygems] fix: Ensure trailing slash is added to source URIs added via gem sources
GitHub's private gem registry expects the first path segment after the host
to represent the namespace, typically the organization or user name. [1]
When adding a source with
```
gem sources --add https://user:password@rubygems.pkg.gi...
Matthias Zirnstein
12:44 AM Revision 2ebe39fd (git): Revert "Update bundled_gems"
This reverts commit f6201015a95b86c1b7eb4ce6a3febfade4779ac2. hsbt (Hiroshi SHIBATA)
12:15 AM Revision 7f30233f (git): [DOC] Update bundled gems list at f6201015a95b86c1b7eb4ce6a3febf
git[bot]
12:07 AM Revision f6201015 (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)

03/17/2026

11:27 PM Bug #21824: performance regression in regexp matching after update to 4.0
@khasinski Looks like this was not backported to the branch from which 4.0.1/4.0.2 were packaged?… :\ mackuba (Kuba Suder)
11:07 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
> Nokogiri has a "decorator" feature
I figured as much when I investigated the problem. Now that John found a fix, it will probably be back to OK performance in 4.0.3, but I think it would be valuable to find a better API in Nokogiri...
byroot (Jean Boussier)
10:25 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
👋 I'm the maintainer of Nokogiri and Loofah.
Nokogiri has a "decorator" feature that allows modules to be mixed into node objects dynamically. When a document has decorators registered, Nokogiri calls `node.extend(mod)` on each `Node`...
mdalessio (Mike Dalessio)
09:37 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
byroot (Jean Boussier) wrote in #note-1:
> I'm able to repro on my machine, even though the different isn't quite as bad (more like 30% slower).
> ...
We have just encountered this issue ourselves and while it is indeed not quite bad o...
mar21 (Martin Halfar)
09:56 PM Feature #21869: Add receive_all Method to Ractor API for Message Batching
ko1 (Koichi Sasada) wrote in #note-8:
> If it returns `[]` always, I think we don't need to introduce it.
I've updated pr. The limit parameter behaves as fallow:
1. ```limit == nil```: returns all messages in the queue, or blocks if...
synacker (Mikhail Milovidov)
10:18 AM Feature #21869: Add receive_all Method to Ractor API for Message Batching

ko1 (Koichi Sasada) wrote in #note-8:
> For this purpose, it is possible to introduce another parameter such as `timeout: 0`.
> ...
LGTM, I’ll update the PR with this suggestion.
synacker (Mikhail Milovidov)
09:42 PM Revision a2531ba2 (git): Simplify subclasses list, remove from Box
Currently we maintain the subclasses list for two separate purposes (we essentially have to different relationships we're putting into the same list):
1. On a T_MODULE, we track the T_ICLASSes created to include it into
other classes...
jhawthorn (John Hawthorn)
09:38 PM Revision 563fc855 (git): YJIT: [DOC] Fix `RubyVM::YJIT.runtime_stats` symbols
Reported-by: Koichi Sasada <ko1@atdot.net> alanwu (Alan Wu)
09:20 PM Revision b5432bdb (git): [ruby/rubygems] Fix retry spec to restore default_base_delay for backoff test
The "is enabled by default with 1 second base delay" test relies on
default_base_delay being 1.0, but spec_helper sets it to 0 globally.
Temporarily restore it to 1.0 within the test.
https://github.com/ruby/rubygems/commit/427525d4a6
...
hsbt (Hiroshi SHIBATA)
09:20 PM Revision eeda69b3 (git): [ruby/rubygems] Add exponential backoff to bundler retries
https://github.com/ruby/rubygems/commit/bbaad86665 Christian Bruckmayer
09:02 PM Feature #21858: `Kernel#Hash` considers `to_h` too
matz (Yukihiro Matsumoto) wrote in #note-9:
> Feeding `Hash()` with a method that may raise depending on runtime content makes the function less predictable, not more.
It's important to note that this is **already the case**; if you pas...
Dan0042 (Daniel DeLorme)
08:19 AM Feature #21858 (Feedback): `Kernel#Hash` considers `to_h` too
The consistency argument is noted, but I have reservations about
introducing `to_h` into `Hash()`.
Unlike `to_ary`/`to_a` or `to_int`/`to_i`, `to_h` has an unusual
property: it is defined on Enumerable and Array, but whether it
suc...
matz (Yukihiro Matsumoto)
06:33 PM Revision b7e4d57a (git): ZJIT: linear scan register allocator (#16295)
* add rpo to LIR cfg
* add instruction ids to instructions along with start / end indexes on blocks
* Analyze liveness of vregs
* We don't need to check kill set before adding to gen set
Since we're processing instructions in reverse...
tenderlovemaking (Aaron Patterson)
05:20 PM Revision f7816b05 (git): win32/configure.bat: Add `--with-dump-ast` option
nobu (Nobuyoshi Nakada)
05:20 PM Revision af85de87 (git): Do not update the `dump_ast` specified in the `configure` options
nobu (Nobuyoshi Nakada)
04:35 PM Revision 968b999f (git): [PRISM] Fix ASAN reading off end of strpbrk cache
kddnewton (Kevin Newton)
04:00 PM Revision 2709a3dd (git): Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
[Bug #21955] Samuel Williams
03:29 PM Bug #21955: `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
backport PR for 4.0: https://github.com/ruby/ruby/pull/16422
rwstauner (Randy Stauner)
09:19 AM Bug #21955 (Closed): `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
Applied in changeset commit:git|dc1777d01770ab62ec99ff6fa4cf622098f44968.
----------
Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
[Bug #21955]
Anonymous
09:17 AM Bug #21955 (Closed): `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
When a fiber terminates (falls off the end of its block, or raises an unhandled exception) after being reached via `Fiber#transfer`, its machine stack is **not** returned to the fiber pool. The stack is only freed when the `Fiber` object... ioquatix (Samuel Williams)
03:17 PM Feature #19315: Lazy substrings in CRuby
FWIW, `StringValueCStr()` already exists and checks for no `\0` bytes and implies a terminating `\0`.
It still seems too risky to change `RSTRING_PTR()` to not terminate though.
FWIW, TruffleRuby already has lazy substrings and alway...
Eregon (Benoit Daloze)
03:14 PM Revision 5026acfb (git): Do not use GCC-specific syntax for lookup tables
kddnewton (Kevin Newton)
03:14 PM Revision ec3162ca (git): Fix infinite loop in parser_lex_magic_comment
kddnewton (Kevin Newton)
03:14 PM Revision e09ca77b (git): Update depend with new Prism structure
kddnewton (Kevin Newton)
03:14 PM Revision 84611ce5 (git): Update constant pool API calls
kddnewton (Kevin Newton)
03:14 PM Revision 677286e4 (git): [ruby/prism] Ensure allocations to the constant pool are through the arena
https://github.com/ruby/prism/commit/f5ae7b73ee kddnewton (Kevin Newton)
03:14 PM Revision c133e047 (git): [ruby/prism] More correctly detect SIMD on MSVC
https://github.com/ruby/prism/commit/5fe0448219 kddnewton (Kevin Newton)
03:14 PM Revision 9d820466 (git): [ruby/prism] Fix up rebase errors
https://github.com/ruby/prism/commit/b2658d2262 kddnewton (Kevin Newton)
03:14 PM Revision bf33d7f1 (git): [ruby/prism] Cache strpbrk lookup tables
https://github.com/ruby/prism/commit/46656b2fd5 kddnewton (Kevin Newton)
03:14 PM Revision 169ba06f (git): [ruby/prism] Use a bloom filter to quickly reject local lookups
https://github.com/ruby/prism/commit/fc0ec4c9f4 kddnewton (Kevin Newton)
03:14 PM Revision 9a76883f (git): [ruby/prism] Fix a bug where we removed the \r warning
https://github.com/ruby/prism/commit/559f24fae0 kddnewton (Kevin Newton)
03:14 PM Revision 0666ceab (git): [ruby/prism] SIMD/SWAR for strpbrk
https://github.com/ruby/prism/commit/c464b298aa kddnewton (Kevin Newton)
03:14 PM Revision 120c9ed2 (git): [ruby/prism] Include string in constant pool entry to avoid chasing pointer
https://github.com/ruby/prism/commit/dcb2e8c924 kddnewton (Kevin Newton)
03:14 PM Revision c746def2 (git): [ruby/prism] Optimize constant pool hash for short strings
https://github.com/ruby/prism/commit/a52c2bd2c0 kddnewton (Kevin Newton)
03:14 PM Revision 65518643 (git): [ruby/prism] Only dispatch to lex_optional_float_suffix when it is possible
https://github.com/ruby/prism/commit/2a1dc7930e kddnewton (Kevin Newton)
03:14 PM Revision f042a3c2 (git): [ruby/prism] Lex simple integer values as we are lexing
https://github.com/ruby/prism/commit/20e626ada5 kddnewton (Kevin Newton)
03:14 PM Revision 5ea721f6 (git): [ruby/prism] Inline three more functions, and lower the hash threshold for locals
https://github.com/ruby/prism/commit/fbcd3fc69e kddnewton (Kevin Newton)
03:14 PM Revision 45f76d2d (git): [ruby/prism] Potentially skip whitespace scanning for speed
https://github.com/ruby/prism/commit/b5b88bae80 kddnewton (Kevin Newton)
03:14 PM Revision 648d46b0 (git): [ruby/prism] Avoid redundant whitespace scanning in magic comment lexing
https://github.com/ruby/prism/commit/a14431c2f1 kddnewton (Kevin Newton)
03:14 PM Revision a91ae84b (git): [ruby/prism] Inline pm_node_list_append, pm_char_is_whitespace, and pm_char_is_inline_whitespace
https://github.com/ruby/prism/commit/83f54c2dc2 kddnewton (Kevin Newton)
03:14 PM Revision dfad9e8c (git): [ruby/prism] Force the allocation to be inlined
https://github.com/ruby/prism/commit/dfdc930456 kddnewton (Kevin Newton)
03:14 PM Revision c6e7336b (git): [ruby/prism] Pre-size arena to avoid unnecessary growth
https://github.com/ruby/prism/commit/f94fe6ba02 kddnewton (Kevin Newton)
03:14 PM Revision 345b90b7 (git): [ruby/prism] Avoid unnecessary zero-ing of memory
https://github.com/ruby/prism/commit/bfa7692715 kddnewton (Kevin Newton)
03:14 PM Revision 81f6ec4e (git): [ruby/prism] Fast-paths for ASCII-only identifiers
https://github.com/ruby/prism/commit/fb526a8243 kddnewton (Kevin Newton)
03:14 PM Revision de448eab (git): [ruby/prism] Scan forward through inline whitespace to avoid writing to parser->current.end continuously
https://github.com/ruby/prism/commit/c1ad25ebf8 kddnewton (Kevin Newton)
03:14 PM Revision b0f68d70 (git): [ruby/prism] Small optimization for parser_lex_magic_comment
https://github.com/ruby/prism/commit/e0708c495c kddnewton (Kevin Newton)
03:14 PM Revision 9fe3151e (git): [ruby/prism] Speed up the constant hash function
https://github.com/ruby/prism/commit/1dd985306f kddnewton (Kevin Newton)
03:14 PM Revision ac38cffd (git): [ruby/prism] Use the parser arena for the constant pool
https://github.com/ruby/prism/commit/390bdaa1f1 kddnewton (Kevin Newton)
03:14 PM Revision 4bacd06b (git): [ruby/prism] Use an arena for parser metadata
https://github.com/ruby/prism/commit/dadeb7e679 kddnewton (Kevin Newton)
02:50 PM Feature #21520 (Closed): Feature Proposal: Enumerator::Lazy#tee
Applied in changeset commit:git|3903419deeece358c31b3da9afc4a0250139a5e4.
----------
[Feature #21520] Rename Enumerator::Lazy#tee to #tap_each
nuzair46 (Nuzair Rasheed)
08:59 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
Thanks for the comment. Since the PR was already merged recently, I will make a new PR to address the name change from `tee` to `tap_each`. nuzair46 (Nuzair Rasheed)
08:39 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
After reconsideration, I think `tap_each` is a better name than `tee` for this method.
`tee` is familiar to Unix users, but Python's `itertools.tee` has a very different meaning (splitting an iterator into multiple independent iterato...
matz (Yukihiro Matsumoto)
02:50 PM Revision 3903419d (git): [Feature #21520] Rename Enumerator::Lazy#tee to #tap_each
nuzair46 (Nuzair Rasheed)
09:46 AM Feature #21795: Methods for retrieving ASTs
mame (Yusuke Endoh) wrote in #note-9:
> When new syntax is introduced to the Ruby master branch, the built-in `prism.c` is updated immediately. In this scenario, if we attempt to retrieve `#ast` using the node definitions from a release...
Eregon (Benoit Daloze)
07:43 AM Feature #21795: Methods for retrieving ASTs
I have two concerns before we move forward.
On the name AST
I'm not sure `ast` is the right name. The nodes returned by Prism retain concrete information such as positions, whitespace, and comments, making them closer to a Concrete...
matz (Yukihiro Matsumoto)
09:46 AM Bug #21921: Hash inconsistent ==, >=, <= behavior
Not many people use `Hash` inclusion operators, and I doubt anyone expects them to behave consistently when `compare_by_identity` is involved. Rather than raising an exception, I think returning `nil` from `==`, `<=` and `>=` whenever ei... matz (Yukihiro Matsumoto)
09:40 AM Feature #21932: `MatchData#get_int`
I agree with adding `integer_at(n)` to `MatchData`, and `StringScanner` too (#21943).
Matz.
matz (Yukihiro Matsumoto)
09:38 AM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
I think it's good to add an offset: keyword argument to `Array#index` and `Array#rindex`, for consistency with `String#index` and `String#rindex`.
As for `Array#find_index`, I think we should add `offset:` there as well, keeping it in...
matz (Yukihiro Matsumoto)
09:18 AM Revision dc1777d0 (git): Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
[Bug #21955] Samuel Williams
08:52 AM Revision 2602e3a9 (git): [ruby/net-http] Add existing RBS interface tests from ruby/rbs repo
https://github.com/ruby/net-http/commit/2842ca5539 sferik (Erik Michaels-Ober)
08:47 AM Feature #21929: Add configure script options for instrumenting Rust builds
While the MR allows to provide the flags in some manner, which is certainly a big part, in the PR there were mentioned some flags that are important to upstream to keep. See comment https://github.com/ruby/ruby/pull/15695#discussion_r266... jprokop (Jarek Prokop)
08:33 AM Feature #6012: Proc#source_location also return the column
Right, I will make a proposal for `Ruby::SourceLocation`/`Ruby::CodeLocation` or so.
I hope it can be approved quickly without taking more time.
Eregon (Benoit Daloze)
08:05 AM Feature #6012: Proc#source_location also return the column
Thank you, @eregon, for the thorough analysis and for pushing this feature forward with such persistence over the years.
I have reconsidered my position. Although I approved this change, and it has been in master for a year, I now bel...
matz (Yukihiro Matsumoto)
08:32 AM Revision 82b56a28 (git): [ruby-core:122847] Implements `Enumerator::Lazy#tee`
red (Arnaud Rouyer)
08:30 AM Feature #21875 (Closed): Handling of trailing commas in lambda parameters
Eregon (Benoit Daloze)
06:47 AM Feature #21875: Handling of trailing commas in lambda parameters
OK, I agree. Keep as it is. We cannot ignore the semantic difference between `|a,|` and `|a,b,|`.
Matz.
matz (Yukihiro Matsumoto)
08:11 AM Feature #21822 (Rejected): Expose Return Value in the ensure Block
Thank you for the feedback. I understand the aesthetic appeal, but "cleaner" is subjective, and the existing pattern is already idiomatic Ruby with no real cognitive overhead.
More importantly, "purely additive" does not mean cost-fre...
matz (Yukihiro Matsumoto)
07:44 AM Revision eb460a12 (git): [ruby/rubygems] Rename full_clone? to shallow? for clarity
The predicate checks whether depth is set, which applies equally to
clone and fetch contexts. Rename to shallow? so the intent reads
naturally in both places.
https://github.com/ruby/rubygems/commit/7e47f408c3
Co-Authored-By: Claude Op...
hsbt (Hiroshi SHIBATA)
07:44 AM Revision c40a29f7 (git): [ruby/rubygems] Retry git fetch without --depth for dumb HTTP transport
Dumb HTTP git servers do not support shallow capabilities, causing
`git fetch --depth` to fail. The retry-without-depth logic already
existed for clone but was missing for fetch.
Also refactor clone_needs_extra_fetch? to rebuild the com...
hsbt (Hiroshi SHIBATA)
06:55 AM Bug #21954 (Closed): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
Fixed at https://github.com/ruby/ruby/commit/8ecf28f9384207590be73d5f2a95859cff9c526a hsbt (Hiroshi SHIBATA)
05:23 AM Bug #21954: NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
@jeremyevans0 Thank you for your report. I confirmed this.
This issue was introduced RubyGems [4.0.5](https://github.com/ruby/rubygems/releases/tag/v4.0.5).
I will fix this at https://github.com/ruby/rubygems/pull/9404 and release ...
hsbt (Hiroshi SHIBATA)
01:42 AM Bug #21954 (Assigned): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
hsbt (Hiroshi SHIBATA)
01:34 AM Bug #21954 (Closed): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
I'm seeing a regression in Ruby 4.0.2 when there is a gem activation problem.
Install two versions of a gem, where one version has a file the other doesn't. One example here is rack:
```
$ gem install rack --version '< 3'
$ gem i...
jeremyevans0 (Jeremy Evans)
06:55 AM Revision 8ecf28f9 (git): [ruby/rubygems] Fix NoMethodError in Gem.try_activate when activation conflicts occur
When `find_unloaded_by_path` returns nil, the subsequent
`spec.name` call raises NoMethodError because `spec` has been
overwritten. Save the gem name before reassigning `spec`.
Fixes https://bugs.ruby-lang.org/issues/21954
https://gith...
hsbt (Hiroshi SHIBATA)
06:11 AM Revision e2a705e5 (git): Bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [github/codeql-action](https://github.com/github/codeql-action) and [taiki-e/install-action](https://github.com/taik... dependabot[bot]
06:03 AM Feature #21861: C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc
> Is it intentional to change the word orders?
Yes it it, to match the C23 names. The current names are private, we can easily rename them.
byroot (Jean Boussier)
05:50 AM Feature #21861: C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc
byroot (Jean Boussier) wrote:
> I would like to expose these sized APIs to C extensions, so that they can benefit from it as well:
> ...
Current names are `ruby_sized_xfree` and so on.
Is it intentional to change the word orders?
nobu (Nobuyoshi Nakada)
05:41 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
The warning for overlapping `\p{...}` classes should be removed. The original intent was to catch mistakes like `/[:lower:]/`, but overlapping Unicode properties are not a mistake. They are expected and intentional. A warning with no act... matz (Yukihiro Matsumoto)
04:30 AM Revision 46f43eb4 (git): Use repository_dispatch for docker-images in publish workflow
Switch from workflow_dispatch API to repository_dispatch API for
triggering docker-images builds, consistent with all other dispatch
calls in this workflow. This avoids requiring Actions:Write permission
on the personal access token.
Co...
hsbt (Hiroshi SHIBATA)
04:13 AM Misc #21924 (Closed): Register a Maven namespace for JVM-related libraries
I have not published a full release, but I have been able to push snapshots and it looks like everything is working. Thank you for your help! headius (Charles Nutter)
04:06 AM Misc #21924: Register a Maven namespace for JVM-related libraries
@headius Were you able to publish to Maven? hsbt (Hiroshi SHIBATA)
02:24 AM Revision 3b86c937 (git): Add ruby_version_is guard to CVE-2019-8322 spec for changing displayed message
hsbt (Hiroshi SHIBATA)
12:26 AM Revision 3092f4fe (git): [ruby/rubygems] fix: include owner role in `gem owner`
https://github.com/ruby/rubygems/commit/d6364956b6 Garen J. Torikian
12:21 AM Revision 60e8042e (git): [ruby/rubygems] Refactor validate_tag! to enforce permitted_classes consistently with Psych
Align YAMLSerializer's `permitted_classes` validation with Psych's whitelist
semantics: an empty `permitted_classes` list denies all tagged classes, matching
`Psych::ClassLoader::Restricted` behavior.
- Rename `@permitted_tags` to `@per...
hsbt (Hiroshi SHIBATA)
12:21 AM Revision 8723c8b2 (git): [ruby/rubygems] Fix Bundler crashing when installing very old gems:
- ### Problem
There is a regression where bundler can longer install gems that
were packaged a long time ago, like the [memoize gem](https://rubygems.org/gems/memoize).
Bundler will crash with such error:
```
Installing memo...
Edouard CHIN

03/16/2026

11:49 PM Revision 4c6c02d8 (git): fix invalid nodoc comment of Pathname#plus
tompng (tomoya ishida)
11:19 PM Revision b01ca60e (git): Allow auto-sync from Prism ruby-4.0
k0kubun (Takashi Kokubun)
10:56 PM Revision 6721ec26 (git): Include free_immediately: false in heap dumps
This adds "free_immediately: false" to the heap dump for any T_DATA
which doesn't specify RUBY_TYPED_FREE_IMMEDIATELY. These are the objects
which end up as T_ZOMBIE and will have their dfree callback deferred to
later when the program i...
jhawthorn (John Hawthorn)
10:56 PM Feature #21869: Add receive_all Method to Ractor API for Message Batching
synacker (Mikhail Milovidov) wrote in #note-4:
> Yes, it blocks if the queue empty. The method ```receive_all``` accepts a limit parameter:
> ...
The parameter `limit` is not in the description. Let me clarify `limit == 0`. In above qu...
ko1 (Koichi Sasada)
10:47 PM Revision d3da9fec (git): v4.0.2
k0kubun (Takashi Kokubun)
10:46 PM Revision 3fd1181a (git): Bump Prism to v1.8.1
k0kubun (Takashi Kokubun)
09:59 PM Feature #21929 (Feedback): Add configure script options for instrumenting Rust builds
It's hard for me to tell what's desired beyond the already merged PR you proposed. It seems to be about some mechanism for flag overriding for development builds that use `cargo`, but sort of by definition packaging is not a great fit fo... alanwu (Alan Wu)
06:29 AM Feature #21929: Add configure script options for instrumenting Rust builds
@alanwu Can we close this? https://github.com/ruby/ruby/pull/15695 is already merged. mame (Yusuke Endoh)
09:23 PM Revision b1220ac5 (git): iseq.c: Use an embedded set table in rb_estimate_iv_count
byroot (Jean Boussier)
09:23 PM Revision 8982de2d (git): Embed vm->ci_table
byroot (Jean Boussier)
09:23 PM Revision 0f109203 (git): Embed rb_ractor_pub.targeted_hooks
byroot (Jean Boussier)
07:53 PM Revision 14eb0831 (git): Speedup repeated calls to `rb_gccct_clear_table`
Profiling of `ruby --disable-all -e 1` shows between 5 and 10%
of the time is spent in `_platform_memset`, called from `rb_gccct_clear_table()`,
itself called from `clear_method_cache_by_id_in_class()`.
Which makes sense, during boot we...
byroot (Jean Boussier)
07:24 PM Bug #21925: Prism misparses standalone "in" pattern matching in "case/in"
ruby_4_0 commit:b5a768b666f61a861449d9ee287cb0a3e05bbea8. k0kubun (Takashi Kokubun)
07:24 PM Bug #21674: Possible regression in return case in statement
ruby_4_0 commit:b5a768b666f61a861449d9ee287cb0a3e05bbea8. k0kubun (Takashi Kokubun)
07:24 PM Bug #21946: `and?` predicate confused for leading `and` keyword
ruby_4_0 commit:83c261f30bd43dc3465c0026b96e79af585fdfab. k0kubun (Takashi Kokubun)
07:24 PM Bug #21927: Prism: misleading error message for forwarding in lambda argument
ruby_4_0 commit:e7d2828fb677874fb425e6129e0c4c20acc0e1dd. k0kubun (Takashi Kokubun)
07:24 PM Bug #21097: `x = a rescue b in c` and `def f = a rescue b in c` parsed differently between parse.y and prism
ruby_4_0 commit:6b47e3f82cfb52d41fef8882d7e132f43a7611d6. k0kubun (Takashi Kokubun)
07:24 PM Revision 6b47e3f8 (git): [ruby/prism] Fix not binding power in endless methods [Backport #21097]
Change rescue modifier binding power from PM_BINDING_POWER_COMPOSITION
to PM_BINDING_POWER_MATCH + 1, so that `x = a rescue b in c` is parsed
as `(x = (a rescue b)) in c` and `def f = a rescue b in c` is parsed
as `(def f = (a rescue b))...
k0kubun (Takashi Kokubun)
07:03 PM Bug #21880: The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
ruby_4_0 commit:901966d7627e89e1ee6e0e37f92e8ac8c0e6e3da. k0kubun (Takashi Kokubun)
06:18 AM Bug #21880 (Closed): The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
mame (Yusuke Endoh)
07:02 PM Revision 901966d7 (git): Update pstore to 0.2.1 [Backport #21880]
Fix ultra_safe mode of pstore bundled with Ruby 4.0. k0kubun (Takashi Kokubun)
06:57 PM Bug #21926: Thread#value on popen3 wait thread hangs in finalizer
ruby_4_0 commit:a601b899a35c796775309dca01a6d5e64be14c44 merged revision(s) commit:08372635f7ec09f7115bd254246ebd637499651c. k0kubun (Takashi Kokubun)
06:57 PM Bug #21947: `Timeout.timeout` doesn't use `Timeout::ExitException` when Fiber scheduler is in use.
ruby_4_0 commit:f808ff5fc15690338dcb6530e4d3df760d8721f3 merged revision(s) commit:f315d250b44e75a1a69f4a05b293dcc701377689. k0kubun (Takashi Kokubun)
06:57 PM Bug #21945: Ripper lexes newline between identifier and `and?` as ignored newline
ruby_4_0 commit:1d3581e18a689f0d392686283e340058ac468ffd merged revision(s) commit:55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf. k0kubun (Takashi Kokubun)
06:57 PM Bug #21941: Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
ruby_4_0 commit:8466e93b1d6eb85ad5952ab3a10575fa453e77e2. k0kubun (Takashi Kokubun)
05:44 PM Bug #21941 (Closed): Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
Applied in changeset commit:git|8f98abfc46d48c84db2b1408fc8f14b240ec05fd.
----------
YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
Fix for [Bug #21941].
In case of `--yjit-disable`, YJIT only st...
alanwu (Alan Wu)
06:57 PM Revision a601b899 (git): merge revision(s) 08372635f7ec09f7115bd254246ebd637499651c: [Backport #21926]
Fix race condition right after ubf registration
Fixes [Bug #21926]
k0kubun (Takashi Kokubun)
06:56 PM Revision f808ff5f (git): merge revision(s) f315d250b44e75a1a69f4a05b293dcc701377689: [Backport #21947]
[ruby/timeout] Compatibility with Fiber scheduler.
(https://github.com/ruby/timeout/pull/97)
[Bug #21947]
k0kubun (Takashi Kokubun)
06:55 PM Revision 1d3581e1 (git): merge revision(s) 55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf: [Backport #21945]
[Bug #21945] Correctly handle `and?` and similar k0kubun (Takashi Kokubun)
06:36 PM Bug #21917: Unable to build 4.0.1 on AIX 7.2
ruby_4_0 commit:0d845e4a071f67de40e1151cafb419c7aba87050 merged revision(s) commit:361644c0cce3235e9cc6724994c6b5711deb10b8. k0kubun (Takashi Kokubun)
06:35 PM Revision 0d845e4a (git): merge revision(s) 361644c0cce3235e9cc6724994c6b5711deb10b8: [Backport #21917]
[PATCH] [Bug #21917] Fix build on AIX k0kubun (Takashi Kokubun)
06:04 PM Revision 06957d7b (git): ZJIT: Fix empty doc comments for INDUCE_*_SERIAL statics
Max Bernstein
06:04 PM Revision 471b68ba (git): ZJIT: Add induce_breakpoint! compiler directive
Max Bernstein
06:03 PM Revision 8466e93b (git): YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
[Backport #21941]
In case of `--yjit-disable`, YJIT only starts to record environment
escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
we always have a full history all the way back to VM boot. This had YJIT
insta...
alanwu (Alan Wu)
05:55 PM Revision 77b5ab1f (git): ZJIT: Add an option to --zjit-dump-asm to dump code to a folder (#16389)
ZJIT: Add an option to --zjit-dump-disasm to dump code to a folder
This commit adds an option to `--zjit-dump-disasm` so that you can dump
compiled code to a folder (similar to the behavior of yjit).
For example:
```
$ ruby --zjit-dum...
tenderlovemaking (Aaron Patterson)
05:45 PM Revision cfe7565f (git): [ruby/rubygems] Introduce a priority queue:
- ### Problem
In https://github.com/ruby/rubygems/pull/9381, I explained the
issue about the "tail latency".
TL;DR When a gem with a native extensions is downloaded, the sooner
we starts compiling, the sooner it gets installed....
Edouard CHIN
05:43 PM Revision 8f98abfc (git): YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
Fix for [Bug #21941].
In case of `--yjit-disable`, YJIT only starts to record environment
escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
we always have a full history all the way back to VM boot. This had YJIT
i...
alanwu (Alan Wu)
05:20 PM Revision bbf00cea (git): ZJIT: introduce a BreakPoint instruction to HIR (#16390)
[ZJIT]: introduce a BreakPoint instruction to HIR
It's nice for debugging to be able to emit a breakpoint from HIR. I
would like to introduce this instruction so that we can do that.
tenderlovemaking (Aaron Patterson)
02:04 PM Revision 53351a43 (git): Embed vm->static_ext_inits
byroot (Jean Boussier)
02:04 PM Revision 086c53da (git): Embed vm->unused_block_warning_table
byroot (Jean Boussier)
02:04 PM Revision 08e03af5 (git): Embed vm->overloaded_cme_table
byroot (Jean Boussier)
02:04 PM Revision caef1244 (git): Embed vm->negative_cme_table id_table
byroot (Jean Boussier)
02:04 PM Revision 2003835d (git): Embed the vm->constant_cache id_table
byroot (Jean Boussier)
02:04 PM Revision cb55f334 (git): Expose struct rb_id_table to allow embedding
byroot (Jean Boussier)
01:37 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
At last week's Asakusa.rb, I realized that `$~` was facing a similar issue. I've also made the necessary fixes in the PR mentioned above.
https://github.com/ruby/ruby/pull/16303#issuecomment-4067703448
dak2 (Daichi Kamiyama)
01:16 PM Revision a188e960 (git): [DOC] Update docs for RB_OBJ_WB_UNPROTECT
peterzhu2118 (Peter Zhu)
01:12 PM Revision c2c6c9b5 (git): [DOC] Fix typo in File#path
burdettelamar (Burdette Lamar)
01:12 PM Revision 54c85b80 (git): [DOC] Doc for Pathname#cleanpath (#16387)
burdettelamar (Burdette Lamar)
12:09 PM Bug #21934 (Closed): Prism and parse.y inconsistency in command call used with pattern match
Yeah, it's fixed by https://github.com/ruby/prism/pull/3970 Earlopain (Earlopain _)
06:33 AM Bug #21934: Prism and parse.y inconsistency in command call used with pattern match
@kddnewton @tompng Can we close this ticket? mame (Yusuke Endoh)
11:55 AM Revision 39b65861 (git): rb_ractor_main_alloc: move constants to the static object
Followup: 9cc71cb9093 byroot (Jean Boussier)
09:19 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
https://github.com/ruby/ruby/commit/9bcd9ba9b31fea19dc56bc2f5c69cf584d3bd23c hsbt (Hiroshi SHIBATA)
09:14 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
I think the latest fix should be backported too, so annotating it as such. Eregon (Benoit Daloze)
06:34 AM Revision 9228a130 (git): [ruby/uri] Use `PARSER` instead of `DEFAULT_PARSER` in `URI.join`
I changed to use `PARSER` instead of `DEFAULT_PARSER` with #161,
but I missed to fix `URi.join`. This PR fixes it.
https://github.com/ruby/uri/commit/85e1499b2c
y-yagi (Yuji Yaginuma)
06:21 AM Bug #21918 (Assigned): fiber scheduler: fiber interrupt triggers for IOs that haven't been closed
mame (Yusuke Endoh)
06:19 AM Bug #21883 (Assigned): IO::Buffer can be unlocked and freed by another thread during syscall
mame (Yusuke Endoh)
02:49 AM Revision 2fc3013e (git): Bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) and [taiki-e/ins... dependabot[bot]
02:29 AM Revision a0fc03ef (git): [ruby/rubygems] Fix ruby/ruby detection path in bundler spec_helper
The previous path ../../../lib/bundler/bundler.gemspec resolved outside
the repository root in both ruby/ruby and rubygems repos, so the guard
never triggered. Fix to ../../lib/bundler/bundler.gemspec which correctly
detects the ruby/rub...
hsbt (Hiroshi SHIBATA)
02:29 AM Revision 34e34d8f (git): [ruby/rubygems] Disable coverage collection in ruby/ruby repository
Skip SimpleCov setup when running inside the ruby/ruby repository to
avoid interference. Detection uses GEM_COMMAND env var for rubygems
and bundler.gemspec presence for bundler.
https://github.com/ruby/rubygems/commit/48805d47f6
Co-Au...
hsbt (Hiroshi SHIBATA)
02:29 AM Revision c78c9e88 (git): [ruby/rubygems] Always collect code coverage for bundler specs
Configure SimpleCov in spec_helper.rb to collect coverage data for
the bundler test suite, outputting results to the shared coverage
directory.
https://github.com/ruby/rubygems/commit/8af3fe6323
Co-Authored-By: Claude Opus 4.6 <noreply...
hsbt (Hiroshi SHIBATA)
02:29 AM Revision 9e7e9f06 (git): [ruby/rubygems] Use PID in SimpleCov command_name for parallel spec workers
When running bundler specs with parallel_rspec, each worker process
needs a unique command_name to prevent overwriting each other's
coverage results in .resultset.json.
https://github.com/ruby/rubygems/commit/1f3ad726ac
Co-Authored-By:...
hsbt (Hiroshi SHIBATA)
02:29 AM Revision b91e8fbe (git): [ruby/rubygems] Always collect code coverage for rubygems tests
Add coverage_setup.rb loaded via -r flag before rubygems to enable
Coverage tracking of boot files. SimpleCov is configured in helper.rb
to collect coverage data for rubygems test suite.
https://github.com/ruby/rubygems/commit/8eed548e4...
hsbt (Hiroshi SHIBATA)
02:29 AM Revision b6a21d2a (git): [ruby/rubygems] Add simplecov as a development dependency
https://github.com/ruby/rubygems/commit/ca2c5eda12
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
01:47 AM Revision 64fcb596 (git): [ruby/rubygems] Remove outdated which command isolation workaround
https://github.com/ruby/rubygems/commit/6d4f506390 afurm (Andrii Furmanets)
01:47 AM Revision 62a1ada2 (git): [ruby/rubygems] Fix which command test isolation
https://github.com/ruby/rubygems/commit/0420c70cbf afurm (Andrii Furmanets)

03/15/2026

11:13 PM Revision 8da2777d (git): [ruby/psych] Update SnakeYAML-Engine to 3.0.1
There are two CVEs in Guava, which is a test-scoped dependency of
this library. Guava is not shipped with the library so these CVEs
do not affect users, but the dependency may trigger security tools.
We update to avoid this false positiv...
headius (Charles Nutter)
05:06 PM Feature #21853: Make Embedded TypedData a public API
Eregon (Benoit Daloze) wrote in #note-5:
> also considering there is no safeguard to avoid writing to `DATA_PTR`
One idea to address this (but not the other 2 concerns) would be to raise on `DATA_PTR()` for `RUBY_TYPED_EMBEDDABLE`, a...
Eregon (Benoit Daloze)
02:33 PM Feature #21853: Make Embedded TypedData a public API
One tricky aspect about `RUBY_TYPED_EMBEDDABLE` is if in the `struct` there is a pointer to inside that `struct` then those pointers will become invalid when the object is moved.
Is there a way to handle that correctly to update such poi...
Eregon (Benoit Daloze)
05:06 PM Revision 9e89e5f3 (git): [DOC] Doc for Pathname.new (#16373)
burdettelamar (Burdette Lamar)
02:21 PM Feature #21852: New improved allocator function interface
I'm aware what I propose doesn't solve `Can't support objects of variable width`, i.e. the case for `Thread::Backtrace`.
But AFAIK variable width is only available for core classes (not as public API), and `Thread::Backtrace` is core too...
Eregon (Benoit Daloze)
02:06 PM Feature #21852: New improved allocator function interface
Going further, `Class#safe_initialization` instead of redefining these 3 methods could just set a new `internal_alloc_func` field in RClass (only used by new/dup/clone and can never be read by anything else) + rb_undef_alloc_func().
And...
Eregon (Benoit Daloze)
01:55 PM Feature #21852: New improved allocator function interface
Thinking more about this I think there should be a protocol or an easy way to avoid the allocated-but-uninitialized state completely, which is problematic for classes defined in C but also in Ruby (though Ruby-defined classes will typica... Eregon (Benoit Daloze)
12:47 PM Revision 6297a3bb (git): [DOC] Simplify doc setup (#16393)
* Remove stale entries from `.document` files
`doc/.document` referenced two non-existent directories (`date`, `rdoc`).
`ext/.document` referenced eight extensions that have been moved to
gems: bigdecimal, fiddle, monitor, nkf, racc, r...
st0012 (Stan Lo)
08:53 AM Feature #21953 (Open): Allow accessing unshareable objects within a Ractor-local Ruby Box
### Status
Currently, non-main ractors prohibit access to the following objects to prevent data races:
* Global variables
* Class variables
* Unshareable class instance variables
* Unshareable constants
### Proposal
...
tikkss (Tsutomu Katsube)
08:48 AM Misc #21877: DevMeeting-2026-03-17
* [Feature #21861] C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc (byroot)
* C23 added `void free_sized(void *ptr, size_t old_size)`.
* It has both speed and correctness benefits.
* Several common allocators alread...
byroot (Jean Boussier)
05:42 AM Revision ca23c7c4 (git): [ruby/strscan] Do not use C99 style comment [ci skip]
The minimum required ruby version of this library is still 2.4.
C99 has been adopted since ruby 2.7.
https://github.com/ruby/strscan/commit/c50abc95ad
nobu (Nobuyoshi Nakada)
05:42 AM Revision 697eb6d8 (git): [ruby/io-console] Do not use C99 style comment [ci skip]
The minimum required ruby version of this library is still 2.6.
C99 has been adopted since ruby 2.7.
https://github.com/ruby/io-console/commit/f907e5a237
nobu (Nobuyoshi Nakada)
05:36 AM Revision 1e5a4434 (git): [ruby/io-console] Remove no longer used variable
https://github.com/ruby/io-console/commit/d0ee6034a9 nobu (Nobuyoshi Nakada)

03/14/2026

10:19 PM Misc #21877: DevMeeting-2026-03-17
* [Bug #21685] Unnecessary context-switching, especially bad on multi-core machines. (jpl-coconut)
* Ruby exhibits excessive context switching around fast syscalls, which compromises performance. Microbenchmarks (linked from issue and ...
jpl-coconut (Jacob Lacouture)

03/13/2026

11:54 PM Revision 79f7ce74 (git): [DOC] Pathname glob doc
burdettelamar (Burdette Lamar)
07:00 PM Revision 86049a98 (git): [ruby/prism] feat: add `start_line`, `end_line`, `start_column`, `end_column`, and `chop` methods for `Location`
https://github.com/ruby/prism/commit/4258b2ad7e
Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
Seong Yong-ju
05:39 PM Revision ee275b41 (git): Git ignore dump_ast if you are doing an in-place build
kddnewton (Kevin Newton)
04:45 PM Misc #20238 (Closed): Use prism for mk_builtin_loader.rb
Fixed by https://github.com/ruby/ruby/commit/a70dbe1065f58a23a85e576d19e3434e6dd4bb64 kddnewton (Kevin Newton)
04:35 PM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
I have submitted a patch to Onigmo with the naive strategy (A) as outlined above:
https://github.com/k-takata/Onigmo/pull/175
Contrary to my expectations, it does appear that `/[\p{Word}\p{Alpha}]/` and `/[a-fb-g]/` **do** continue...
jneen (Jeanine Adkisson)
04:03 PM Revision fc16d959 (git): [ruby/prism] Expose parse options to Rust
https://github.com/ruby/prism/commit/0f1500ce92 kddnewton (Kevin Newton)
03:13 PM Revision 17747554 (git): [ruby/prism] Make it possible to lazily deserialize DefNode in Loader.java
* TRUFFLERUBY_METRICS_REPS=5 jt metrics time --experimental-options -e0
For parsing-core:
before: 0.097 0.099 0.092 0.096
after: 0.061 0.063 0.066 0.059
* Remove extra trailing spaces by using `<%-#`.
https://github.com/ruby/pris...
Eregon (Benoit Daloze)
03:00 PM Revision 9246b770 (git): Bump timeout for TestGC#test_finalizer_not_run_with_vm_lock
This test should be redesigned, but increasing the timeout
should probably be good enough for now to not see CI failures related
to it. I can see how this could timeout after 10s.
Failing test after 10s timeout:
https://ci.rvm.jp/result...
Luke Gruber
01:16 PM Revision 30ec9c08 (git): Fix use-after-poison in compile.c and prism_compile.c
Prevent GC from accidentally collecting kddnewton (Kevin Newton)
01:15 PM Revision c0e41097 (git): Speed up memmem on Apple
Apple's libc implementation of memmem is super slow (it is a forked
version of freebsd's that never got vectorized). Instead, we should
fall back to the rolling hash on Apple. In the attached benchmark,
I'm seeing 1.07% slower to 30.34% ...
kddnewton (Kevin Newton)
01:15 PM Revision a70dbe10 (git): Use Prism for mk_builtin_loader.rb
kddnewton (Kevin Newton)
02:39 AM Revision 90f6507e (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.68.26 to 2.68.27
- [Release notes](https://github.com/taiki-e...
dependabot[bot]

03/12/2026

05:00 PM Revision b0754fbd (git): ZJIT: Deduplicate polymorphic send branches by receiver type (#16335)
When lowering polymorphic `opt_send_without_block`, emit at most one branch per receiver type instead of one branch per profile bucket (`class, shape, flags`).
This deduplicates redundant `HasType`/`IfTrue` chains while preserving immed...
Nozomi Hijikata
04:08 PM Revision 1a0e67d3 (git): ZJIT: `::RubyVM::ZJIT.induce_side_exit!` and `induce_compile_failure!`
Tells ZJIT to do a side exit or to fail to compile, useful testing and
for bug reports. We are picky about the syntactic form so we can tell
where the call lands early in the compiler pipeline. The `::` prefix
allows us to interpret it w...
alanwu (Alan Wu)
02:50 PM Revision 3f0e61fe (git): Speed up integer parsing in prism_compile.c
kddnewton (Kevin Newton)
02:50 PM Revision c45f7817 (git): Cache line lookups in prism compiler
kddnewton (Kevin Newton)
02:28 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
I may have another possibly related `Ruby::Box` special-global case.
This may be a separate `$?` / `Process::Status` issue rather than the same
root cause as `$_` or `$~`, since `$?` seems to be thread-local. Still, the
symptom also...
katsyoshi (Katsuyoshi MATSUMOTO)
02:09 PM Bug #21952 (Open): Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes

I found what looks like a separate `Ruby::Box` bug from the existing `require` and `LoadError` issues such as `#21760`.
This is not a `LoadError` case. I was able to reduce it to a reproducer where requiring `fiddle/import` from mul...
katsyoshi (Katsuyoshi MATSUMOTO)
12:18 PM Feature #21950: Add a built-in CPU-time profiler
> Reducing CPU load can be useful even in tasks containing IO.
Oh absolutely, this is a huge part of my day to day work. But even for this I tend to prefer looking at a WALL report as it include both information. I see no need to ign...
byroot (Jean Boussier)
11:33 AM Feature #21950: Add a built-in CPU-time profiler
Yes, this ticket is about sampling profilers. Sorry for the confusion.
byroot (Jean Boussier) wrote in #note-11:
> Which is an interesting choice, because maybe it's my bias, but I find that CPU-time profiling is really not as common...
osyoyu (Daisuke Aritomo)
10:15 AM Feature #21950: Add a built-in CPU-time profiler
byroot (Jean Boussier) wrote in #note-11:
> But I suspect supporting both isn't that much extra work?
I think it'd be good for this API to be able to say which one it wants (like `StackProf`'s `mode:` kwarg).
Eregon (Benoit Daloze)
10:12 AM Feature #21950: Add a built-in CPU-time profiler
osyoyu (Daisuke Aritomo) wrote in #note-8:
> I don't want the API/output format to restrict what a profiler could emit. I wouldn't say such design is not doable, but careful consideration would be needed.
Careful consideration is exa...
Eregon (Benoit Daloze)
08:41 AM Feature #21950: Add a built-in CPU-time profiler
> it is not about adding a sampling profiler, it is about adding a CPU time profiler that does not sample.
Well, the issue description talk of CPU-time, but it also talk about sampling (`timer_create(3)` etc). So yes, it's a CPU-time ...
byroot (Jean Boussier)
11:46 AM Revision 174b54c4 (git): [ruby/rubygems] Add a Mutex to prevent a bug on Ruby 3.2:
- There are failing tests on Ruby 3.2 due to an expecation that
checks wheter stderr is empty. In this case, stderr outputs a
warning from Ruby "warning: loading in progress, circular require
considered harmful", but this is not tr...
Edouard CHIN
11:46 AM Revision ac3b2377 (git): [ruby/rubygems] Split the download and install process of a gem:
- ### Problem
Bundler awaits for the dependencies of a gem to be download and installed
before it proceeds to downloading and installing the dependency itself.
This creates a bottleneck at the end of the installation process and
...
Edouard CHIN
08:39 AM Revision a3ee27fa (git): Fix `rdoc:%` target for bundled rdoc
nobu (Nobuyoshi Nakada)
08:39 AM Revision 6ba5c3ed (git): outdate-bundled-gems.rb: Keep gemspec files for default gems
nobu (Nobuyoshi Nakada)
08:25 AM Revision 235195f8 (git): [ruby/rubygems] Raise an error when building a gem that has a self reference:
- ### Problem
A gem that has a self-reference in its dependencies would previously
get a warning during `gem build`, saying it's "discouradged".
A gem that includes a self-reference can't be updated due to bundler
filtering it o...
Edouard CHIN
03:56 AM Revision 5c81ba21 (git): [ruby/rubygems] Make SafeYAML.load an alias of safe_load
Using Psych, load was actually more restrictive than safe_load. Using
Gem::YAMLSerializer they were identical. We might as well use the same
path for both methods.
https://github.com/ruby/rubygems/commit/d8d927f889
jhawthorn (John Hawthorn)
03:56 AM Revision d66f8d49 (git): [ruby/rubygems] Update load_yaml test helper to use safe_load
https://github.com/ruby/rubygems/commit/51544ebfd8 jhawthorn (John Hawthorn)
03:56 AM Revision 77507870 (git): [ruby/rubygems] Use safe_load from owner_command
This had been the only user of Gem::SafeYAML.load for a long time. We
might as well be consistent with all other uses and use safe_load.
https://github.com/ruby/rubygems/commit/1b698779f5
jhawthorn (John Hawthorn)
03:56 AM Revision 7db82681 (git): [ruby/rubygems] Unpend owner_command test
https://github.com/ruby/rubygems/commit/227df53bc5 jhawthorn (John Hawthorn)
03:56 AM Revision 0c6972b9 (git): [ruby/rubygems] Restore original SafeYAML.load under Psych
This was changed to unsafe_load with the swap to YAMLSerializer. But
this method did not previously do an unsafe load and we shouldn't
provide that.
https://github.com/ruby/rubygems/commit/37f71c1eac
jhawthorn (John Hawthorn)
03:52 AM Revision 1424201b (git): [ruby/rubygems] Add test for !binary tag in sequence item inline
https://github.com/ruby/rubygems/commit/ba4a4b2b26
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
03:52 AM Revision 1c7b2d2b (git): [ruby/rubygems] Support YAML 1.1 !binary tag in YAMLSerializer
Decode base64-encoded values tagged with !binary in mapping keys,
mapping values (both inline and block scalar), and sequence items.
This fixes gem install failures for gems packaged with older RubyGems
that used !binary encoding in chec...
hsbt (Hiroshi SHIBATA)
03:51 AM Revision aab7a55c (git): [ruby/rubygems] Warn when require_relative is used to load compiled extensions during gem build
When a gem has native extensions and uses `require_relative` to load
a path without a corresponding .rb file in the gem, warn that this
will break in RubyGems 4.2, which will stop copying compiled
extensions into the gem's lib directory....
hsbt (Hiroshi SHIBATA)
03:51 AM Revision 93a516dd (git): [ruby/rubygems] Revert DEFAULT_INSTALL_EXTENSION_IN_LIB to true
Many gems created with the default template over the past 6 years use
`require_relative` to load compiled extensions, which breaks when
extensions are not copied into the gem's lib directory. Restore the
default to true for now to mainta...
hsbt (Hiroshi SHIBATA)
02:39 AM Revision f3083308 (git): Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [advanced-security/filter-sarif](https://github.com/advanced-security/filter-sarif).
Updates `ruby/setup-ruby` ...
dependabot[bot]
12:42 AM Revision ad231cdf (git): Windows: Explicitly specify the use of `coreutils` commands
It appears that shims for individual commands are no longer being
created.
nobu (Nobuyoshi Nakada)
12:42 AM Revision efca0f45 (git): Use $LOAD_PATH.replace for safer restoration in test
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
12:42 AM Revision 9bcd9ba9 (git): Suppress bundled gems warning for subfeatures found outside stdlib [Bug #21828]
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
12:41 AM Revision 764a245e (git): Fix M:N threads under OpenBSD
OpenBSD requires MAP_STACK for memory regions used as thread stacks.
However it seems to error with "Invalid argument" unless the permissions
include both PROT_READ | PROT_WRITE.
We should be able to satisft this by re-mmapping over our...
jhawthorn (John Hawthorn)
12:38 AM Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
I've been using `IO::Buffer.map` on macOS without issues. It's still early days but I wonder why it was failing for you.
https://github.com/socketry/async-utilization/blob/main/lib/async/utilization/observer.rb
ioquatix (Samuel Williams)
 

Also available in: Atom