Project

General

Profile

Activity

From 12/25/2025 to 12/31/2025

Today

05:47 PM Revision 7cf6cc83 (git): Register imemo_ment as a pinning object
It sometimes pins itself when it is in the overloaded_cme table. peterzhu2118 (Peter Zhu)
02:56 PM Revision b27d9353 (git): Use `is_obj_encoding` instead of `is_data_encoding`
The argument to `is_data_encoding` is assumed to be `T_DATA`. nobu (Nobuyoshi Nakada)
02:22 PM Revision dbfedeb3 (git): [ruby/mmtk] Split ProcessObjFreeCandidates to parallel and non-parallel
This makes it easier to visualize in profilers which one is non-parallel.
https://github.com/ruby/mmtk/commit/ba68b2ef3b
peterzhu2118 (Peter Zhu)
02:22 PM Revision 544770d5 (git): [ruby/mmtk] Process obj_free candidates in parallel
This commit allows objects that are safe to be freed in parallel to do so.
A decrease in object freeing time can be seen in profiles.
The benchmarks don't show much difference.
Before:
-------------- -------------------- ---------- ...
peterzhu2118 (Peter Zhu)
12:44 PM Revision 99249cc5 (git): [ruby/json] Fix non-portable code
A plain `char` may be `signed` or `unsigned` depending on the
implementation. Also, bitwise ORing of `signed` values ​​is not
guaranteed to be `signed`. To ensure portability, should logical-OR
each comparison, but casting to `signed c...
nobu (Nobuyoshi Nakada)
10:16 AM Feature #21721 (Rejected): Allow `Queue` and `SizedQueue` to be used as LIFO queues
byroot (Jean Boussier)
10:16 AM Feature #21721 (Closed): Allow `Queue` and `SizedQueue` to be used as LIFO queues
Alright. I'll close this for now, and consider opening a feature request for `Thread::Stack`. byroot (Jean Boussier)
10:07 AM Revision c97f5d59 (git): [ruby/json] Simplify unescape_unicode
https://github.com/ruby/json/commit/976ba36629
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>
Scott Myron
09:54 AM Revision 61d45c85 (git): [ruby/json] Keep track of the the number of additional backslashes to avoid an extra memchr searching the remaining characters when no more backslashes exist.
https://github.com/ruby/json/commit/d21d9362fa Scott Myron
08:54 AM Revision 094145fb (git): [DOC] Move typed-data related macros
The flags for `rb_data_type_t::flags` are public constants for
defining `rb_data_type_t`. The embedded data flag and mask are
internal implementation detail.
nobu (Nobuyoshi Nakada)
08:00 AM Feature #8948: Frozen regex
matz (Yukihiro Matsumoto) wrote in #note-35:
> I still do not see enough benefit in putting in incompatible changes. Even if we can rewrite all the gems, we will still have incompatibility issues in user applications.
It seems extrem...
Eregon (Benoit Daloze)
03:33 AM Feature #8948: Frozen regex
Eregon (Benoit Daloze) wrote in #note-34:
> @matz Is it OK to merge https://github.com/ruby/ruby/pull/14547 now for 4.1?
I still do not see enough benefit in putting in incompatible changes. Even if we can rewrite all the gems, we wi...
matz (Yukihiro Matsumoto)
05:13 AM Bug #21816: iseq code_location of proc changed
Probably it's because of commit:c970d2941d56a862bb9bb3b808cb588c2982f436.
That is the indent is not related, but the behavior change.
nobu (Nobuyoshi Nakada)
03:53 AM Bug #21816 (Open): iseq code_location of proc changed
TBH, I'm not really sure if that title matches the problem here, but I can produce this issue with the following test:
```ruby
# bug.rb
# note the indentation of the callable
callable = -> { puts "Hello, World!" }
iseq = Rub...
zzak (zzak _)
02:29 AM Revision d95bebe0 (git): Make `RTYPEDDATA_EMBEDDABLE_P` internal-use only
It should not be exposed because it is so implementation specific that
it is only used in gc.c even within the entire Ruby source tree.
nobu (Nobuyoshi Nakada)
02:27 AM Revision c352808f (git): Introduce typed-data embeddable predicate macros
The combination of `&` and `&&` is confusing. nobu (Nobuyoshi Nakada)

12/30/2025

09:44 PM Misc #21804: Getting setup-ruby Earlier
I left some thoughts in the PR, but will post here to keep discussion in one place.
> Thanks for taking the time to open this PR to move the discussion forward, even though you’re understandably skeptical of the approach. I share your...
p-linnane (Patrick Linnane)
09:32 PM Misc #21804: Getting setup-ruby Earlier
Earlopain (Earlopain _) wrote in #note-6:
> But I think the bigger issue here is that windows builds are not first-party. So even if the release process gets adapted, issues like what [@mdalessio (Mike Dalessio)](/users/443) wrote above...
Eregon (Benoit Daloze)
09:17 PM Misc #21804: Getting setup-ruby Earlier
Eregon (Benoit Daloze) wrote in #note-2:
> So I think this is something to add to the post-release checklist:
@hsbt Would you be willing to do those steps when releasing a new version? Is there a public release checklist somewhere?
Othe...
Eregon (Benoit Daloze)
08:52 PM Misc #21804: Getting setup-ruby Earlier
Earlopain (Earlopain _) wrote in #note-6:
> I don't really see the point of automerging PRs when someone still has to create the release manually. Merging the PRs is not much effort, someone just needs to do it.
I meant the release w...
Eregon (Benoit Daloze)
07:58 PM Misc #21804: Getting setup-ruby Earlier
I don't really see the point of automerging PRs when someone still has to create the release manually. Merging the PRs is not much effort, someone just needs to do it.
Having this happen as part of release management sounds reasonable...
Earlopain (Earlopain _)
03:51 PM Misc #21804: Getting setup-ruby Earlier
> Maybe it'd make sense and possibly safe enough to automatically merge PRs by ruby-builder-bot, after they pass CI of course ... if someone is interested, please make a PR to setup-ruby.
I've opened https://github.com/ruby/setup-ruby...
mdalessio (Mike Dalessio)
03:04 PM Misc #21804: Getting setup-ruby Earlier

> https://github.com/ruby/setup-ruby/pull/844 got merged the same day, what would you expect?
A counter-example, though, is that the PR for windows support (https://github.com/ruby/setup-ruby/pull/847) took 3 days to get merged.
I thi...
mdalessio (Mike Dalessio)
12:13 PM Misc #21804: Getting setup-ruby Earlier
Maybe it'd make sense and possibly safe enough to automatically merge PRs by `ruby-builder-bot`, after they pass CI of course.
I'm not sure how feasible that is (e.g. is there a GHA event triggered when CI has passed?), but if someone is...
Eregon (Benoit Daloze)
12:05 PM Misc #21804: Getting setup-ruby Earlier
https://github.com/ruby/setup-ruby/pull/844 got merged the same day, what would you expect?
Concretely I currently merge setup-ruby PRs and I have told @hsbt in the past he can merge (+ release) for new added versions.
More people co...
Eregon (Benoit Daloze)
08:38 PM Misc #21777: DevMeeting-2026-01-14
* [Feature #8948] Frozen regex (eregon)
* Can we merge it now for 4.1? Then there is plenty of time for the few gems that rely on mutable Regexp to adapt.
* We can also revert it if it turns out to be too disrupting.
Eregon (Benoit Daloze)
08:37 PM Feature #8948: Frozen regex
@matz Is it OK to merge https://github.com/ruby/ruby/pull/14547 now for 4.1?
Then there is plenty of time for the few gems that rely on mutable Regexp to adapt.
BTW I noticed someone else also did a PR for this, so there seems to be ...
Eregon (Benoit Daloze)
06:02 PM Revision 9d37155c (git): [ruby/mmtk] Use MMTK_HEAP_COUNT for SIZE_POOL_COUNT
https://github.com/ruby/mmtk/commit/290a2aec4e peterzhu2118 (Peter Zhu)
05:24 PM Revision d40e056c (git): Skip the hang-up test on Windows
nobu (Nobuyoshi Nakada)
05:24 PM Revision 3086d582 (git): Run also test-tool on mingw
nobu (Nobuyoshi Nakada)
03:59 PM Feature #21084 (Closed): Declare objects have weak references
peterzhu2118 (Peter Zhu)
02:49 PM Feature #21084: Declare objects have weak references
Thanks, good find! I have a fix here: https://github.com/ruby/ruby/pull/15772 peterzhu2118 (Peter Zhu)
05:44 AM Feature #21084 (Open): Declare objects have weak references
I don't think this works correctly with generational GC. This crashes reliably on HEAD (works fine on 4.0.0)
``` ruby
wmap = ObjectSpace::WeakMap.new
GC.disable # only manual GCs
GC.start
GC.start
retain = []
50.times do
...
jhawthorn (John Hawthorn)
03:59 PM Revision b7bf8c20 (git): Add RVALUE_OLD_AGE to GC::INTERNAL_CONSTANTS for MMTk
peterzhu2118 (Peter Zhu)
03:59 PM Revision f2833e35 (git): Fix generational GC for weak references
Fixes issue pointed out in https://bugs.ruby-lang.org/issues/21084#note-7.
The following script crashes:
wmap = ObjectSpace::WeakMap.new
GC.disable # only manual GCs
GC.start
GC.start
retain = []
50.times do
...
peterzhu2118 (Peter Zhu)
03:02 PM Bug #21784 (Closed): Proc#source_location start column seems strange for -> {}
Applied in changeset commit:git|c970d2941d56a862bb9bb3b808cb588c2982f436.
----------
[Bug #21784] Fix the Proc#source_location start_column for stabby lambdas
* Consistent with plain `blocks` and `for` blocks and methods
where the so...
Eregon (Benoit Daloze)
03:02 PM Bug #21783 (Closed): {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Applied in changeset commit:git|cd66d15858a06406d1de854f3e9690d3557a9864.
----------
[Bug #21783] Fix documentation of {Method,UnboundMethod,Proc}#source_location
Eregon (Benoit Daloze)
03:02 PM Feature #6012 (Closed): Proc#source_location also return the column
Applied in changeset commit:git|d82fc3360d7cfa7e1e1a4dddb668b4c38808538a.
----------
Reapply "[Feature #6012] Extend `source_location` for end position
* This reverts commit 065c48cdf11a1c4cece84db44ed8624d294f8fd5.
* This functionalit...
Eregon (Benoit Daloze)
03:02 PM Revision c05e1060 (git): Exclude rbs tests which need updates for {Method,UnboundMethod,Proc}#source_location
* See https://github.com/ruby/ruby/pull/15580 Eregon (Benoit Daloze)
03:02 PM Revision a7fec4d6 (git): Update version guards in ruby/spec
Eregon (Benoit Daloze)
03:02 PM Revision c970d294 (git): [Bug #21784] Fix the Proc#source_location start_column for stabby lambdas
* Consistent with plain `blocks` and `for` blocks and methods
where the source_location covers their entire definition.
* Matches the documentation which mentions
"where the definition starts/ends".
* Partially reverts d357d50f0a7440...
Eregon (Benoit Daloze)
03:02 PM Revision cd66d158 (git): [Bug #21783] Fix documentation of {Method,UnboundMethod,Proc}#source_location
Eregon (Benoit Daloze)
03:02 PM Revision d82fc336 (git): Reapply "[Feature #6012] Extend `source_location` for end position
* This reverts commit 065c48cdf11a1c4cece84db44ed8624d294f8fd5.
* This functionality is very valuable and has already taken 14 years
to agree on the API.
* Let's just document it's byte columns (in the next commit).
* See https://bugs....
Eregon (Benoit Daloze)
02:55 PM Bug #21815 (Closed): Backport GH-15737
nobu (Nobuyoshi Nakada)
02:52 PM Bug #21815 (Closed): Backport GH-15737
[GH-15737] needs to be backported to the 4.0 branch.
[GH-15737]: https://github.com/ruby/ruby/pull/15737
nobu (Nobuyoshi Nakada)
02:45 PM Bug #21814 (Closed): 0.pow(2,-9999999999999999990) should be zero
Applied in changeset commit:git|19e539c9ee1701b34189fa0c1feb942adeb0e326.
----------
[Bug #21814] Fix negative bignum modulo
If modulo is zero, do not apply bias even if the divisor is zero.
`BIGNUM_POSITIVE_P` is true even on bignum ...
nobu (Nobuyoshi Nakada)
02:15 PM Bug #21814: 0.pow(2,-9999999999999999990) should be zero
[GH-15771](https://github.com/ruby/ruby/pull/15771) nobu (Nobuyoshi Nakada)
07:30 AM Bug #21814 (Closed): 0.pow(2,-9999999999999999990) should be zero
When I try `0.pow(2,-9999999999999999990)`, irb prints `-9999999999999999990`, but I think no matter what you divide zero by, the modulo should be zero.
Matz.
matz (Yukihiro Matsumoto)
02:00 PM Revision 19e539c9 (git): [Bug #21814] Fix negative bignum modulo
If modulo is zero, do not apply bias even if the divisor is zero.
`BIGNUM_POSITIVE_P` is true even on bignum zero.
nobu (Nobuyoshi Nakada)
01:31 PM Revision 966dbba8 (git): Box: skip checking the current box is the root box
Because checking the current box is not a cheap process. Satoshi Tagomori
09:33 AM Revision 27d6c966 (git): Add 4.0 to the spec_guards workflow
nobu (Nobuyoshi Nakada)
09:33 AM Revision 3f616d57 (git): Update ruby/setup-ruby action to v1.276.0
nobu (Nobuyoshi Nakada)
08:48 AM Feature #21796: unpack variant that returns the final offset
This might be useful for `A`, `a`, and `Z` as well.
Updated the PR [GH-15647] to use `^` with the tests.
[GH-15647]: https://github.com/ruby/ruby/pull/15647
nobu (Nobuyoshi Nakada)
08:06 AM Revision d5af8d78 (git): Box: allocate classes as boxable when it happens in the root box
Without this change, classes (including iclass) are allocated
as un-boxable classes after initializing user boxes (after starting
script evaluation). Under this situation, iclasses are created as
un-boxabled class when core modules are i...
Satoshi Tagomori
06:24 AM Feature #21797: Make Etc.nprocessors cgroup-aware on Linux
Thank you for the summary!
I'll open a separate ticket for auto-adjusting `RUBY_MAX_CPU`.
Come to think of it, `RUBY_MAX_CPU` may have different requirements from `Etc.nprocessors` (defaulting to max # of processors may be suboptimal...
osyoyu (Daisuke Aritomo)
12:22 AM Feature #21813 (Open): Add [:forward, :...] symbol tuple to indicate forwarding arguments when calling `Method#parameters`
When accessing `Method#parameters` for a method using forwarding parameters, an unexpected behavior arises:
```ruby
def foo(*, **, &)
binding.eval "print(#{(method(__method__).parameters.dig(0,1))})" # Works fine
end
foo(1,2,3...
pabloh (Pablo Herrero)

12/29/2025

04:42 PM Bug #21812 (Assigned): Kernel#sleep without arguments returns immediately when subprocess exits in another thread (regression in Ruby 4.0)
Thanks for the nice catch.
`git bisect` points to commit:8d8159e7d87e4fd1594ce2fad3d2653e47fb1026. The changes in that commit seem relevant to this issue.
@luke-gru Could you take a look?
mame (Yusuke Endoh)
04:12 PM Bug #21812 (Assigned): Kernel#sleep without arguments returns immediately when subprocess exits in another thread (regression in Ruby 4.0)
**Description**
In Ruby 4.0.0, Kernel#sleep without arguments returns 0 immediately when a subprocess (spawned via backticks in another thread) exits. This is a regression from Ruby 3.4.8 where sleep blocks indefinitely as expected.
...
jaimevelaz (Jaime Velaz)
02:14 PM Revision 65634d8d (git): [ruby/prism] Optimize ruby visitor
`compact_child_nodes` allocates an array. We can skip that step by simply yielding the nodes.
Benchmark for visiting the rails codebase:
```rb
require "prism"
require "benchmark/ips"
files = Dir.glob("../rails/**/*.rb")
results = file...
Earlopain (Earlopain _)
02:12 PM Revision 14fbcf0e (git): [ruby/prism] Report missing end errors at opening token
This commit adds an `expect1_opening` function that expects a token and
attaches the error to the opening token location rather than the current
position. This is useful for errors about missing closing tokens, where
we want to point to ...
thomasmarshall (Thomas Marshall)
02:12 PM Revision 8afd4fad (git): [ruby/prism] Add unterminated construct tests
https://github.com/ruby/prism/commit/166764f794 thomasmarshall (Thomas Marshall)
02:03 PM Revision 782d959f (git): Implement moving Immix in MMTk
This commit implements moving Immix in MMTk, which allows objects to move
in the GC.
The performance of this implementation is not yet amazing. It is very
similar to non-moving Immix in many of them and slightly slower in others.
The be...
peterzhu2118 (Peter Zhu)
02:03 PM Revision 7902ae34 (git): Add rb_gc_move_obj_during_marking
peterzhu2118 (Peter Zhu)
02:03 PM Revision 01cd9c9f (git): Add rb_gc_register_pinning_obj
peterzhu2118 (Peter Zhu)
02:03 PM Revision 56147001 (git): Move MEMO_NEW to imemo.c and rename to rb_imemo_memo_new
peterzhu2118 (Peter Zhu)
12:41 PM Bug #21801: compile failed at 4.0.0 preview 3 and snapshot issue
It may be worth noting that the filename x64-msvcrt-ruby400.dll indicates the use of a 64-bit msvcrt.dll runtime environment.
When trying to build master in a 32-bit msvcrt environment, I encountered a similar issue.
While I cannot d...
YO4 (Yoshinao Muramatsu)
07:01 AM Bug #21801: compile failed at 4.0.0 preview 3 and snapshot issue
nobu (Nobuyoshi Nakada) wrote in #note-2:
> darkspy (gerty ken) wrote:
> ...
now i tried cross compile from mingw64 in linux for windows target. the ruby 4 still can not run:
test.rb:
$stdout.sync = true
puts "test"
ruby test.rb
...
darkspy (gerty ken)
11:26 AM Revision da89f7f5 (git): Prefer `ALLOCV` over `ALLOCA` for unknown size
`ALLOCA` with too large size may result in stack overflow.
Incidentally, this suppresses the GCC false maybe-uninitialized
warning in `product_each`.
Also shrink `struct product_state` when `sizeof(int) < sizeof(VALUE)`.
nobu (Nobuyoshi Nakada)
09:41 AM Revision 26088dcd (git): [DOC] State that `rb_unexpected_type` is private
nobu (Nobuyoshi Nakada)
09:40 AM Revision 56a6a21f (git): Return `NULL` in a `void *` function
nobu (Nobuyoshi Nakada)
09:40 AM Revision 0f64da96 (git): Make `rb_check_typeddata` and `rbimpl_check_typeddata` identical
nobu (Nobuyoshi Nakada)
09:20 AM Revision 72627d85 (git): Declare `rb_data_typed_t` parameters and return values as nonull
nobu (Nobuyoshi Nakada)
08:22 AM Bug #21811 (Closed): Backport GH-15763
https://github.com/ruby/ruby/pull/15763 nobu (Nobuyoshi Nakada)
08:21 AM Revision 4e0bb58a (git): fix underflow
Luke Jahnke
05:54 AM Revision 38701a4d (git): Remove deprecated support for to_set taking arguments
jeremyevans (Jeremy Evans)
05:03 AM Feature #21797: Make Etc.nprocessors cgroup-aware on Linux
> What would be the value of nprocessor in this case?, e.g. if cpu_quotais 0.5, what does nprocessors return? cpu_quota.ceil?
I think it depends on the decision, but either floor or ceil should be fine (for reference, Go’s `GOMAXPROCS...
moznion (Taiki Kawakami)
01:33 AM Revision cb01b902 (git): rtypeddata.h: Add missing `RBIMPL_CAST`
In public headers, casts should be enclosed in `RBIMPL_CAST` for
compilation in C++.
nobu (Nobuyoshi Nakada)

12/28/2025

09:25 PM Revision 9e78353c (git): Fix maybe uninitialized warnings in random.c
Fixes the following compiler warnings:
random.c: In function `random_init`:
random.c:416:38: warning: `rng` may be used uninitialized in this function [-Wmaybe-uninitialized]
416 | unsigned int major = rng->version.maj...
peterzhu2118 (Peter Zhu)
08:51 PM Revision d615dbf4 (git): [DOC] Japanese for multi-byte characters
burdettelamar (Burdette Lamar)
07:58 PM Feature #21810 (Open): Enable JIT (yjit,zjit) when cross-compiling
Hello,
Please, add support for JIT while crosscompiling. Without it, embedded system will never user JIT. Even when the arch matches, the host alias normally does not match the build alias:
build_alias='x86_64-pc-linux-gnu'
host_a...
luizluca (Luiz Angelo Daros de Luca)
05:01 PM Revision 44e762a9 (git): Extract `rb_random_interface_t` alongside `rb_random_t` as well
nobu (Nobuyoshi Nakada)
05:01 PM Revision 68cd4635 (git): Ensure `T_DATA` before `RTYPEDDATA_P`
For the precondition of `RTYPEDDATA_P` that the argument must be a
Ruby object of `::RUBY_T_DATA`.
nobu (Nobuyoshi Nakada)
01:55 PM Revision eaa83e50 (git): Always allocate Fiber objects in Thread
Currently, root fibers of threads do not have a corresponding Ruby object
backing it by default (it does have one when an object is required, such
as when Fiber.current is called). This is a problem for the new GC weak
references design ...
peterzhu2118 (Peter Zhu)
10:22 AM Bug #21168: Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does
yui-knk (Kaneko Yuichiro) wrote in #note-8:
> @matz Just clarification, do we support `a[cmd 1, 2 do end]` and `a[cmd 1, 2 do end] = 3` too? IIRC, we discussed those cases in previous devmeeting and these codes are also accepted. Howeve...
matz (Yukihiro Matsumoto)
10:19 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
In any case, I am against implementing FIFO under the name Queue. I agree with having a new class.
Matz.
matz (Yukihiro Matsumoto)
08:23 AM Revision 3fe2ebf8 (git): Remove unnecessary comparison from is_local_port_fixed (#15757)
Simplify the conditions:
- Return false if the port is 0 or a negative number
- Return true if the port is a positive number
Misaki Shioi
05:42 AM Bug #21809: Segmentation fault when running RUBY_BOX=1 gem update --system
This actually happens on every `gem` comamnd (`gem list`, `gem install`, etc). wilsonsilva (Wilson Silva)
05:36 AM Bug #21809 (Open): Segmentation fault when running RUBY_BOX=1 gem update --system
I get a segmentation fault when I run `RUBY_BOX=1 gem update --system`. I'm using RubyGems version `4.0.3`. I've attached the crash report log file to this issue. There is no segfault when `RUBY_BOX=0`, so this really seem like an issue ... wilsonsilva (Wilson Silva)
01:34 AM Revision 6544c897 (git): Skip the hang-up test on mingw
nobu (Nobuyoshi Nakada)

12/27/2025

06:28 PM Revision 8415f8fa (git): [DOC] Use Japanese for multi-byte characters
burdettelamar (Burdette Lamar)
03:59 PM Revision a92c0342 (git): [DOC] Japanese only for multi-byte chars examples
burdettelamar (Burdette Lamar)
03:59 PM Revision 38d24294 (git): [DOC] Multibyte chars Japanese only
burdettelamar (Burdette Lamar)
11:46 AM Bug #21805: Wrong "key not found" in NoMatchingPatternKeyError when destructuring Data
Thanks. The https://github.com/ruby/ruby/pull/15748 will fix the issue. afurm (Andrii Furmanets)
09:26 AM Revision a8c3d5e1 (git): Fix: Do not fast_fallback if local_port is explicitly specified (#15732)
`fast fallback` cannot be used with explicitly specified local port,
because concurrent binds to the same `local_host:local_port`
can raise `Errno::EADDRINUSE`.
This issue is more likely to occur on hosts with `IPV6_V6ONLY` disabled,
be...
Misaki Shioi
08:38 AM Bug #21808: Inconsistency in support of additional newlines with boolean logical operators on new line
That blank line separates code visually, so continuing beyond it doesn't look nice to me. nobu (Nobuyoshi Nakada)
07:46 AM Revision 3c9e61f5 (git): [ruby/openssl] cipher: remove incorrect assertion in Cipher#update
Commit https://github.com/ruby/openssl/commit/1de3b80a46c2 (cipher: make output buffer String independent,
2024-12-10) ensures the output buffer String has sufficient capacity,
bu the length can be shorter. The assert() is simply incorre...
rhenium (Kazuki Yamaguchi)
06:53 AM Revision b8201a09 (git): Update bundled gems list as of 2025-12-27
git[bot]

12/26/2025

08:06 PM Revision dedde996 (git): [DOC] Use Japanese for multi-byte characters (#15745)
burdettelamar (Burdette Lamar)
03:14 PM Revision 7b3b1a14 (git): [DOC] Use self in call-seq for Method#call
peterzhu2118 (Peter Zhu)
03:14 PM Revision 6ae69e9a (git): [DOC] Remove args from call-seq of Method#call
peterzhu2118 (Peter Zhu)
12:05 PM Revision b304c149 (git): [DOC] Remove outdated documentation about command injection
[Feature #19630]
This dangerous behavior was removed in 4.0 (996cae65f3cc8fed60c6bb758b00882cac49389d)
but the documentation wasn't updated.
byroot (Jean Boussier)
10:33 AM Revision c3424615 (git): Remove an useless macro definition `RSTRUCT_PTR`
The underlying definition, `rb_struct_ptr`, was removed four years
ago.
nobu (Nobuyoshi Nakada)
09:10 AM Bug #21801: compile failed at 4.0.0 preview 3 and snapshot issue
nobu (Nobuyoshi Nakada) wrote in #note-2:
> darkspy (gerty ken) wrote:
> ...
i tryied 4.0.0 release on msys 2. same result as above
darkspy (gerty ken)
08:53 AM Revision 8c7b1401 (git): Remove `rb_iterate` deprecated since 1.9
nobu (Nobuyoshi Nakada)
08:53 AM Revision 2ac4cc0a (git): Remove `RUBY_FL_DUPPED` deprecated for 4 years
nobu (Nobuyoshi Nakada)
08:53 AM Revision a3ac83b7 (git): Remove taintedness/trustedness enums/macros deprecated for 4 years
nobu (Nobuyoshi Nakada)
08:02 AM Revision a447d39d (git): Remove `rb_gc_force_recycle` deprecated as "removed soon"
nobu (Nobuyoshi Nakada)
08:02 AM Revision cf60dc26 (git): Remove `rb_clone_setup` and `rb_dup_setup` deprecated for 4 years
nobu (Nobuyoshi Nakada)
08:02 AM Revision a41b1540 (git): Remove `rb_complex_polar` deprecated for 7 years
nobu (Nobuyoshi Nakada)
08:02 AM Revision f84110e6 (git): Remove old APIs to allocate a data object deprecated for 5 years
nobu (Nobuyoshi Nakada)
07:48 AM Revision 5c2f6639 (git): Remove `rb_clear_constant_cache` deprecated for 3 years
nobu (Nobuyoshi Nakada)
06:50 AM Bug #21807 (Closed): ArgumentError is reported when forwarding arguments to method with intermediate optional arguments
The backport to only 3.4 is required. nobu (Nobuyoshi Nakada)
03:40 AM Bug #21807 (Closed): ArgumentError is reported when forwarding arguments to method with intermediate optional arguments
In Ruby 3.4.x, `ArgumentError` is reported when forwarding arguments to a method with intermediate optional arguments.
How to reproduce:
Execute sample below.
``` ruby
class Foo
def foo(a = nil, b)
p a, b
end
end
...
taichi730 (Taichi Ishitani)
06:47 AM Bug #21808 (Assigned): Inconsistency in support of additional newlines with boolean logical operators on new line
If I recall, this is intentional. A blank line before a period for a method call also causes a parsing error.
```
$ ruby -e '"foo"
>
> ...
-e: -e:3: syntax error found (SyntaxError)
1 | "foo"
2 |
> 3 | .upcase
| ^ unexp...
mame (Yusuke Endoh)
06:16 AM Bug #21808 (Assigned): Inconsistency in support of additional newlines with boolean logical operators on new line
With this I mean the new Ruby 4 feature.
With the old style, one could add additional lines in between:
```ruby
if true &&
true
puts 'match'
end
```
With the new style, this results in a syntax error
```ruby
if true...
herwin (Herwin W)
06:11 AM Revision 1ca46434 (git): CI: Warn deprecated features to be removed at this version
nobu (Nobuyoshi Nakada)
06:11 AM Revision ccc8610b (git): Remove `RUBY_GC_HEAP_INIT_SLOTS` environment variable
nobu (Nobuyoshi Nakada)
06:11 AM Revision 4c07e61b (git): Deprecate old VC
nobu (Nobuyoshi Nakada)
06:11 AM Revision 0b65ac6d (git): Remove a no longer used prototype declaration in re.c
Include internal/error.h instead. nobu (Nobuyoshi Nakada)
05:20 AM Revision 704ac72f (git): Clarify the intent of the test for "ruby -h" to fit in 80x25
mame (Yusuke Endoh)
05:05 AM Revision b01fd2d8 (git): Fix RSET_IS_MEMBER macro parameter mismatch
The RSET_IS_MEMBER macro had a parameter named 'sobj' but the macro
body used 'set' instead, causing the first argument to be ignored.
This worked by accident because all current callers use a variable
named 'set', but would cause compi...
Andrii Furmanets
04:27 AM Revision bad7dd5d (git): [DOC] Separate updated gems lists into sections in NEWS.md
nobu (Nobuyoshi Nakada)
03:38 AM Revision 594dd8bf (git): [ruby/pp] Support private instance_variables_to_inspect
(https://github.com/ruby/pp/pull/70)
* Support private instance_variables_to_inspect in pp
Ruby supports calling instance_variables_to_inspect even when
it is defined as a private method (ruby/ruby#13555).
This change aligns pp with R...
Takashi Sakaguchi
03:12 AM Revision 9824724b (git): Skip test_write_binary(GemSingletonTest) at rbs tests
```
Errno::EACCES: Permission denied @ rb_file_s_rename
...
D:/a/ruby/ruby/src/lib/rubygems/util/atomic_file_writer.rb:42:in 'File.rename'
```
It may caused with atomic_file_writer.rb
hsbt (Hiroshi SHIBATA)
03:12 AM Revision 02275b1e (git): uutils-coreutils 0.5.0 has been removed uutils wrapper
hsbt (Hiroshi SHIBATA)
02:33 AM Bug #21798 (Assigned): `bundle install` command fails if touches `$LOAD_PATH` on `Ruby::Box` enabled
hsbt (Hiroshi SHIBATA)
02:33 AM Bug #21806 (Assigned): `bundler/inline` generates "uninitialized constant Gem::NameTuple" only when RUBY_BOX=1
hsbt (Hiroshi SHIBATA)
02:01 AM Revision e95a9942 (git): Update default gems list at 565ea26ad10ea8c3c6ce9bdae6cbb7 [ci skip]
git[bot]
02:00 AM Revision 565ea26a (git): Disabled to run lobsters benchmark because it didn't work with Ruby 4.1 yet
hsbt (Hiroshi SHIBATA)
02:00 AM Revision 89af2354 (git): Added ruby_41? platform
hsbt (Hiroshi SHIBATA)
02:00 AM Revision 93df9668 (git): Mark development version for unreleased gems
hsbt (Hiroshi SHIBATA)
02:00 AM Revision 70c7f3ad (git): [ruby/strscan] Bump version
https://github.com/ruby/strscan/commit/747a3b5def Sutou Kouhei
02:00 AM Revision fda7019c (git): [ruby/net-protocol] Add Net::Protocol::TCP_SOCKET_NEW_HAS_OPEN_TIMEOUT
* To find out efficiently if TCPSocket#initialize supports the open_timeout keyword argument.
https://github.com/ruby/net-protocol/commit/738c06f950
Eregon (Benoit Daloze)
02:00 AM Revision 4d7db86a (git): [ruby/json] Add missing documentation for `allow_control_characters` parsing option
https://github.com/ruby/json/commit/a5c160f372 byroot (Jean Boussier)
02:00 AM Revision 8ccfb375 (git): [ruby/json] Update `fpconv_dtoa` definition to use `dest[32]`
https://github.com/ruby/json/commit/4808fee9af 久我山菜々
02:00 AM Revision 1f526b34 (git): [ruby/ipaddr] Follow-up fix for InvalidAddressError messages
https://github.com/ruby/ipaddr/commit/b92ef74b91 Taketo Takashima
02:00 AM Revision f3149af3 (git): [ruby/prism] Sync `Prism::Translation::ParserCurrent` with Ruby 4.0
This PR updates the fallback version for `Prism::Translation::ParserCurrent` from 3.4 to 4.0.
Currently, the fallback resolves to `Parser34`, as shown below:
```console
$ ruby -v -rprism -rprism/translation/parser_current -e 'p Prism::...
koic (Koichi ITO)
02:00 AM Revision 44a17656 (git): [ruby/timeout] add test case for string argument
https://github.com/ruby/timeout/commit/fef9d07f44 t-mangoe
02:00 AM Revision f8d0960a (git): [ruby/resolv] Handle TCP Requester #recv_reply incomplete data
https://github.com/ruby/resolv/commit/9c640bdc4a Jean-Samuel Aubry-Guzzi
02:00 AM Revision 4b7bbd43 (git): [ruby/resolv] Fix TCP Requester #recv_reply
https://github.com/ruby/resolv/commit/96dc3d15fe Jean-Samuel Aubry-Guzzi
02:00 AM Revision 74becf1b (git): Start to develop 4.1.0.dev
hsbt (Hiroshi SHIBATA)
02:00 AM Revision bdbe8d50 (git): [ruby/rubygems] Write gem files atomically
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/ac...
eileencodes (Eileen Uchitelle)
02:00 AM Revision c5376a3a (git): [ruby/rubygems] Remove deprecated, unused Gem::List
https://github.com/ruby/rubygems/commit/43371085f4 hsbt (Hiroshi SHIBATA)
02:00 AM Revision 80242458 (git): [ruby/date] remove conditional for uint64_t
https://github.com/ruby/date/commit/47778c32d8 maciej.mensfeld (Maciej Mensfeld)
02:00 AM Revision 5960fb9f (git): [ruby/date] remove redundant code
https://github.com/ruby/date/commit/5e6a458179 maciej.mensfeld (Maciej Mensfeld)
02:00 AM Revision bcaa127e (git): [ruby/date] code remarks, macros and r2.6 support
https://github.com/ruby/date/commit/2682dc79c0 maciej.mensfeld (Maciej Mensfeld)
02:00 AM Revision ea03f263 (git): [ruby/date] improve styling
https://github.com/ruby/date/commit/cd7a329dfd maciej.mensfeld (Maciej Mensfeld)
02:00 AM Revision f09e35ee (git): [ruby/date] [ruby/date] Optimize Gregorian date conversions with Neri-Schneider algorithm
Replace floating-point arithmetic and iterative loops with pure integer
operations for ~40% faster Date operations. Date.ordinal and Date.commercial
are ~2x faster due to O(1) first-day-of-year calculation.
Reference: https://arxiv.org/...
maciej.mensfeld (Maciej Mensfeld)
02:00 AM Revision ae46f916 (git): [ruby/stringio] [DOC] Doc for StringIO#read
(https://github.com/ruby/stringio/pull/197)
Previous doc merely linked to `IO#read`; new doc stays local, shows
examples using `StringIO`.
https://github.com/ruby/stringio/commit/e8b66f8cdd
burdettelamar (Burdette Lamar)
02:00 AM Revision 9a76ccdb (git): [ruby/stringio] [DOC] Doc for StringIO#putc
(https://github.com/ruby/stringio/pull/196)
Previous doc merely linked to `IO#putc`. The new doc stays local,
provides examples using `StringIO` objects.
https://github.com/ruby/stringio/commit/8983f32c50
burdettelamar (Burdette Lamar)
02:00 AM Revision 354dc574 (git): [ruby/stringio] [DOC] Doc for StringIO#pread
(https://github.com/ruby/stringio/pull/195)
Previous doc unhelpfully pointed to `IO#pread`; this PR documents
locally, with StringIO examples.
https://github.com/ruby/stringio/commit/806f3d9741
burdettelamar (Burdette Lamar)
02:00 AM Revision 67f830e0 (git): [ruby/stringio] Development of 3.2.1 started.
https://github.com/ruby/stringio/commit/c9cd1c9947 Sutou Kouhei
12:31 AM Revision 290fa0d8 (git): [ruby/mmtk] Fix cargo fmt
https://github.com/ruby/mmtk/commit/f4c46cabc7 peterzhu2118 (Peter Zhu)
12:07 AM Revision 715d69ac (git): Update default gems list at a06a59e3b34cd5227363dc3af14dc6 [ci skip]
git[bot]
12:06 AM Revision a06a59e3 (git): Rename and enabled auto-update bundled gems again
hsbt (Hiroshi SHIBATA)
12:06 AM Revision 2fa02d6d (git): Enabled auto-update NEWS.md and sync for default gems again
hsbt (Hiroshi SHIBATA)

12/25/2025

11:59 PM Revision 010dcf85 (git): Development of 4.1.0 started.
matz (Yukihiro Matsumoto)
11:59 PM Revision 99e9ca1f (git): [DOC] Flush NEWS.md
matz (Yukihiro Matsumoto)
11:39 PM Bug #21806 (Assigned): `bundler/inline` generates "uninitialized constant Gem::NameTuple" only when RUBY_BOX=1
## Steps to reproduce
1. Prepare a file that uses "bundler/inline"
2. Run with RUBY_BOX=1
```ruby
# issue.rb
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org"
gem "json"
end
require "json"
put...
sinsoku (Takumi Shotoku)
10:46 PM Bug #21805 (Open): Wrong "key not found" in NoMatchingPatternKeyError when destructuring Data
Consider
```
Foo = Data.define(:x)
Foo.new(1) => {x:, z:}
```
It raises `#<data Foo x=1>: key not found: :x (NoMatchingPatternKeyError)`
Clearly the message is misleading, as it is key :z that is missing.
esad (Esad Hajdarevic)
04:02 PM Misc #21804: Getting setup-ruby Earlier
In this case the update is automated and ready to be merged by the repo maintainer: https://github.com/ruby/setup-ruby/pull/844
If I may, the issue to me seems more to be like many Ruby owned projects, it's mostly a one person show, s...
byroot (Jean Boussier)
02:56 PM Misc #21804 (Open): Getting setup-ruby Earlier
ruby/setup-ruby is commonly used for development in OSS projects and real-world Rails applications.
https://github.com/ruby/setup-ruby
This is not specific to Ruby 4.0.0. There is often a delay between a Ruby release and the availabi...
koic (Koichi ITO)
02:18 PM Feature #21084 (Closed): Declare objects have weak references
Applied in changeset commit:git|10b97f52fd2cba189b8952fcb02c4d6dd9b1b6f2.
----------
Implement declaring weak references
[Feature #21084]
# Summary
The current way of marking weak references uses `rb_gc_mark_weak(VALUE *ptr)`.
This ...
peterzhu2118 (Peter Zhu)
02:18 PM Revision 7eb08808 (git): Update zjit bindings
peterzhu2118 (Peter Zhu)
02:18 PM Revision 57637827 (git): Implement cont using declare weak references
peterzhu2118 (Peter Zhu)
02:18 PM Revision 0c07a424 (git): Implement weak references on gen fields cache
peterzhu2118 (Peter Zhu)
02:18 PM Revision ade779b1 (git): Implement callcache using declare weak references
peterzhu2118 (Peter Zhu)
02:18 PM Revision a7ef2a9b (git): Implement declarative weak references in MMTk
peterzhu2118 (Peter Zhu)
02:18 PM Revision b2feb09e (git): Implement WeakMap and WeakKeyMap using declare weak references
peterzhu2118 (Peter Zhu)
02:18 PM Revision 10b97f52 (git): Implement declaring weak references
[Feature #21084]
# Summary
The current way of marking weak references uses `rb_gc_mark_weak(VALUE *ptr)`.
This presents challenges because Ruby's GC is incremental, meaning that if the
`ptr` changes (e.g. realloc'd or free'd), then we...
peterzhu2118 (Peter Zhu)
02:18 PM Revision 16626d50 (git): Implement rb_darray_swap_remove
peterzhu2118 (Peter Zhu)
12:35 PM Revision 099da884 (git): test_box: avoid failure with --program-suffix (#15734)
sorah (Sorah Fukumori)
06:31 AM Revision 6a66129d (git): fix the condition of www repo
naruse (Yui NARUSE)
06:03 AM Misc #21777: DevMeeting-2026-01-14
- [Bug #21803] `Addrinfo#connect_internal` should raise `IO::TimeoutError` on user-specified timeouts
- I’d like to make `Socket.tcp` consistently raise `IO::TimeoutError` when a user-specified timeout occurs, rather than raising `Err...
shioimm (Misaki Shioi)
05:57 AM Bug #21803 (Open): `Addrinfo#connect_internal` should raise `IO::TimeoutError` on user-specified timeouts
## Background & Proposal
`Addrinfo#connect_internal` is a core internal method that is called by both
`Addrinfo#connect` and `Addrinfo#connect_from`.
It receives a user-specified timeout value from these methods and currently raises
...
shioimm (Misaki Shioi)
02:56 AM Revision d375bcc9 (git): [DOC] Escape capitalized word "data" not to be linked unexpectedly
nobu (Nobuyoshi Nakada)
02:49 AM Revision b908306f (git): [DOC] Reword "Regular Expression" to "Matched Data"
`$~` and its accessors are related to regular expressions, but are not
themselves.
nobu (Nobuyoshi Nakada)
02:47 AM Revision 84edb845 (git): Revert "Rollback to minitest-5.27.0"
This reverts commit 8d097bc472fc66221dee23bb8f9e0dddac16db23. hsbt (Hiroshi SHIBATA)
12:06 AM Revision 3c4cda10 (git): [DOC] Add back Rust 1.85.0 requirement to NEWS.md (#15728)
* [DOC] Add back Rust 1.85.0 requirement to NEWS.md
Addresses k0kubun's review in https://github.com/ruby/ruby/pull/15711#issuecomment-3690541074
NEWS.md serves both CRuby developers as well as end-users. As the
release date closes in,...
chancancode (Godfrey Chan)
 

Also available in: Atom