Project

General

Profile

Activity

From 12/10/2025 to 12/16/2025

Today

08:00 PM Revision 5e27581c (git): ZJIT: Use rb_zjit_writebarrier_check_immediate() instead of rb_gc_writebarrier() in gen_write_barrier()
* To avoid calling rb_gc_writebarrier() with an immediate value in gen_write_barrier(),
and avoid the LIR jump issue.
Eregon (Benoit Daloze)
08:00 PM Revision 04edf3d9 (git): ZJIT: Add a VALUE#write_barrier helper method to deduplicate logic
Eregon (Benoit Daloze)
08:00 PM Revision 49cecd36 (git): ZJIT: Guard other calls to rb_gc_writebarrier() with a !special_const_p() check
Eregon (Benoit Daloze)
08:00 PM Revision 68174c31 (git): ZJIT: Do not call rb_gc_writebarrier() with an immediate value in gen_write_barrier()
Eregon (Benoit Daloze)
08:00 PM Revision 4d4f414a (git): Use RBIMPL_ASSERT_OR_ASSUME instead of ASSUME for better errors when it does not hold
Eregon (Benoit Daloze)
08:00 PM Revision 094418a6 (git): gc.h: Reintroduce immediate guard in `rb_obj_written`
This guard was removed in https://github.com/ruby/ruby/pull/13497
on the justification that some GC may need to be notified even for
immediate.
But the two currently available GCs don't, and there are plenty
of assumtions GCs don't ever...
byroot (Jean Boussier)
08:00 PM Revision cc048f75 (git): Revert "ZJIT: Do not call rb_gc_writebarrier() with an immediate value in gen_write_barrier()"
* This reverts commit 623559faa3dd0927b4034a752226a30ae8821604.
* There is an issue with the jump in LIR, see https://github.com/ruby/ruby/pull/15542.
Eregon (Benoit Daloze)
07:59 PM Feature #21785 (Open): Add signed and unsigned LEB128 support to pack / unpack
Hi,
I'd like to add signed and unsigned LEB128 support to the pack and unpack methods. LEB128 is a variable length encoding scheme for integers. You can read the wikipedia entry about it here: https://en.wikipedia.org/wiki/LEB128
...
tenderlovemaking (Aaron Patterson)
07:56 PM Revision eaa952b5 (git): YJIT: Print `Rc` strong and weak count on assert failure
For <https://bugs.ruby-lang.org/issues/21716>, the panic is looking like
some sort of third party memory corruption, with YJIT taking the fall.
At the point of this assert, the assembler has dropped, so there's
nothing in YJIT's code oth...
alanwu (Alan Wu)
07:55 PM Revision 70a7c551 (git): YJIT: Print `Rc` strong and weak count on assert failure
For <https://bugs.ruby-lang.org/issues/21716>, the panic is looking like
some sort of third party memory corruption, with YJIT taking the fall.
At the point of this assert, the assembler has dropped, so there's
nothing in YJIT's code oth...
alanwu (Alan Wu)
07:53 PM Revision f3d1557d (git): Revert "ZJIT: Allow ccalls above 7 arguments"
This reverts commit 2f151e76b5dc578026706b31f054d5caf5374b05.
The SP decrement (push) before the call do not match up with
the pops after the call, so registers were restored incorrectly.
Code from:
./miniruby --zjit-call-threshol...
alanwu (Alan Wu)
07:50 PM Bug #21565 (Closed): YJIT has panicked in rails
alanwu (Alan Wu)
07:42 PM Misc #15487 (Closed): Clarify default gems maintanance policy
zverok (Victor Shepelev)
07:42 PM Feature #12790 (Closed): Better inspect for stdlib classes
zverok (Victor Shepelev)
07:39 PM Feature #20953: Array#fetch_values vs #values_at protocols
Ugh, for some reason this was forgotten.
Any chance it can be updated/merged before 4.0, or is it too late already? Not a big issue, I'd guess, but would be good to wrap it up some time.
@byroot Can I be of any help?
zverok (Victor Shepelev)
07:07 PM Bug #19112 (Closed): Ractor garbage collection breaks/disables all active tracepoints
Applied in changeset commit:git|4fb537b1ee28bb37dbe551ac65c279d436c756bc.
----------
Make tracepoints with set_trace_func or TracePoint.new ractor local (#15468)
Before this change, GC'ing any Ractor object caused you to lose all
enabl...
Anonymous
07:06 PM Revision 4fb537b1 (git): Make tracepoints with set_trace_func or TracePoint.new ractor local (#15468)
Before this change, GC'ing any Ractor object caused you to lose all
enabled tracepoints across all ractors (even main). Now tracepoints are
ractor-local and this doesn't happen. Internal events are still global.
Fixes [Bug #19112]
Luke Gruber
06:06 PM Bug #21715 (Closed): Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
Applied in changeset commit:git|d209e6f1c0a93ad3ce1cc64dd165a6b67672614d.
----------
search_nonascii(): Replace UB pointer cast with memcpy
Casting a pointer to create an unaligned one is undefined behavior in C
standards. Use memcpy t...
alanwu (Alan Wu)
06:06 PM Revision d209e6f1 (git): search_nonascii(): Replace UB pointer cast with memcpy
Casting a pointer to create an unaligned one is undefined behavior in C
standards. Use memcpy to express the unaligned load instead to play by
the rules.
Practically, this yields the same binary output in many situations
while fixing th...
alanwu (Alan Wu)
05:44 PM Revision a8ba2b29 (git): add 21254 to the feature list
tenderlovemaking (Aaron Patterson)
04:47 PM Revision aab4f628 (git): Add the instance variable name and the module in Ractor::IsolationError (#15563)
etienne (Étienne Barrié)
04:10 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
> However, since that functionality actually exists, I think #size has no choice but to return nil.
Respectfully, I disagree. I think it is much easier _and more useful_ to explain it along the lines of...
**It is infinite by impl...
zverok (Victor Shepelev)
03:45 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I understand zverok's feeling. In fact, I thought `Enumerator.produce` always returned an infinite Enumerator. I'm surprised it can be stopped by `StopIteration`. However, since that functionality actually exists, I think `#size` has no ... mame (Yusuke Endoh)
03:26 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
@mame My thinking (already outlined above) goes this way:
* while `Enumerator#size`, I believe, is not used extensively, it might in the future (this very change of `Enumerator.produce` call-sequence brings some attention to it)
* `Enu...
zverok (Victor Shepelev)
03:00 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
Yes, all bug fixes could be incompatibilities. What I am interested in is whether this incompatibility is actually causing a real problem, and if so, what kind of applications or libraries was affected. mame (Yusuke Endoh)
02:54 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
The point of this discussion is that fixing the "bug" broke compatibility, and we are comparing the impacts. That "bug" can or should be properly fixed by changing the code to `Enumerator.produce(1, size: nil) { raise StopIteration }.la... knu (Akinori MUSHA)
02:41 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
With Ruby 3.4:
```ruby
Enumerator.produce(1) { raise StopIteration }.lazy.take(5).size #=> 5
Enumerator.produce(1) { raise StopIteration }.lazy.take(5).to_a.size #=> 1
```
I believe it is fair to call this behavior a bug.
mame (Yusuke Endoh)
02:36 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
mame (Yusuke Endoh) wrote in #note-16:
> What problem do you have if the size is `nil`?
Among others, `Enumerator.produce(1) { it+1 }.lazy.take(5)` now returns nil, which returned 5 previously.
https://github.com/ruby/ruby/blob/6b...
knu (Akinori MUSHA)
02:17 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I couldn't find any cases where `Enumerator#size` returns `Float::INFINITY` for a finite-length Enumerator, except `Enumerator.produce` and when explicitly creating a fake-sized enumerator with `Enumerator.new(Float::INFINITY)`. Am I mis... mame (Yusuke Endoh)
01:15 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
knu (Akinori MUSHA) wrote in #note-14:
> I'm leaning toward doing these:
> ...
IMO, this seems like a great compromise!
zverok (Victor Shepelev)
01:12 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I'm leaning toward doing these:
- Removing the Enumerator#to_set override that refuses to work against an infinite enumerator as a safeguard
- Reverting the default size of Enumerator.produce from nil to infinity
This way we can g...
knu (Akinori MUSHA)
01:00 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
zverok (Victor Shepelev) wrote in #note-7:
> 2) Somebody uses `Enumerator.produce` alongside other types of enumerators. In some branch of their code, they do `raise "Can't do this operation" if enum.size == Float::INFINITY`. The compati...
knu (Akinori MUSHA)
12:34 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
It's good points about compatibility, I agree losing the `size` on `.take` is not good.
IMO trying to detect "infinite loop" (in https://bugs.ruby-lang.org/issues/21654) is kinda pointless, it's the halting problem, for the vast majorit...
Eregon (Benoit Daloze)
12:13 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
> This is where you are mistaken.
No, that's exactly what I've meant:
```ruby
# case 1:
e = Enumerator.produce(1, size: Float::INFINITY) {it>=3 ? raise(StopIteration) : it+1}
p e.to_set
# ruby 3.4: #<Set: {1, 2, 3}>
# master...
zverok (Victor Shepelev)
12:12 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I may have misread your comment. Let me review again. knu (Akinori MUSHA)
11:53 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
zverok (Victor Shepelev) wrote in #note-7:
> TBH, I don't see the compatibility argument applied with any consistency here.
> ...
This is where you are mistaken.
- Ruby 3.4.7
```shellsession
% ruby -ve 'e=Enumerator.produce(1) {it>...
knu (Akinori MUSHA)
06:26 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> However, the change that made Enumerator#to_set refuse to operate when the size returns infinity introduced a compatibility issue
TBH, I don't see the compatibility argument applied with any consistency here.
Let's imagine severa...
zverok (Victor Shepelev)
04:59 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
The argument that Enumerator.produce is infinite by nature is certainly valid. However, the change that made Enumerator#to_set refuse to operate when the size returns infinity introduced a compatibility issue: it breaks existing code th... knu (Akinori MUSHA)
04:06 PM Revision 09a29e13 (git): Add the class variable and the class itself in Ractor::IsolationError (#15562)
etienne (Étienne Barrié)
02:29 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I have the following hypothesis: When people want column information, what they really need is an AST. #21005 was precisely such an example.
In some cases, column information alone may suffice, but obtaining the AST inevitably yields co...
mame (Yusuke Endoh)
02:09 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
> Regarding to power_assert
So it's great power_assert has much more advanced parsing capabilities, but I for one would use the column information for things like Rails' `assert_difference -> { User.count }, +1`, as it would be quite ...
byroot (Jean Boussier)
02:01 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
> And also to be able to use `Prism.node_for` one of course needs `Proc#source_location`.
Huh? `Proc` already has its `node_id` (via its ISeq), so `Prism.node_for` is implementable without `source_location`.
In fact, by doing the follo...
mame (Yusuke Endoh)
12:14 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Yes, it'd be useful for e.g. `assert_raise(SomeException) { ... }` in test-unit, `expect { ... }.to` in RSpec, `-> { ... }.should raise_error(...)` in MSpec, etc.
For example `-> { 13 - "10" }.should raise_error(ArgumentError)` in MSp...
Eregon (Benoit Daloze)
11:21 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Isn't `Proc.source_location` very useful for things akin to `power_assert`?
If it was easy to extract a proc's source code I'd certainly integrate it in testing framework to improve failure rendering.
byroot (Jean Boussier)
09:56 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
mame (Yusuke Endoh) wrote in #note-13:
> I agree. But then, when would `Proc#source_location` be useful?
There are cases where it's useful to show just the block, i.e. `{ block body }`.
And also to be able to use `Prism.node_for` on...
Eregon (Benoit Daloze)
09:51 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Eregon (Benoit Daloze) wrote in #note-12:
> And I suspect many of these cases would likely use `Prism` and specifically [Prism.node_for](https://github.com/ruby/prism/pull/3808) to get more information, such as showing the method call t...
mame (Yusuke Endoh)
09:36 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
byroot (Jean Boussier) wrote in #note-10:
> Maybe I'm totally off, but I expect this data to be used to extract the source code, e.g show a snippet of code in an error message, or something akin to that, hence byte offsets seem actually...
Eregon (Benoit Daloze)
09:31 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I made a PR to re-add `{Method,UnboundMethod,Proc}#source_location` and fix all known issues: https://github.com/ruby/ruby/pull/15580
@matz Would it be OK to merge it? 🙏
For context I opened this issue because I was surprised at the sem...
Eregon (Benoit Daloze)
09:26 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Maybe I'm totally off, but I expect this data to be used to extract the source code, e.g show a snippet of code in an error message, or something akin to that, hence byte offsets seem actually more convenient? (and performant).
But ye...
byroot (Jean Boussier)
08:41 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
matz (Yukihiro Matsumoto) wrote in #note-8:
> I'd like to cancel `source_location` to have column information in 4.0, due to this concern.
> ...
Thank you for the quick reply, I think that would be the worst outcome though, https://bug...
Eregon (Benoit Daloze)
02:46 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I'd like to cancel `source_location` to have column information in 4.0, due to this concern. In my personal opinion, I am leaning toward byte index, though.
Matz.
matz (Yukihiro Matsumoto)
01:23 PM Revision 6b35f074 (git): Box: [DOC] Add RUBY_BOX in Environment
Satoshi Tagomori
12:39 PM Bug #21654: Set#new calls extra methods compared to previous versions
knu (Akinori MUSHA) wrote in #note-17:
> Adding Range#to\_set and Enumerator#to\_set overrides that perform size checks would help users avoid most common pitfalls.
I think it's actually very rare to call `.to_set` on something else ...
Eregon (Benoit Daloze)
12:20 PM Feature #6012: Proc#source_location also return the column
Right, I thought about that too but forgot to write it.
Several gems have already adapted to this feature and their functionality and/or tests might rely on having the extra information, so it's definitely not great to remove this last ...
Eregon (Benoit Daloze)
11:26 AM Feature #6012: Proc#source_location also return the column
And RSpec were also adjusted to the new behavior AFAICT:
https://github.com/rspec/rspec/pull/282/commits/1c20fa80772ca7a1ed0512056ce7cd6a94f8e68d
vo.x (Vit Ondruch)
11:25 AM Feature #6012: Proc#source_location also return the column
Just FTR, not sure how the revert is supposed to look like, but at least Pry was adjusted for the new behavior:
https://github.com/pry/pry/pull/2357
It does not benefit from columns, but I suspect the revert would somehow influence...
vo.x (Vit Ondruch)
10:16 AM Feature #6012: Proc#source_location also return the column
mame (Yusuke Endoh) wrote in #note-32:
> I record the summary of the discussion regarding Matz's decision to revert this for now. The decision was based on a combination of several reasons:
Thank you for documenting that.
It feels t...
Eregon (Benoit Daloze)
09:42 AM Feature #6012 (Open): Proc#source_location also return the column
I record the summary of the discussion regarding Matz's decision to revert this for now. The decision was based on a combination of several reasons:
* Unclear use cases
* The description of #6012 lacked a use case.
* The use cas...
mame (Yusuke Endoh)
02:43 AM Feature #6012: Proc#source_location also return the column
Although last minute, we will cancel this feature in 4.0 because of design ambiguities such as whether to return column positions in bytes or characters as in #21783.
Matz.
matz (Yukihiro Matsumoto)
10:52 AM Revision 2b1a9afb (git): Fix: Do not pass negative timeout to Addrinfo#connect_internal (#15578)
This change fixes a bug where, with `Socket.tcp`’s `fast_fallback option` disabled, specifying `open_timeout` could unintentionally pass a negative value to `Addrinfo#connect_internal`, `causing an ArgumentError`.
```
❯ ruby -rsocket -e...
Misaki Shioi
08:51 AM Revision e42bcd7c (git): Rename fiber_serial into ec_serial
Since it now live in the EC. byroot (Jean Boussier)
08:51 AM Revision 28b195fc (git): Store the fiber_serial in the EC to allow inlining
Mutexes spend a significant amount of time in `rb_fiber_serial`
because it can't be inlined (except with LTO).
The fiber struct is opaque the so function can't be defined as inlineable.
Ideally the while fiber struct would not be opaque...
byroot (Jean Boussier)
07:53 AM Revision 85b40c5e (git): Box: fix the class name in tests
nobu (Nobuyoshi Nakada)
07:53 AM Revision 5f09e1f0 (git): Box: [DOC] fix the class name in rdoc
Also remove a stale TODO. nobu (Nobuyoshi Nakada)
07:53 AM Revision 8db3642a (git): Box: fix the class name in inspect
nobu (Nobuyoshi Nakada)
07:53 AM Revision 7780d3b6 (git): Box: fix the environment variable name
nobu (Nobuyoshi Nakada)
07:53 AM Revision f4c48505 (git): Box: move extensions from namespace to box
nobu (Nobuyoshi Nakada)
07:13 AM Revision 065c48cd (git): Revert "[Feature #6012] Extend `source_location` for end position
and columns"
This reverts commit 073c4e1cc712064e626914fa4a5a8061f903a637.
https://bugs.ruby-lang.org/issues/6012#note-31
> we will cancel this feature in 4.0 because of design ambiguities
> ...
[#21783]: https://bugs.ruby-lang.org/iss...
nobu (Nobuyoshi Nakada)
06:28 AM Revision 5b0fefef (git): [ruby/rubygems] Added assertion for Windows and nmake
https://github.com/ruby/rubygems/commit/be5c4e27d9 hsbt (Hiroshi SHIBATA)
05:18 AM Revision e4797e93 (git): [ruby/rubygems] Reset MAKEFLAGS option for build jobs tests
https://github.com/ruby/rubygems/commit/09e6031a11 hsbt (Hiroshi SHIBATA)
04:21 AM Revision 080bf30c (git): [ruby/rubygems] Allow to specify the number of `make` jobs when installing gems:
- Added a new `-j` option to `gem install` and `gem update`.
This option allows to specify the number of jobs we pass to `make`
when compiling gem with native extensions.
By default its the number of processors, but users may want...
Edouard CHIN
04:21 AM Revision 9f593156 (git): [ruby/rubygems] Pass down value of `BUNDLE_JOBS` to RubyGems before compiling:
- ### Problem
Since https://github.com/ruby/rubygems/pull/9131, we are now
compiling make rules simultaneously. The number of jobs
is equal to the number of processors.
This may be problematic for some users as they want to cont...
Edouard CHIN
04:05 AM Bug #21266 (Closed): YJIT GC safety crash with proc objects as block argument
Applied in changeset commit:git|9168cad4d63a5d281d443bde4edea6be213b0b25.
----------
YJIT: Bail out if proc would be stored above stack top
Fixes [Bug #21266].
rwstauner (Randy Stauner)
04:05 AM Revision 9168cad4 (git): YJIT: Bail out if proc would be stored above stack top
Fixes [Bug #21266]. rwstauner (Randy Stauner)
03:56 AM Revision f3b9509b (git): [ruby/rubygems] Fix quote handling in mise format ruby version parsing
The previous regex didn't properly match quoted strings
it would capture the opening quote as part of the version
if quotes were mismatched.
This change properly parses double-quoted, single-quoted,
and unquoted version strings separatel...
hituzi no sippo
03:56 AM Revision 3b50f4ba (git): [ruby/rubygems] Support single quotes in mise format ruby version
https://github.com/ruby/rubygems/commit/a7d7ab39dd hituzi no sippo
03:18 AM Revision 3b3ab338 (git): ZJIT: Fix test failures from line number of `Primitive` shifting
This can happen with documentation updates and we don't want
those to trip on ZJIT tests.
Redact the whole name since names like "_bi342" aren't that helpful
anyways.
alanwu (Alan Wu)
02:52 AM Bug #21784: Proc#source_location start column seems strange for -> {}
The column information from `source_location` will be canceled in 4.0. Let us discuss for the future. I think it's a matter of taste. I don't really care much.
Matz.
matz (Yukihiro Matsumoto)
02:36 AM Revision 06019991 (git): [ruby/rubygems] Allow to show cli_help with bundler executable
https://github.com/ruby/rubygems/commit/a091e3fd10 hsbt (Hiroshi SHIBATA)
12:56 AM Revision 38d67986 (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
12:25 AM Revision b6d4562e (git): [DOC] Remove copyright from Set class docs
peterzhu2118 (Peter Zhu)
12:16 AM Revision ff1b8ffa (git): [ruby/rubygems] Tweak the Bundler's "X gems now installed message":
- Fix https://github.com/ruby/rubygems/pull/9188
- This message is a bit misleading because it always outputs one extra
specs, which is Bundler itself.
This is now fixed when the message is about to be output.
https://github.com/ru...
Edouard CHIN
12:15 AM Revision f88e7970 (git): [ruby/rubygems] Allow bundle pristine to work for git gems in the same repo:
- Fix https://github.com/ruby/rubygems/pull/9186
- ### Problem
Running `bundle pristine` in a Gemfile where there is many git gem
pointing to the same repository will result in a error
"Another git process seems to be running in t...
Edouard CHIN
12:10 AM Revision 98cac1a7 (git): Point people to redmine on ZJIT docs (#15499)
Fix https://github.com/Shopify/ruby/issues/900 tekknolagi (Maxwell Bernstein)

12/15/2025

10:48 PM Revision abefd3e8 (git): [ruby/psych] Check that Data members match exactly
* Fixes https://github.com/ruby/psych/issues/760
https://github.com/ruby/psych/commit/952008c898
Eregon (Benoit Daloze)
10:48 PM Revision b3f0fb56 (git): [ruby/psych] Replace C extension with Data#initialize bind_call
https://github.com/ruby/psych/commit/6a826693ba nick evans
10:28 PM Revision cfd41cbf (git): [DOC] Harmonize #-@ methods
burdettelamar (Burdette Lamar)
10:27 PM Revision acbf55f4 (git): [DOC] Harmonize #- methods
burdettelamar (Burdette Lamar)
10:27 PM Revision 7fbf321d (git): [DOC] Harmonize #** methods
burdettelamar (Burdette Lamar)
10:07 PM Revision 98ab418f (git): Revert "Fix Socket.tcp cleanup after Thread#kill (#15131)" (#15565)
This reverts commit 3038286a4bf7832f1c42c8cc9774ee6ff19876fc.
The following CI failure scared me:
https://github.com/ruby/ruby/actions/runs/20241051861/job/58108997049
```
1) Timeout:
TestResolvDNS#test_multiple_servers_with_timeou...
Luke Gruber
08:52 PM Bug #21784: Proc#source_location start column seems strange for -> {}
I made a PR to fix this: https://github.com/ruby/ruby/pull/15568
Looking at https://github.com/ruby/ruby/pull/9872/files it's clear in Prism it was just done to be compatible with parse.y.
And in parse.y it's probably not intentional...
Eregon (Benoit Daloze)
04:40 PM Bug #21784: Proc#source_location start column seems strange for -> {}
I too, would expect the whole expression to be covered. This would be also consistent with `Method#source_location` which includes `def` (and not starts from the argument, or from the beginning of the body). zverok (Victor Shepelev)
04:32 PM Bug #21784: Proc#source_location start column seems strange for -> {}
Interesting.
The arguments (parameters) between `->` and `{` are AFAIK integral part of the stabby lambda syntax, so I think it should be either:
* All cases start at the `{`:
* consistent with non-stabby-lambda Procs
* but does ...
Eregon (Benoit Daloze)
03:35 PM Bug #21784: Proc#source_location start column seems strange for -> {}
Except the problematic case `-> { }`, start position consistently excludes whitespaces just after `->`.
So I think `-> { }`'s source location should be `{ }`.
~~~ruby
-> ( ) { }.source_location # ["(irb)", 1, 3, 1, 10]
^^^^^^^
->...
tompng (tomoya ishida)
10:53 AM Bug #21784 (Open): Proc#source_location start column seems strange for -> {}
```
$ ruby -e 'p -> { a }.source_location'
["-e", 1, 4, 1, 10]
```
So it considers the stabby lambda to be at:
```ruby
p -> { a }.source_location
^^^^^^
```
Note it starts at a whitespace after the `->`.
I think it should ...
Eregon (Benoit Daloze)
08:27 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Honestly if we're interpreting column as something visual like you're implying, we're also going to run into issues with grapheme clusters and east asian width and all the other implications for whatever "character" actually means. I thi... kddnewton (Kevin Newton)
07:55 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
From https://bugs.ruby-lang.org/issues/6012#note-25 @matz said adding column was OK, but not byte offsets.
I'm not sure what were his reasons, but maybe it's that byte offsets are too low-level for `source_location`?
If so, I would thi...
Eregon (Benoit Daloze)
06:29 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Updating the docs is one solution, so at least it's consistent between docs and behavior.
I think as a Ruby-facing API it's weird that it operates in terms of bytes (and `source_location` does not have a `byte` prefix to indicate that...
Eregon (Benoit Daloze)
03:13 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I think this is a documentation issue, as both parsers/compilers operate in terms of bytes. Changing this to characters would likely be a noticeable difference in speed, and quite a bit of code change. (Either both parsers/compilers woul... kddnewton (Kevin Newton)
10:40 AM Bug #21783 (Open): {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
The documentation says:
```
= Proc.source_location
(from ruby core)
------------------------------------------------------------------------
prc.source_location -> [String, Integer, Integer, Integer, Integer]
---------------...
Eregon (Benoit Daloze)
05:16 PM Revision 74b24e09 (git): Update default gems list at adf676c530b5da2822aa3b03ee43e5 [ci skip]
git[bot]
05:15 PM Revision adf676c5 (git): [ruby/erb] Version 6.0.1
https://github.com/ruby/erb/commit/bbde68fcd5 k0kubun (Takashi Kokubun)
05:14 PM Revision fdd8bdea (git): [ruby/erb] Freeze ERB::Compiler::TrimScanner::ERB_STAG
(https://github.com/ruby/erb/pull/100)
For Ractor compatibility.
https://github.com/ruby/erb/commit/43f0876595
osyoyu (Daisuke Aritomo)
04:52 PM Revision 9581d6c8 (git): ZJIT: Add iongraph-generating Ruby script (#15466)
Run like so:
$ ../tool/zjit_iongraph.rb ../build-dev/miniruby --zjit-call-threshold=2 tmp/ghbug.rb
false
false
tmp/ghbug.rb:3:in 'Object#doit': this shouldnt ever be nil (RuntimeError)
from tmp/ghbug.rb:10:in...
tekknolagi (Maxwell Bernstein)
04:48 PM Revision 3038286a (git): Fix Socket.tcp cleanup after Thread#kill (#15131)
Socket.tcp launches ruby threads to resolve hostnames, and those threads
communicate through a queue implemented with `IO.pipe`. When the thread
that called `Socket.tcp` is killed, the resolver threads still try to
communicate through th...
Luke Gruber
04:28 PM Revision 6b63b0cb (git): [DOC] Update Set#inspect description in NEWS
jeremyevans (Jeremy Evans)
03:52 PM Revision bb0e42c5 (git): Define Array#detect as an alias for Array#find
Otherwise Array#detect is Enumerable#detect while Array#find uses a
different more performant implementation.
[Feature #21678]
etienne (Étienne Barrié)
03:10 PM Feature #21678: Enumerable#rfind
Is this an issue where you could have defined `Enumerable#find` and now it won't have overwritten `Array#find`? Should I revert that part of this patch? kddnewton (Kevin Newton)
11:14 AM Feature #21678: Enumerable#rfind
@etienne Yes, that seems clearly a good fix, could you do it?
(I personally don't like `detect` but we should keep aliases consistent in performance and behavior)
Eregon (Benoit Daloze)
10:35 AM Feature #21678: Enumerable#rfind
Should we alias `detect` to also use that Array-specific faster implementation?
```console
>> [].method :detect
=> #<Method: Array(Enumerable)#detect(*)>
> ...
=> #<Method: Array#find(*)>
```
Edit: https://github.com/ruby/ruby/pull/15558
etienne (Étienne Barrié)
01:43 PM Revision ac946e07 (git): [ruby/prism] Unreference before destroying in call node in pattern
https://github.com/ruby/prism/commit/609c80c91e kddnewton (Kevin Newton)
11:49 AM Bug #21709: Regexp interpolation is inconsistent with String interpolation
Right, I think Regexp interpolation should be closer to String interpolation, currently it's its own separate thing with rather weird rules.
It reminds me of some other issues related to Regexp interpolation like #20407 and linked issues.
Eregon (Benoit Daloze)
11:42 AM Feature #8948: Frozen regex
Right, it's too late for 4.0, OK.
> Frankly, I don't think freezing the Regexp objects is worth the effort/trouble.
I already did the implementation effort so that part is fine.
I think it's worth it for consistency and clean sema...
Eregon (Benoit Daloze)
11:38 AM Revision eceab2f4 (git): [ruby/prism] Escape error location is incorrect for some regex
When you have a regular expression that has a named capture that
has an escape sequence in the named capture, and that escape
sequence is a unicode escape sequence with an invalid surrogate
pair, the error was attached to the owned strin...
kddnewton (Kevin Newton)
11:11 AM Revision bbc10ed0 (git): Add NEWS entry for Array#rfind and Array#find
Eregon (Benoit Daloze)
10:40 AM Bug #21174: Range#max called with an argument on a beginless Integer Range raises RangeError
It's a bit late to mention this, but I find this new behavior quite strange.
Range is used to represent both discrete sequences and continuous ranges, and when performing iterative operations, the begin value distinguishes between them....
mame (Yusuke Endoh)
10:21 AM Bug #21723: `binding.irb` raises a LoadError under `bundle exec` when Gemfile contains `path:` or `git:`
I have discovered that this issue reproduces when Gemfile contains a gem referred by `path:` or `git:`.
Such Gemfiles are pretty much common in real-world applications including Rails, which use in-house Gems and libraries, like this:
...
osyoyu (Daisuke Aritomo)
09:59 AM Bug #21782: Ractor::IsolationError reports incorrect path for constants found through upwards search
Patch submitted: https://github.com/ruby/ruby/pull/15556 osyoyu (Daisuke Aritomo)
09:20 AM Bug #21782 (Open): Ractor::IsolationError reports incorrect path for constants found through upwards search
Ractor::IsolationError is raised when non-main Ractors attempt access to non-shareable constants. The message contains the path to the constant which triggered the violation.
However, the path is incorrect when the constant was resolved...
osyoyu (Daisuke Aritomo)
09:51 AM Revision 35209cae (git): Update default gems list at f0793731853c0e130f798e9dc5c736 [ci skip]
git[bot]
09:50 AM Revision f0793731 (git): [ruby/openssl] Ruby/OpenSSL 4.0.0
https://github.com/ruby/openssl/commit/5af1edab18 rhenium (Kazuki Yamaguchi)
09:09 AM Revision f06eb756 (git): [ruby/openssl] ossl.c: improve docs for constants and methods under ::OpenSSL
https://github.com/ruby/openssl/commit/b0de8ba9bd rhenium (Kazuki Yamaguchi)
09:09 AM Revision ee6ba41b (git): [ruby/openssl] Freeze more constants for Ractor compatibility
https://github.com/ruby/openssl/commit/695126f582 rhenium (Kazuki Yamaguchi)
08:44 AM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
I investigated further and I understand Alan's patch is the best at this time.
auto vectorization for this kind of loop is implemented only by GCC 15, it's too early.
@Alan, could you commit it?
naruse (Yui NARUSE)
08:38 AM Revision 10876c27 (git): Skip test_crash_report_pipe with macOS 15
hsbt (Hiroshi SHIBATA)
08:38 AM Revision d69dff1d (git): macOS 15 is the stable version today
hsbt (Hiroshi SHIBATA)
08:38 AM Revision 3563a0db (git): Add predicates for platforms
nobu (Nobuyoshi Nakada)
08:38 AM Revision c98aa977 (git): Pend some tests because these are not working with macOS 15 beta and Xcode 16 beta
hsbt (Hiroshi SHIBATA)
08:38 AM Revision b3e1d82f (git): Remove macos-13 and add macos-15.
hsbt (Hiroshi SHIBATA)
07:05 AM Revision 5a4faaae (git): Merge `root_box_data` into `root_box`
* Make invariant `root_box` an array consist of only `root_box_data`.
* Remove the unnecessary initializer list that is just overwritten in
`initialize_root_box()` and missing `classext_cow_classes`.
* Shrink the scope using another lo...
nobu (Nobuyoshi Nakada)
06:08 AM Revision 700487ce (git): [ruby/net-http] Refactor HTTPS tests
This contains various improvements in tests for openssl integration:
- Remove DHE parameters from test servers. OpenSSL is almost always
compiled with ECC support nowadays and will prefer ECDHE over DHE.
- Remove an outdated omi...
rhenium (Kazuki Yamaguchi)
03:11 AM Revision a2dc4d7f (git): Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v...
dependabot[bot]
02:33 AM Revision 76f30030 (git): Bump msys2/setup-msys2 from 2.29.0 to 2.30.0
Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits...
dependabot[bot]
02:31 AM Revision dd25fdcd (git): Bump actions/cache from 5.0.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
02:01 AM Revision 1e76b1f8 (git): [DOC] Remove doc/reline
Reline has been moved to a bundled gem, so we don't need the docs anymore. peterzhu2118 (Peter Zhu)
01:15 AM Revision 58940377 (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)

12/14/2025

10:35 PM Revision e7cf07ba (git): [DOC] Fix link in MakeMakefile
burdettelamar (Burdette Lamar)
09:11 PM Revision 490a03ba (git): [ruby/prism] Fix `sexp_processor` gem reference
It's https://rubygems.org/gems/sexp_processor, not https://rubygems.org/gems/sexp
https://github.com/ruby/prism/commit/b8a00a5f15
Earlopain (Earlopain _)
07:17 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
There are, by the way, other effects of the current default that are, even if minor, still annoying:
```ruby
Enumerator.produce(1, &:succ).lazy.take(6).size
# Ruby 3.4: => 6 -- which is correct and useful
# Ruby 4.0: => nil -- ...
zverok (Victor Shepelev)
10:19 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> I think `Enumerator#size` should only be non-nil when it is known to be the exact size.
> ...
I would argue that it is _known_ to be infinite: that's how `produce` works: loops infinitely, unless explicitly stopped by an _exception_, t...
zverok (Victor Shepelev)
10:10 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
Actually for Enumerator.new, it's trivial to not be infinite and does not even need StopIteration, e.g.:
```ruby
Enumerator.new { |y| y << 1 }.count # => 1
```
So I guess you meant to use `Enumerator.produce` instead in your exampl...
Eregon (Benoit Daloze)
10:08 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
I disagree on this one, as written on https://bugs.ruby-lang.org/issues/21701#note-3
I think `Enumerator#size` should only be non-nil when it is known to be the exact size.
In this case it is not known if it is infinite, so returning `F...
Eregon (Benoit Daloze)
08:46 AM Bug #21780 (Open): Change the default size of Enumerator.produce back to infinity
In #21701 a new argument `size:` was introduced, and its default value is `nil` (unknown).
While I support the new argument, I'd argue that the default should be `Float::INFINITY`.
**Reasoning:** By _design_, `Enumerator.produce` ...
zverok (Victor Shepelev)
06:37 PM Revision 3e5c4ebe (git): [DOC] Fix backticks in Numeric#ceil
peterzhu2118 (Peter Zhu)
06:37 PM Revision cd27337d (git): [DOC] Fix backticks in Numeric#floor
peterzhu2118 (Peter Zhu)
06:33 PM Feature #21781 (Open): Add `fetch_values` method on `ENV`
In https://bugs.ruby-lang.org/issues/10017, `fetch_values` was introduced for `Hash`. `ENV` is hash-like but is missing the method. Here are the differences between hash and env right now:
```rb
irb(main):006> Hash.instance_methods -...
Earlopain (Earlopain _)
05:14 PM Revision 529b4914 (git): [ruby/prism] Only set location end when it is larger
https://github.com/ruby/prism/commit/65595d6c2c kddnewton (Kevin Newton)
05:14 PM Revision ca083515 (git): [ruby/prism] Unreference the block node before destroying it
https://github.com/ruby/prism/commit/fc150b1588 kddnewton (Kevin Newton)
04:42 PM Revision 4a84fa1b (git): [ruby/prism] Define RubyParser::SyntaxError directly and drop require for ruby_parser.
Had to add a require of sexp since that came in indirectly via ruby_parser.
https://github.com/ruby/prism/commit/df677c324f
Ryan Davis
02:13 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Here is my PR to add `Prism.node_for` as first suggested by @mame in https://bugs.ruby-lang.org/issues/21005#note-5:
https://github.com/ruby/prism/pull/3808
Eregon (Benoit Daloze)
10:46 AM Revision 674c3d73 (git): [ruby/openssl] pkcs7: raise OpenSSL::PKCS7::PKCS7Error in #initialize
When d2i_PKCS7_bio() and PEM_read_bio_PKCS7() fail to decode the input,
OpenSSL::PKCS7.new currently raises ArgumentError. The usual practice
in ruby/openssl where an error originates from the underlying OpenSSL
library is to raise OpenS...
rhenium (Kazuki Yamaguchi)
10:46 AM Revision 7969b654 (git): [ruby/openssl] x509cert: update doc for OpenSSL::X509::Certificate#==
Mention the underlying OpenSSL function. Add a note about the unreliable
comparison when called on an incomplete object.
Fixes https://github.com/ruby/openssl/issues/844
https://github.com/ruby/openssl/commit/736af5b3c7
rhenium (Kazuki Yamaguchi)
08:54 AM Feature #21389: Simplify Set#inspect output
@jeremyevans0 Thank you for the clarification. I'll try to consider adjusting the docs to reflect the design. zverok (Victor Shepelev)
02:46 AM Feature #21389 (Closed): Simplify Set#inspect output
zverok (Victor Shepelev) wrote in #note-5:
> Just noticed that on the latest `master` subclasses `#inspect` didn't change (unlike what @matz suggests here: https://bugs.ruby-lang.org/issues/21389#note-3):
> ...
Yes, this is deliberate ...
jeremyevans0 (Jeremy Evans)
08:53 AM Bug #21778: Binding#eval vs implicit parameters
@mame Thank you for the clarification! zverok (Victor Shepelev)
02:39 AM Bug #21778 (Rejected): Binding#eval vs implicit parameters
This was pointed by @ko1 at the dev meeting in the discussion of #21049, and we agreed not to implement it. Implementing it would require the parser to accept more detailed outer context, and that effort was not worth. Sorry it wasn't cl... mame (Yusuke Endoh)
08:50 AM Misc #21777: DevMeeting-2026-01-14
* [Bug #21780] Change the default size of `Enumerator.produce` back to infinity (zverok)
* While the new argument is a good addition to the API, I argue that `Float::INFINITY` would be a more friendly default, corresponding to the mos...
zverok (Victor Shepelev)
07:11 AM Revision 711d1499 (git): Adjust indents [ci skip]
nobu (Nobuyoshi Nakada)
02:59 AM Revision ab95abd4 (git): Update default gems list at 9e22037eb50d7abe6385901c9b0293 [ci skip]
git[bot]
02:59 AM Revision 9e22037e (git): [ruby/io-console] bump up to 0.8.2
https://github.com/ruby/io-console/commit/fbc7e1f31f nobu (Nobuyoshi Nakada)
02:45 AM Revision f6ef4efa (git): ZJIT: Add a test for `--zjit-stats=<path>` option
Fix up ruby/ruby#15414, 29c29c2b7e972359ab83038c5dc27a7e53ae65c7 nobu (Nobuyoshi Nakada)
02:45 AM Revision 3a4d534b (git): ZJIT: Fix tests about `--zjit-stats-quiet` option
The `--zjit-stats-quiet` and `--zjit-stats=quiet` options differ.
The latter option, `=quiet`, does print stats to the file "quiet", but
does not suppress output like yjit option `--yjit-stats=quiet`.
Fix up ruby/ruby#15414, 29c29c2b7e9...
nobu (Nobuyoshi Nakada)
02:43 AM Bug #21779 (Closed): Do not export functions from statically linked extensions
Applied in changeset commit:git|bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e.
----------
[Bug #21779] Uniquify `InitVM` functions as well as `Init`
Avoid possible name conflict when `--with-static-linked-ext`.
nobu (Nobuyoshi Nakada)
02:10 AM Bug #21779 (Closed): Do not export functions from statically linked extensions
Reported at https://github.com/ruby/io-console/pull/105.
This is caused by `InitVM_console` exposed from the statically linked io/console is called from the loaded io-console gem.
The static `InitVM_console` initializes the ractor lo...
nobu (Nobuyoshi Nakada)
02:11 AM Revision c26057eb (git): [Bug #21779] Do not export InitVM functions
Fix ruby/io-console#105. nobu (Nobuyoshi Nakada)
02:11 AM Revision bc2a8a00 (git): [Bug #21779] Uniquify `InitVM` functions as well as `Init`
Avoid possible name conflict when `--with-static-linked-ext`. nobu (Nobuyoshi Nakada)
01:57 AM Revision 01db5d71 (git): Removed duplicate code
nobu (Nobuyoshi Nakada)
01:09 AM Revision c198436f (git): Run omnibus compilations without git
nobu (Nobuyoshi Nakada)

12/13/2025

08:30 PM Revision 0159a98b (git): [Feature #20925] Skip infinite loop test
nobu (Nobuyoshi Nakada)
08:09 PM Revision b423204c (git): Fix documentation of RB_PASS_CALLED_KEYWORDS in C API
Eregon (Benoit Daloze)
06:53 PM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
Oh, that's a very interesting trick @tompng byroot (Jean Boussier)
05:50 PM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
Maybe this is off-topic, but I think this stack that internally use queue can perform closer to Thread::Queue.
~~~ruby
def pop(timeout: nil)
if @dummy_resource_queue.deq(timeout:)
@real_resource_array.pop
end
end
def <<(...
tompng (tomoya ishida)
08:33 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
I'm +1 on making Monitor core.
(FWIW TruffleRuby already uses `Primitive` to define Monitor as basically core: https://github.com/truffleruby/truffleruby/blob/master/lib/mri/monitor.rb)
Eregon (Benoit Daloze)
07:10 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
So, if Monitor was made a core class, it could benefit from some optimizations and be almost as fast as Mutex: https://github.com/ruby/ruby/pull/15538
```
ruby 4.0.0dev (2025-12-13T06:49:18Z core-monitor 6fabf389fd) +YJIT +PRISM [arm...
byroot (Jean Boussier)
06:50 PM Bug #21669: Thoroughly implement void value expression check
Yeah, sure. I compiled them in this gist: https://gist.github.com/Earlopain/79d49df05cca5b0c8c6cefc6f3284a4b. I missed one vendored file, so there are only 6 distinct cases.
In `ruby/prism` I added a script for this. You call it like ...
Earlopain (Earlopain _)
05:57 PM Bug #21669: Thoroughly implement void value expression check
Earlopain (Earlopain _) wrote in #note-12:
> I ran this change over code available on rubygems and it only impacts 37 files which go syntax invalid with this. If I take out duplicate vendorered files, it is down to just 7.
If it's no...
jeremyevans0 (Jeremy Evans)
02:05 PM Bug #21669: Thoroughly implement void value expression check
Yeah, it seems like I missed this case but @nobu already took care of it in his PR. I left a comment about something, however since this is in ruby/ruby now I can't actually push any changes anymore myself.
I ran this change over code...
Earlopain (Earlopain _)
06:31 PM Feature #21389 (Open): Simplify Set#inspect output
Just noticed that on the latest `master` subclasses `#inspect` didn't change (unlike what @matz suggests here: https://bugs.ruby-lang.org/issues/21389#note-3):
```ruby
class MySet < Set
end
p Set[1, 2, 3] #=> Set[1, 2, 3]
p My...
zverok (Victor Shepelev)
06:11 PM Bug #21778 (Rejected): Binding#eval vs implicit parameters
This works:
```ruby
proc { |x| binding.eval('x') }.call(1) #=> 1
```
This doesn't (neither with numbered parameters, nor with `it`):
```ruby
proc { _1; binding.eval('_1') }.call(1) # undefined local variable or method '_1' for ...
zverok (Victor Shepelev)
04:57 PM Revision e8d32ddd (git): [ruby/openssl] ossl.c: implement OpenSSL::OpenSSLError#detailed_message
An OpenSSL function sometimes puts more than one error entry into the
thread-local OpenSSL error queue. Currently, we use the highest-level
entry for generating the exception message and discard the rest.
Let ossl_make_error() capture a...
rhenium (Kazuki Yamaguchi)
03:43 PM Revision 6513cf90 (git): Export `GIT`
Propagate the value given with `--with-git` configure option to
tool/lib/vcs.rb.
nobu (Nobuyoshi Nakada)
02:33 PM Feature #21701 (Closed): Enumerator.produce accepts an optional `size` keyword argument
Applied in changeset commit:git|79a6ec74831cc47d022b86dfabe3c774eaaf91ca.
----------
Enumerator.produce accepts an optional `size` keyword argument
When not specified, the size is unknown (`nil`). Previously, the size was always `Floa...
Anonymous
02:33 PM Revision 79a6ec74 (git): Enumerator.produce accepts an optional `size` keyword argument
When not specified, the size is unknown (`nil`). Previously, the size was always `Float::INFINITY` and not specifiable.
[Feature #21701]
Akinori MUSHA
02:29 PM Revision 0561eb94 (git): [ruby/prism] Prevent an infinite loop parsing a capture name
Fixes https://github.com/ruby/prism/pull/3729.
https://github.com/ruby/prism/commit/6e5347803c
Steven Johnstone
12:37 PM Revision 8f2c479f (git): [ruby/io-console] strip trailing spaces [ci skip]
https://github.com/ruby/io-console/commit/379e7c17ed nobu (Nobuyoshi Nakada)
12:37 PM Revision 3a4ad76f (git): [ruby/io-console] console_cursor_pos respects scroll position on windows
https://github.com/ruby/io-console/commit/ae33785820 YO4 (Yoshinao Muramatsu)
12:37 PM Revision c8fd8405 (git): [ruby/io-console] console_goto respects scroll position on windows
https://github.com/ruby/io-console/commit/d2a6c69697 YO4 (Yoshinao Muramatsu)
12:37 PM Revision 29128258 (git): [ruby/io-console] avoid jumping scroll position when winsize changed
On windows, IO.console.winsize= now respects the current view area and screen buffer size.
https://github.com/ruby/io-console/commit/817aa65ea3
YO4 (Yoshinao Muramatsu)
12:10 PM Bug #21648: [prism] ruby crashes for `for * in [10]; end`
Thanks @k0kubun. Seems like I can, yeah. I'll do that in the future where I think it makes sense. Earlopain (Earlopain _)
11:34 AM Revision 9dbbdcc3 (git): [ruby/io-console] Remove useless rb_check_arity() call
https://github.com/ruby/io-console/commit/df444b93f1 nobu (Nobuyoshi Nakada)
04:52 AM Revision 71dd2725 (git): Remove useless rb_check_arity() calls
shugo (Shugo Maeda)
02:23 AM Revision e1f5e61d (git): YJIT: Fix panic from overly loose filtering in identity method inlining
Credits to @rwstauner for noticing this issue in GH-15533. alanwu (Alan Wu)
01:27 AM Revision 6ed5574b (git): Revert "ZJIT: Exclude failing ruby-bench benchmarks (#15479)"
This reverts commit 1eb10ca3cb6cff98bb8c0946ed905921586c7d52.
This should have been fixed by https://github.com/ruby/ruby/pull/15536.
k0kubun (Takashi Kokubun)
01:00 AM Revision eb7acd75 (git): ZJIT: Nil-fill locals in direct send (#15536)
Avoid garbage reads from locals in eval.
Before the fix the test fails with
<"[\"x\", \"x\", \"x\", \"x\"]"> expected but was
<"[\"x\", \"x\", \"x\", \"x286326928\"]">.
rwstauner (Randy Stauner)

12/12/2025

11:55 PM Revision 8f81d2b5 (git): ZJIT: Don't inline non-parameter locals
rwstauner (Randy Stauner)
11:43 PM Revision f19e9c66 (git): YJIT: Fix panic from overly loose filtering in identity method inlining
Credits to @rwstauner for noticing this issue in GH-15533. alanwu (Alan Wu)
11:43 PM Revision 628a9410 (git): YJIT: Add missing local variable type update for fallback setlocal blocks
Previously, the chain_depth>0 version of setlocal blocks did not
update the type of the local variable in the context. This can leave
the context with stale type information and trigger or lead to miscompilation.
To trigger the issue, Y...
alanwu (Alan Wu)
11:29 PM Revision 2f151e76 (git): ZJIT: Allow ccalls above 7 arguments (#15312)
ZJIT: Add stack support for CCalls aidenfoxivey (Aiden Fox Ivey)
11:19 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
Thanks for sharing the logs -- I was able to track down the issue using it.
Backport for 3.4 is pending at https://github.com/ruby/ruby/pull/15535
alanwu (Alan Wu)
08:29 PM Bug #21772 (Closed): ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
Applied in changeset commit:git|2884f53519c4b86072d5fc3b41a71cee697af8ba.
----------
YJIT: Add missing local variable type update for fallback setlocal blocks
Previously, the chain_depth>0 version of setlocal blocks did not
update the ...
alanwu (Alan Wu)
10:30 PM Bug #21696 (Closed): Performance degradation for long running processes in Ruby 4.0.0-preview2
luke-gru (Luke Gruber)
10:03 PM Revision 176e384b (git): Cache filesystem_encindex
jhawthorn (John Hawthorn)
09:53 PM Revision e7a38b32 (git): Store Encoding#name as an attribute
When debugging the fstring table, I found "UTF-8" to be the most common
interned strings in many benchmarks.
We have a fixed, limited number of these strings, so we might as well permanently
cache their fstrings.
jhawthorn (John Hawthorn)
08:29 PM Revision 2884f535 (git): YJIT: Add missing local variable type update for fallback setlocal blocks
Previously, the chain_depth>0 version of setlocal blocks did not
update the type of the local variable in the context. This can leave
the context with stale type information and trigger panics like in
[Bug #21772] or lead to miscompilati...
alanwu (Alan Wu)
07:47 PM Revision 3add3db7 (git): Fewer calls to `GET_EC()` and `GET_THREAD()` (#15506)
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:
* rb_thread_wait_for_single_fd
* rb_thread_io_wait
I didn't cha...
Luke Gruber
07:27 PM Bug #21775 (Closed): Procs of type ifunc can access unshareable values
Applied in changeset commit:git|5903ed7ba9ca60546aa0dd97e92b3d381b7918d3.
----------
Prevent ifunc procs from being made shareable
[Bug #21775]
etienne (Étienne Barrié)
07:27 PM Revision 5903ed7b (git): Prevent ifunc procs from being made shareable
[Bug #21775] etienne (Étienne Barrié)
07:24 PM Revision 7909ce2a (git): move th->event_serial to rb_thread_sched_item (#15500)
Luke Gruber
06:35 PM Feature #21678 (Closed): Enumerable#rfind
Applied in changeset commit:git|6147b695870ce82ee3ad5305ce095b63889b8d9d.
----------
Array#rfind
Implement Array#rfind, which is the same as find except from the
other side of the Array. Also implemented Array#find (as opposed to
the g...
kddnewton (Kevin Newton)
06:35 PM Revision 6147b695 (git): Array#rfind
Implement Array#rfind, which is the same as find except from the
other side of the Array. Also implemented Array#find (as opposed to
the generic one on Enumerable because it is significantly faster
and to keep the implementations togethe...
kddnewton (Kevin Newton)
06:26 PM Revision 4f900e3c (git): ZJIT: Only optimize `[]` and `[]=` for exact Hash, not Hash subclasses
Stan Lo
06:26 PM Revision 309d6ef9 (git): ZJIT: Inline `Hash#[]=`
Stan Lo
06:14 PM Revision 3a0596b9 (git): ZJIT: Add Shape type to HIR (#15528)
It's just a nicety (they fit fine as CUInt32) but this makes printing
look nicer in real execution and also in tests (helps with #15489).
Co-authored-by: Randy Stauner <randy@r4s6.net>
tekknolagi (Maxwell Bernstein)
05:52 PM Revision bb4a6f39 (git): [ruby/prism] Fixed Prism::Translation::RubyParser's comment processing
Tests were failing in Flay under Prism.
https://github.com/ruby/prism/commit/af9b3640a8
Ryan Davis
05:09 PM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
I'm not a big fan the pragma route. Trying to get good codegen out of UB triggering C code is inherently a whack-a-mole game with compiler brands and even options of the same brand. With non compliant C code the incantation to patch over... alanwu (Alan Wu)
04:56 PM Revision 88f1d986 (git): Fix allocationless anonymous splat keyword argument check
Previously, if an argument splat and keywords are provided by
the caller, it did not check whether the method/proc accepted
keywords before avoiding the allocation. This is incorrect,
because if the method/proc does not accept keywords, ...
jeremyevans (Jeremy Evans)
04:40 PM Revision b8ba9ceb (git): Fix binding.implicit_parameters_get/defined segfault when wrong name string is passed (#15530)
tompng (tomoya ishida)
04:30 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
From: https://github.com/ruby/ruby/pull/15529
> The timer thread checks the running threads to provide timeslice every 10ms and finds the thread (th) performing blocking operation.
Isn't 10ms a massive amount of time in that contex...
byroot (Jean Boussier)
03:12 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
I'm with John that I think this is very promising but should not be introduced in ruby 4.0. It needs more testing to make sure it's working correctly and it needs more benchmarks for more realistic workloads. We can't do that in 2 weeks.... luke-gru (Luke Gruber)
02:01 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
https://github.com/ruby/ruby/pull/15529
It seems enough small, so I want to introduce it to 4.0.
ko1 (Koichi Sasada)
04:23 PM Misc #21777 (Open): DevMeeting-2026-01-14
# The next dev meeting
**Date: 2026/01/14 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)
04:22 PM Misc #21689 (Closed): DevMeeting-2025-12-11
mame (Yusuke Endoh)
04:08 PM Feature #21766: Pathname + FileUtils making sweet music together
> I feel Unix command names are too short for usual programs.
At the same time:
* they are known at least to most of the console-using programmers, so this is a "dictionary" many of us familiar with
* FileUtils have a practice of al...
zverok (Victor Shepelev)
12:29 AM Feature #21766: Pathname + FileUtils making sweet music together
I feel Unix command names are too short for usual programs.
So, I'm negative.
akr (Akira Tanaka)
02:25 PM Bug #21049 (Closed): Reconsider handling of the numbered parameters and "it" parameter in `Binding#local_variables`
Applied in changeset commit:git|fa7cddc969f1eccbb377cfc752bbf82ee2887dde.
----------
Add Binding#implicit_parameters, etc.
This changeset introduces:
* `Binding#implicit_parameters`
* `Binding#implicit_parameter_get`
* `Binding#implic...
mame (Yusuke Endoh)
02:24 PM Revision f939cf40 (git): Update NEWS about `Binding#implicit_parameters`, etc.
[Bug #21049] mame (Yusuke Endoh)
02:24 PM Revision 04422384 (git): Add docs to Binding#numbered_parameters, etc.
mame (Yusuke Endoh)
02:24 PM Revision 129d74c9 (git): Binding#implicit_parameters, etc. support the implicit "it" parameter
[Bug #21049] mame (Yusuke Endoh)
02:24 PM Revision fa7cddc9 (git): Add Binding#implicit_parameters, etc.
This changeset introduces:
* `Binding#implicit_parameters`
* `Binding#implicit_parameter_get`
* `Binding#implicit_parameter_defined?`
[Bug #21049]
mame (Yusuke Endoh)
10:53 AM Misc #20774: Remove remaining locale dependent code from Windows port
@nobu IMHO ruby-4.0 is a good chance to change these remaining locale strings to UTF-8. Windows stdin console input is still in [locale encoding](https://github.com/ruby/ruby/blob/d428d086c23219090d68eb2d027498c6ea999b89/io.c#L13557), th... larskanis (Lars Kanis)
09:46 AM Revision d428d086 (git): Simplify the code
`thread_sched_to_waiting_common0` is no longer needed. ko1 (Koichi Sasada)
09:12 AM Revision e2fe0aae (git): Avoid race condition in `test_without_handle_interrupt_signal_works`. (#15504)
Samuel Williams
09:12 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
So I did a number of other patches to squeeze some more performance out of `Monitor#synchronize`
```
ruby 4.0.0dev (2025-12-12T09:08:05Z master ff831eb057) +YJIT +PRISM [arm64-darwin25]
Warming up -----------------------------------...
byroot (Jean Boussier)
09:08 AM Revision ff831eb0 (git): thead_sync.c: directly pass the execution context to yield
Saves one more call to GET_EC() byroot (Jean Boussier)
09:07 AM Revision 7e7a1db5 (git): Define Thread::ConditionVariable in thread_sync.rb
It's more consistent with Mutex, but also the `#wait` method
benefits from receiving the execution context instead of having
to call `GET_EC`.
byroot (Jean Boussier)
08:55 AM Revision cf97a14c (git): Bump actions/cache from 4.3.0 to 5.0.0
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
08:55 AM Revision 0022a878 (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
08:39 AM Revision 175a0d5f (git): [ruby/timeout] Restore original signal handler in test_timeout_in_trap_handler
https://github.com/ruby/timeout/commit/4ae8631acf Eregon (Benoit Daloze)
06:55 AM Revision d9cc7621 (git): Update bundled gems list as of 2025-12-12
git[bot]
06:32 AM Bug #21776 (Closed): Binding#local_variable_defined? still supports numbered parameters
Applied in changeset commit:git|1794cfe12fe61dedebadead542927f9fef4104eb.
----------
Binding#local_variable_defined? raises a NameError for numbered params.
[Bug #21776]
mame (Yusuke Endoh)
05:10 AM Bug #21776 (Open): Binding#local_variable_defined? still supports numbered parameters
mame (Yusuke Endoh)
05:10 AM Bug #21776: Binding#local_variable_defined? still supports numbered parameters
I noticed that `binding.local_variable_defined?(:@x)` raises `wrong local variable name '@x' for #<Binding:0x00007cd1e95a94d8> (NameError)`.
Maybe `binding.local_variable_defined?(:_1)` should raise a similar error because `_1` is not a...
mame (Yusuke Endoh)
04:17 AM Bug #21776 (Closed): Binding#local_variable_defined? still supports numbered parameters
Applied in changeset commit:git|04494d9e4064a57accc8309da9b35754a3d24973.
----------
`Binding#local_variable_defined?` must not handle numbered parameters
[Bug #21776]
mame (Yusuke Endoh)
03:02 AM Bug #21776: Binding#local_variable_defined? still supports numbered parameters
Thanks! https://github.com/ruby/ruby/pull/15519 will fix the issue. mame (Yusuke Endoh)
06:32 AM Revision 5ef4f88d (git): use `ractor_sched_lock`
instead of using `rb_native_mutex_lock` directly. ko1 (Koichi Sasada)
06:21 AM Revision 1794cfe1 (git): Binding#local_variable_defined? raises a NameError for numbered params.
[Bug #21776] mame (Yusuke Endoh)
05:24 AM Revision 5541c0d8 (git): Win32: Make `rb_w32_osid` return Windows NT always
Since support for Windows 9x was dropped over a decade ago. nobu (Nobuyoshi Nakada)
05:24 AM Revision f939f043 (git): Win32: Deprecate Windows version info API
`dwMajorVersion` alone has no meaning since Windows 7. Use API in
VersionHelper.h instead.
nobu (Nobuyoshi Nakada)
05:24 AM Revision 50e5c542 (git): Win32: Remove the workaround for console reading bug
It has been fixed at Windows 8, and we already have dropped the
support Windows 8 and olders.
nobu (Nobuyoshi Nakada)
04:16 AM Revision 04494d9e (git): `Binding#local_variable_defined?` must not handle numbered parameters
[Bug #21776] mame (Yusuke Endoh)
01:57 AM Revision be43ad37 (git): release.yml: Fix tag conversion for Ruby 4.0
and PREVIOUS_RELEASE_TAG for any .0 releases k0kubun (Takashi Kokubun)
01:54 AM Revision 8fba4b0f (git): tool/format-release: Fix a wrong method reference
k0kubun (Takashi Kokubun)
01:50 AM Revision ec4c4670 (git): tool/format-release: Carve out the version format logic
to share it with tool/releng/update-www-meta.rb and another place I'm
going to modify next.
k0kubun (Takashi Kokubun)
01:45 AM Revision faac344d (git): make-snapshot: Fix Psych::DisallowedClass with newer psych
```
$ tool/format-release ../www.ruby-lang.org 4.0.0-preview2 .
/opt/rubies/3.4.6/lib/ruby/3.4.0/psych/class_loader.rb:99:in 'Psych::ClassLoader::Restricted#find': Tried to load unspecified class: Date (Psych::DisallowedClass)
fr...
k0kubun (Takashi Kokubun)
01:28 AM Revision 3a766259 (git): ZJIT: Don't specialize calls with kwsplat (#15513)
rwstauner (Randy Stauner)
01:16 AM Feature #20959: Add a way to get codepage of console.
```
dir | ruby -e “puts STDIN.read.force_encoding('locale')”
```
I think they should use `-E`.
> On Windows, the C runtime locale for each process is currently inconsistent, so changing the locale encoding for this purpose does n...
naruse (Yui NARUSE)
01:06 AM Misc #21769: Use "vX.Y.Z" instead of "vX_Y_Z" as tag names on ruby.git
Here's the list of all changes I made for this ticket:
* `tool/merger.rb tag`
* https://github.com/ruby/ruby/commit/0564214a00450371527c7bd69fc13618e5f25f30
* `tool/merger.rb remove_tag`
* https://github.com/ruby/ruby/commit/aff...
k0kubun (Takashi Kokubun)
12:59 AM Revision 1f0ca557 (git): make-snapshot: Update the tag format for Ruby 4.0+ (#15514)
k0kubun (Takashi Kokubun)
12:45 AM Revision 06a6ad44 (git): make-snapshot: Remove an unnecessary variable
This is a refactoring change, which should have no impact on behaviors.
Now, if patchlevel is true, tag is empty. So `if patchlevel` always does
nothing. Given that prerelease is false and tag is not nil, removing
`if patchlevel` should...
k0kubun (Takashi Kokubun)
12:45 AM Revision 6601640c (git): make-snapshot: Branch if it's X.Y.Z or X.Y using when
It just seems like a completely different input, so it makes more sense
to me to have it as a separate case.
Also, we don't need to support Ruby 2.0 or older.
k0kubun (Takashi Kokubun)
12:45 AM Revision 0ecf6896 (git): make-snapshot: Make preview/rc match stricter
to make it a bit more consistent with the other branch k0kubun (Takashi Kokubun)
12:45 AM Revision 58f9aca0 (git): make-snapshot: Drop X.Y.Z-pN support
We no longer make patchlevel releases. k0kubun (Takashi Kokubun)
12:18 AM Revision 12bf3a99 (git): update-www-meta.rb: Update the tag format for Ruby 4.0+
Just copied format-release fixes in
a973526c050fec044ffd7ceeba0ac8e8a1fed299 to this file.
k0kubun (Takashi Kokubun)

12/11/2025

11:52 PM Revision aff0c6da (git): tool/merger.rb: Support the new format in remove_tag
k0kubun (Takashi Kokubun)
11:44 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
The benchmark from #20816 gets a little more pure results as it only deals with a fast syscall in a loop without Queue communication. I adjusted it slightly.
``` ruby
THREADS = (ARGV.first || 10).to_i # choose thread count from CLI
...
jhawthorn (John Hawthorn)
11:29 PM Revision 04299ca1 (git): monitor.c: skip GET_EC() on exit
byroot (Jean Boussier)
11:09 PM Misc #21774 (Closed): [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2`
All those PRs have been merged, so I did (3) as well. k0kubun (Takashi Kokubun)
10:50 PM Misc #21774 (Assigned): [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2`
k0kubun (Takashi Kokubun)
06:17 PM Misc #21774: [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2`
I filed PRs for (2).
* https://github.com/ruby/www.ruby-lang.org/pull/3689
* https://github.com/ruby/rbs/pull/2743
* https://github.com/docker-library/ruby/pull/522
I'll wait a little before doing (3).
k0kubun (Takashi Kokubun)
05:48 PM Misc #21774: [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2`
I finished (1).
```
$ git checkout v4_0_0_preview2
HEAD is now at 4fa6e9938c strnlen is not used now
$ git tag v4.0.0-preview2
$ git push origin v4.0.0-preview2
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
remote: To ...
k0kubun (Takashi Kokubun)
05:33 PM Misc #21774 (Closed): [ANN] Rename the `v4_0_0_preview2` git tag to `v4.0.0-preview2`
## Changes
As per [Misc #21769], we'll rename the `v4_0_0_preview2` tag to `v4.0.0-preview2` on ruby.git.
## Operations
To minimize its potential impact, I'll work on it in the following order:
1. Push a new tag `v4.0.0-previ...
k0kubun (Takashi Kokubun)
10:51 PM Bug #21759: `test_fork.rb:78` is failing with `RUBY_MN_THREADS=1`
Thank you! I have also run the test over 10 times to make sure there are no failures with `RUBY_MN_THREADS=1`. hsbt (Hiroshi SHIBATA)
03:57 PM Bug #21759 (Closed): `test_fork.rb:78` is failing with `RUBY_MN_THREADS=1`
This has most likely been fixed by https://github.com/ruby/ruby/pull/15392. I can't reproduce the failure on master and the fix was targeting a race condition in the thread scheduler in MN thread mode. luke-gru (Luke Gruber)
10:50 PM Misc #21769 (Closed): Use "vX.Y.Z" instead of "vX_Y_Z" as tag names on ruby.git
Updated `tool/merge.rb tag` and `tool/format-release` to support the new git tag format at https://github.com/ruby/ruby/pull/15508. k0kubun (Takashi Kokubun)
05:22 PM Misc #21769 (Assigned): Use "vX.Y.Z" instead of "vX_Y_Z" as tag names on ruby.git
From the (draft) meeting notes:
> #### Conclusion:
> ...
I'll modify `ruby-master/tool/merger.rb tag` to use the `v4.0.0` format for Ruby 4.0+. I'll also file another ticket to announce the `v4.0.0-preview2` tag rename.
To close t...
k0kubun (Takashi Kokubun)
10:49 PM Revision a973526c (git): tool/format-release: Fix the tag format for Ruby 4.0+
k0kubun (Takashi Kokubun)
10:49 PM Revision 0564214a (git): tool/merger.rb: Update the tag format for Ruby 4.0+
k0kubun (Takashi Kokubun)
10:25 PM Revision 8210a117 (git): test_ractor.rb: old object while calling _id2ref
byroot (Jean Boussier)
10:25 PM Revision 07b2356a (git): Mutex: avoid repeated calls to `GET_EC`
That call is surprisingly expensive, so trying doing it once
in `#synchronize` and then passing the EC to lock and unlock
saves quite a few cycles.
Before:
```
ruby 4.0.0dev (2025-12-10T09:30:18Z master c5608ab4d7) +YJIT +PRISM [arm64-...
byroot (Jean Boussier)
10:21 PM Revision dc58d58a (git): [ruby/timeout] Fix failing timeout test
```
Run options:
"--ruby=./miniruby -I../ruby/lib -I. -I.ext/common ../ruby/tool/runruby.rb --extout=.ext -- --disable-gems"
--excludes-dir=../ruby/test/.excludes
--name=!/memory_leak/
--seed=9843
[ 1/31] TestTimeout#test_time...
Luke Gruber
10:17 PM Bug #20314: Simultaneous Timeout expires may raise an exception after the block
I'll discuss solutions in https://github.com/ruby/timeout/issues/52.
I got an idea for a fix, but haven't had time to try it yet.
Eregon (Benoit Daloze)
09:12 PM Revision 64062792 (git): ZJIT: Check method visibility when optimizing sends (#15501)
Fix https://github.com/Shopify/ruby/issues/874 tekknolagi (Maxwell Bernstein)
08:45 PM Revision fb80587f (git): [ruby/timeout] Add windows to CI matrix
https://github.com/ruby/timeout/commit/c8d63ce3fe byroot (Jean Boussier)
08:45 PM Revision f8f8ff61 (git): auto_request_review.yml: Update path for jit related docs
alanwu (Alan Wu)
08:45 PM Revision eb889e47 (git): ZJIT: s/checking possible to build ZJIT/checking prerequisites for ZJIT/
Reads better to me:
> checking prerequisites for ZJIT... yes
alanwu (Alan Wu)
08:45 PM Revision c092c294 (git): ZJIT: [DOC] Mention build prerequisites
alanwu (Alan Wu)
08:45 PM Revision 832aac6c (git): Tune AS_CASE indentation style and remove `[*]` for default case
There are many indentation styles for AS_CASE in this file but no one
uses `[*]` for the default case.
alanwu (Alan Wu)
08:21 PM Revision 1b7c8b79 (git): [ruby/timeout] Skip signal test on windows
Windows has no SIGUSR1.
There might be another usable signal, but this is breaking ruby master
so I just want a quick fix for now.
https://github.com/ruby/timeout/commit/b19043e8d0
byroot (Jean Boussier)
08:01 PM Bug #21776 (Closed): Binding#local_variable_defined? still supports numbered parameters
On the freshest `master`:
```ruby
[1].each {_1; p binding.local_variable_defined?(:_1) }
#=> true
```
It is inconsistent with changes in `#local_variables`/`#local_variable_get`/`#local_variable_set`. And inconsistent with handl...
zverok (Victor Shepelev)
07:01 PM Bug #21775 (Closed): Procs of type ifunc can access unshareable values
With this code, we can see that the Ractor is able to access the top-level main object.
``` ruby
Ractor.alias_method :value, :take unless Ractor.method_defined?(:value)
shareable_proc = Ractor.make_shareable(Hash.new { self }.to_pro...
etienne (Étienne Barrié)
06:57 PM Misc #21770 (Closed): Stop bumping RUBY_PATCHLEVEL in release versions
Applied in changeset commit:git|d02c97157476bbd9774f2bf6425a69166b99da1b.
----------
Stop bumping RUBY_PATCHLEVEL in release versions (#15502)
[[Misc #21770]](https://bugs.ruby-lang.org/issues/21770)
k0kubun (Takashi Kokubun)
06:57 PM Revision d02c9715 (git): Stop bumping RUBY_PATCHLEVEL in release versions (#15502)
[[Misc #21770]](https://bugs.ruby-lang.org/issues/21770) k0kubun (Takashi Kokubun)
06:54 PM Feature #20959: Add a way to get codepage of console.
When I filed #20959, I had #20929 in mind.
Since Windows APIs return time zone names localized based on the user's language settings rather than the system's language settings, it was important to retrieve them using a language-independ...
YO4 (Yoshinao Muramatsu)
01:46 PM Feature #20959: Add a way to get codepage of console.
I think your idea is that Microsoft is pushing more for UTF-8 support in console apps using the Visual C++ runtime, and in the future, setting the locale to UTF-8 might become the usual way. If that happens, the console code page and loc... naruse (Yui NARUSE)
06:53 PM Bug #18733: Heavy GC allocations cause performance issue with Ractor
Just to update that though GC is still global more progress has been made. I'm on a new PC, so rerunning the benchmark against the old SHA.
```
❯ ruby -v
ruby 3.5.0dev (2025-07-02T20:01:24Z v4.0.0-preview2~2697 d5f5a56bf2) +PRISM [x...
jhawthorn (John Hawthorn)
06:29 PM Bug #21607 (Feedback): require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
jhawthorn (John Hawthorn)
06:28 PM Bug #17878 (Closed): bootstraptest/test_ractor.rb:224 a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)"
It's likely this was fixed by the introduction of Ractor::Port. "The outgoing-port is already closed" isn't a message that can occur anymore (we no longer have outgoing ports) jhawthorn (John Hawthorn)
05:53 PM Revision 89e09e4d (git): Add assumption to free_vm_weak_references
Help the compiler know that we always get a heap object here. jhawthorn (John Hawthorn)
05:53 PM Revision 32e6dc0f (git): Speed up class allocator search
This rewrites the class allocator search to be faster. Instead of using
RCLASS_SUPER, which is now even slower due to Box, we can scan the
superclasses list to find a class where the allocator is defined.
This also disallows allocating ...
jhawthorn (John Hawthorn)
05:53 PM Revision 459c3772 (git): Assume result from allocator will be valid
This adds a fastpath in class_call_alloc_func to simply return if the
class matches the one expected.
I think we could probably just remove this check, or move it to the debug
build.
jhawthorn (John Hawthorn)
04:38 PM Revision b5604833 (git): Fix Set#^ to not mutate its argument (#15296)
* test(set): add test Set#xor does not mutate other_set
* Fix Set#^ to not mutate its argument
Gil Desmarais
04:02 PM Bug #21710 (Closed): Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
luke-gru (Luke Gruber)
09:45 AM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
byroot (Jean Boussier) wrote in #note-24:
> > I just don't think we should support this.
> ...
To be clear, we are aware we're doing really shady weird things to get a bit less overhead / a few more features, etc and we don't expect u...
ivoanjo (Ivo Anjo)
03:35 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
I've attached a file the original log file was 90mb so I used
grep -B 2 -A 100 "action_dispatch/request/session.rb" /tmp/yjit_58847.log > /tmp/session_blocks.log
Hopefully that is what you are looking for.
gearoiddc (Gearoid de Cleir)
02:46 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
It looks like you've hit the same panic as #21565.
Could you try the instructions from https://bugs.ruby-lang.org/issues/21565#note-5 to gather more information? Since you're on 3.4.7, you don't need to patch ruby for the steps there.
alanwu (Alan Wu)
03:32 PM Revision 3831a82d (git): [ruby/json] Revert "Skip test failing with JRuby in CI"
This reverts commit https://github.com/ruby/json/commit/b7e1734d9ca0.
https://github.com/ruby/json/commit/5793694ee6
etienne (Étienne Barrié)
03:01 PM Revision 4ab45e8f (git): [ruby/psych] bump snakeyaml-engine to 2.10 (jruby)
https://github.com/ruby/psych/commit/506bf75ab2 kares (Karol Bucek)
02:58 PM Revision 965ae7f3 (git): Fix typo in Fiber.[] docs
Eregon (Benoit Daloze)
01:38 PM Feature #21773 (Open): Support for setting encoding when a block is passed to `Net::HTTPResponse.read_body`
Hi everyone,
This feature request could be considered a follow-up to https://bugs.ruby-lang.org/issues/2567. Opting in to automatic detection of the right encoding for the body when passing a block to `read_body` results in an error ...
rosa (Rosa Gutierrez )
01:38 PM Revision b49ff7cc (git): [ruby/timeout] Make Timeout.timeout work in a trap handler on CRuby
* Fixes https://github.com/ruby/timeout/issues/17
https://github.com/ruby/timeout/commit/1a499a8f96
Eregon (Benoit Daloze)
01:38 PM Revision 9865048a (git): [ruby/timeout] Encapsulate adding a timeout Request
https://github.com/ruby/timeout/commit/cb2ba88fed Eregon (Benoit Daloze)
01:30 PM Bug #21669: Thoroughly implement void value expression check
https://github.com/ruby/ruby/pull/15498 nobu (Nobuyoshi Nakada)
12:15 PM Bug #21669: Thoroughly implement void value expression check
Discussed this at the dev meeting.
I was convinced that it is very rare to use `return` or other escapes from the begin block *whose result is used* even during debugging.
```
def foo
bar(begin
return 42
1
end)
en...
mame (Yusuke Endoh)
01:05 PM Revision c678e1bd (git): [ruby/timeout] Revise Timeout.timeout docs and add a section about `ensure`
https://github.com/ruby/timeout/commit/7cfa5a6778 Eregon (Benoit Daloze)
01:05 PM Revision 46d8e6d9 (git): [ruby/timeout] Reset the interrupt mask when creating the Timeout thread
* Add tests related to Thread.handle_interrupt
* Fixes https://github.com/ruby/timeout/issues/41
https://github.com/ruby/timeout/commit/a52720e82a
Eregon (Benoit Daloze)
12:57 PM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
For long term, believing the intelligence of the compiler sounds reasonable.
But if we believe the compiler, it doesn't need hand written parallelism. The code can be simplified like
```c
const char *
search_nonascii2(const char ...
naruse (Yui NARUSE)
12:17 PM Bug #21723 (Assigned): `binding.irb` raises a LoadError under `bundle exec` when Gemfile contains `path:` or `git:`
hsbt (Hiroshi SHIBATA)
12:06 PM Feature #8948: Frozen regex
Here is the code we found in the dev meeting:
https://github.com/ctrochalakis/mongo-ruby-driver/blob/e632eb570d2f42bddc6703c88d3ce43aea6cdfe6/lib/mongo/types/regexp_of_holding.rb#L27-L41
```ruby
class LazyRegexp < Regexp
...
...
mame (Yusuke Endoh)
07:48 AM Feature #8948: Frozen regex
We found some gems inherited from Regexp and used instance variables on instances, so they would be broken if all Regexp objects become frozen. I think it's unacceptable for Ruby 4.0.
Frankly, I don't think freezing the Regexp objects i...
matz (Yukihiro Matsumoto)
11:56 AM Revision d6b40320 (git): Append found lib/<file> entries to spec.files to support out-of-place builds
hsbt (Hiroshi SHIBATA)
10:59 AM Revision 674ddf4b (git): Update default gems list at 6b469b7e40f94f25b50463de2190d5 [ci skip]
git[bot]
10:58 AM Revision 6b469b7e (git): [ruby/json] Release 2.18.0
https://github.com/ruby/json/commit/1cdd2122d5 byroot (Jean Boussier)
10:53 AM Revision 6ad4e6a2 (git): [ruby/json] Add `allow_control_characters` parsing option
While it's not allowed by the spec, some parsers like Oj do
accept it, and it can be blocking a transition.
Having this feature can help people migrate.
https://github.com/ruby/json/commit/3459499cb3
byroot (Jean Boussier)
10:20 AM Bug #19558 (Closed): str.dump.undump crashes when str contains both Unicode and ASCII control characters
Applied in changeset commit:git|281a000d6669d3fbb1c0a2f940cbb9c7c01732e6.
----------
[Bug #19558] Allow ASCII range to mix with Unicode dump
nobu (Nobuyoshi Nakada)
10:20 AM Revision 281a000d (git): [Bug #19558] Allow ASCII range to mix with Unicode dump
nobu (Nobuyoshi Nakada)
10:12 AM Misc #21690 (Closed): Inconsistent `rb_popcount64()` definition
Applied in changeset commit:git|dc41cf332613db24af512bc7e959fc9a17d85d59.
----------
[Misc #21690] Sync parser_bits.h from internal/bits.h
nobu (Nobuyoshi Nakada)
09:44 AM Misc #21690: Inconsistent `rb_popcount64()` definition
https://github.com/ruby/ruby/pull/15496 nobu (Nobuyoshi Nakada)
09:48 AM Bug #21709: Regexp interpolation is inconsistent with String interpolation
```ruby
re = /#{"\\p{In_Arabic}".encode("US-ASCII")}\u1234/
# encoding mismatch in dynamic regexp : US-ASCII and UTF-8
```
This behavior looks a bug.
naruse (Yui NARUSE)
09:42 AM Revision dc41cf33 (git): [Misc #21690] Sync parser_bits.h from internal/bits.h
nobu (Nobuyoshi Nakada)
09:35 AM Bug #21712 (Closed): Prism and parse.y inconsistency in command call with block and `.()`
Applied in changeset commit:git|c5b51bdd8c69ae038daf80cb227df854ca0110f1.
----------
[Bug #21712] Allow `.()` call for command with block
This commit allows codes like `a b do end.()` and `a b do end&.()`.
yui-knk (Kaneko Yuichiro)
08:57 AM Bug #21712: Prism and parse.y inconsistency in command call with block and `.()`
`parse.y` should be fixed to adopt this case.
Matz.
matz (Yukihiro Matsumoto)
09:35 AM Revision c5b51bdd (git): [Bug #21712] Allow `.()` call for command with block
This commit allows codes like `a b do end.()` and `a b do end&.()`. yui-knk (Kaneko Yuichiro)
09:18 AM Revision 278a93a1 (git): This change didn't fix the original issue.
Revert "Use base: with Dir.glob for bundler.gemspec"
This reverts commit 87f0701b6106569a8486c9623dc6b0b32438355c.
hsbt (Hiroshi SHIBATA)
09:00 AM Revision 240e7999 (git): [DOC] Update NEWS for `*selectors` arguments added to `String#strip` etc.
shugo (Shugo Maeda)
08:57 AM Revision 87f0701b (git): Use base: with Dir.glob for bundler.gemspec
hsbt (Hiroshi SHIBATA)
08:35 AM Feature #21552 (Closed): allow String.strip and similar to take a parameter similar to String.delete
Applied in changeset commit:git|c76ba839b153805f0498229284fea1a809308dbc.
----------
Allow String#strip etc. to take optional character selectors
[Feature #21552]
Co-Authored-By: Claude <noreply@anthropic.com>
shugo (Shugo Maeda)
06:52 AM Feature #21552: allow String.strip and similar to take a parameter similar to String.delete
I accept the proposal.
Matz.
matz (Yukihiro Matsumoto)
08:34 AM Revision c76ba839 (git): Allow String#strip etc. to take optional character selectors
[Feature #21552]
Co-Authored-By: Claude <noreply@anthropic.com>
shugo (Shugo Maeda)
07:53 AM Feature #19979: Allow methods to declare that they don't accept a block via `&nil`
Frankly, I should have designed from the beginning that any method that accepts a block should always take a `&blk` argument, but it is impossible to change that now.
Considering that it is meaningful to explicitly state that a method...
matz (Yukihiro Matsumoto)
06:48 AM Bug #21049: Reconsider handling of the numbered parameters and "it" parameter in `Binding#local_variables`
I'd like to have the following new methods:
* `Binding#implicit_parameters #=> [:_1, :_2, :_3, ...] or [:it]`
* `Binding#implicit_parameter_get(:_1) #=> obj`
* `Binding#implicit_parameter_defined?(:_1) #=> true or false`
Matz.
matz (Yukihiro Matsumoto)
05:47 AM Feature #21704: Expose rb_process_status_new to C extensions
rb_process_status_new is declared in the PR as follows.
```
/**
* Creates a new instance of Process::Status.
*
* @param[in] pid The process ID.
* @param[in] status The "waitpid status", as returned by waitpid(2). This is NOT ...
akr (Akira Tanaka)
01:28 AM Revision 83e08070 (git): Remove an excess closing bracket
nobu (Nobuyoshi Nakada)
12:07 AM Revision c7d56e90 (git): ZJIT: Re-compile ISEQs invalidated by PatchPoint (#15459)
k0kubun (Takashi Kokubun)
12:02 AM Revision 1c29fbec (git): GC_DEBUG_STRESS_TO_CLASS should only be for debug
I believe this was accidentally left in as part of
2beb3798bac52624c3170138f8ef65869f1da6c0
jhawthorn (John Hawthorn)
12:01 AM Revision 5828872e (git): Update Ractor warning message
Although the Ractor API is still experimental and may change, and there
may be some implementation issues, we should no longer say that there
are many.
Hopefully we can remove this warning entirely for Ruby 4.1
jhawthorn (John Hawthorn)

12/10/2025

10:03 PM Revision b208f46f (git): ZJIT: Don't fold LoadField with negative offsets and use byte_add
No point doing the manual size unit conversion for add. Sorry, no new
tests since there is no way to generate a LoadField with a negative
offset from ruby code AFAICT. Careful with the `as` casts.
alanwu (Alan Wu)
09:43 PM Feature #21552: allow String.strip and similar to take a parameter similar to String.delete
Also in practice you'd probably want to use `sub!` to mutate in place if a big String.
That would avoid a copy, since CRuby doesn't do lazy substrings which don't share the same end.
Eregon (Benoit Daloze)
09:41 PM Feature #21552: allow String.strip and similar to take a parameter similar to String.delete
Eregon (Benoit Daloze) wrote in #note-9:
> but that sounds more like something that could/should be optimized in the regexp engine
To substantiate that:
```
$ ruby -rbenchmark/ips -e 'SPACES = ["\0", *("\t".."\r"), " "].join; TARGE...
Eregon (Benoit Daloze)
09:34 PM Feature #21552: allow String.strip and similar to take a parameter similar to String.delete
This sounds like a lot of complexity for one specific use-case, which already has a good solution with `sub`.
From the benchmarks, `lstrip("\0 \t-\r")` and `sub(/\A[\0\s]+/, "")` are pretty close.
`sub(/[\0\s]+\z/, "")` is slower tha...
Eregon (Benoit Daloze)
06:28 AM Feature #21552: allow String.strip and similar to take a parameter similar to String.delete
tr_setup_table_multi() was called twice in String#{strip,strip!}, so I've fixed it: https://github.com/ruby/ruby/pull/15400/commits/c9cb93f201644cd5e2fbbd6e83cf50acb27642de
### Benchmark
https://gist.github.com/shugo/c6367f4139bc2d...
shugo (Shugo Maeda)
09:35 PM Revision 029a4817 (git): JITs: Drop cargo and use just rustc for release combo build
So we don't expose builders to network flakiness which cannot be worked
around using cargo's --offline flag.
alanwu (Alan Wu)
09:35 PM Revision 121d0da0 (git): JITs: Move cargo-specific variables into conditional
alanwu (Alan Wu)
09:35 PM Revision 1bab2160 (git): ZJIT: For rustc build, remove cargo touch(1) workaround
alanwu (Alan Wu)
09:35 PM Revision b0ea9070 (git): YJIT: For rustc build, remove cargo touch(1) workaround
alanwu (Alan Wu)
09:35 PM Revision 96c804de (git): ZJIT: Remove unused includes from zjit.c
alanwu (Alan Wu)
09:18 PM Revision c8909030 (git): ZJIT: Fold LoadField on frozen objects to constants (#15483)
* ZJIT: Fold LoadField on frozen objects to constants
When accessing instance variables from frozen objects via attr_reader/
attr_accessor, fold the LoadField instruction to a constant at compile
time. This enables further optimizations...
Tobias Lütke
09:07 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
Sure no problem anything else?
```
-- Ruby level backtrace information ----------------------------------------
/home/gearoid/.rvm/gems/ruby-3.4.7@7.2.3/gems/puma-7.1.0/lib/puma/thread_pool.rb:182:in 'block in spawn_thread'
/home...
gearoiddc (Gearoid de Cleir)
08:54 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
> Backtrace & Logs
Is it possible to share the Ruby backtrace as well?
k0kubun (Takashi Kokubun)
08:21 PM Bug #21772 (Closed): ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
I'm getting a YJIT has panicked crash in my rails app locally when a part of my application rapidly uses a gem I have "auto_session_timeout".
If I patch the gem by changing the symbol to a string the error goes away.
``` ruby
...
gearoiddc (Gearoid de Cleir)
08:56 PM Revision ccfd3116 (git): Remove object_id in NEWOBJ tracepoint test
Generating an object_id for any type other than T_OBJECT (and T_CLASS)
will inevitably allocate an IMEMO/fields objects, which isn't supported
in a NEWOBJ tracepoint.
See: https://bugs.ruby-lang.org/issues/21710#note-23
byroot (Jean Boussier)
08:30 PM Revision 3640cfe5 (git): ZJIT: Use inline format args (#15482)
Alex Rocha
08:21 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
Yeah... Either way, with the object_id now stored in `imemo/fields`, generating an object_id for anything other than `T_OBJECT` will inevitably allocate an IMEMO.
I'll remove the test case.
byroot (Jean Boussier)
08:15 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
It's a noble goal, but in my view it's negative to even temporarily support this as it invites new extensions to be badly behaved and misuse these hooks. jhawthorn (John Hawthorn)
07:47 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
> I just don't think we should support this.
I said previously, I generally agree, but the datadog gem is quite popular, so I think we should try to find a short term solution if we can. At least that's what I tried to do.
byroot (Jean Boussier)
07:37 PM Bug #21710 (Open): Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
This continues to be broken (in a way that I hope helps illustrate that this was always unsafe). I think there's two issues.
Since the change was introduced we're regularly seeing failures on CI related to object_id and _id2ref. Here ...
jhawthorn (John Hawthorn)
06:10 PM Revision 330ddccf (git): ubuntu.yml: Add a ruby-bench job without ZJIT (#15480)
k0kubun (Takashi Kokubun)
05:55 PM Bug #15479: Array#reject! modifies literal Array
Yas
sapry1586@gmail.com (mohamed sapry)
05:49 PM Revision 41ee6589 (git): Always treat encoding as TYPEDDATA
Encodings are RTypedData, not the deprecated RData. Although the
structures are compatible we should use the correct API.
jhawthorn (John Hawthorn)
05:45 PM Revision 1eb10ca3 (git): ZJIT: Exclude failing ruby-bench benchmarks (#15479)
k0kubun (Takashi Kokubun)
04:08 PM Revision ed18a212 (git): ZJIT: Check if shape is too complex before reading ivar by index (#15478)
This fixes a crash when the new shape after a transition is too complex;
we need to check that it's not complex before trying to read by index.
tekknolagi (Maxwell Bernstein)
11:42 AM Revision 2b66fc76 (git): Fix typos in comment of rb_current_execution_context()
Eregon (Benoit Daloze)
10:14 AM Revision 023c6d80 (git): [ruby/json] Add a specific error for unescaped newlines
It's the most likely control character so it's worth
giving a better error message for it.
https://github.com/ruby/json/commit/1da3fd9233
byroot (Jean Boussier)
10:06 AM Revision 6777d101 (git): Modernize Monitor TypedData
Make it embedded and compaction aware. byroot (Jean Boussier)
09:30 AM Revision c5608ab4 (git): Monitor: avoid repeated calls to `rb_fiber_current()`
That call is surprisingly expensive, so trying doing it once
in `#synchronize` and then passing the fiber to enter and exit
saves quite a few cycles.
byroot (Jean Boussier)
09:03 AM Bug #21771: pg-1.6.2 testsuite segfaults in ruby4.0.0dev
Looks like this segfault is indeed fixed. Thank you! mtasaka (Mamoru TASAKA)
07:09 AM Revision ef4490d6 (git): Update default gems list at e8a55274f202df1cfddc25aa14da34 [ci skip]
git[bot]
07:08 AM Revision e8a55274 (git): [ruby/forwardable] v1.4.0
https://github.com/ruby/forwardable/commit/0257b590c2 hsbt (Hiroshi SHIBATA)
07:05 AM Bug #21708 (Closed): Ruby 3.4 Forwardable: setter delegations trigger SyntaxError from forwardable/impl.rb
Applied in changeset commit:git|14ff851185bb8ff399e98b74cc107302a4e08e18.
----------
[ruby/forwardable] Simpler and faster check for the delegation fastpath
Fix: https://github.com/ruby/forwardable/issues/35
[Bug #21708]
Trying to com...
byroot (Jean Boussier)
07:05 AM Revision 14ff8511 (git): [ruby/forwardable] Simpler and faster check for the delegation fastpath
Fix: https://github.com/ruby/forwardable/issues/35
[Bug #21708]
Trying to compile code to check if a method can use the delegation
fastpath is a bit wasteful and cause `RUPYOPT=-d` to be full of
misleading errors.
It's simpler and fast...
byroot (Jean Boussier)
06:48 AM Revision 375025a3 (git): Fix typo and shadowing
jhawthorn (John Hawthorn)
06:48 AM Revision 462df17f (git): Attempt to reuse garbage slots in concurrent hash
This removes all allocations from the find_or_insert loop, which
requires us to start the search over after calling the provided create
function.
In exchange that allows us to assume that all concurrent threads insert
will get the same ...
jhawthorn (John Hawthorn)
06:48 AM Revision 81fbdff8 (git): Use continuation bit in concurrent set
This refactors the concurrent set to examine and reserve a slot via CAS
with the hash, before then doing the same with the key.
This allows us to use an extra bit from the hash as a "continuation bit"
which marks whether we have ever pr...
jhawthorn (John Hawthorn)
06:44 AM Revision 492b1c73 (git): Update default gems list at 8e87f201cf54b112642ed0421ddabd [ci skip]
git[bot]
06:43 AM Revision 8e87f201 (git): [ruby/optparse] v0.8.1
https://github.com/ruby/optparse/commit/f2e31e81a5 hsbt (Hiroshi SHIBATA)
06:40 AM Revision a8b7fb7e (git): Update default gems list at 254653db8521618e08aaccaa63efdb [ci skip]
git[bot]
06:39 AM Revision 254653db (git): [ruby/win32-registry] v0.1.2
https://github.com/ruby/win32-registry/commit/2a6ab00f67 hsbt (Hiroshi SHIBATA)
06:18 AM Revision 6ec5c5f1 (git): [ruby/stringio] [DOC] Doc for StringIO.size
(https://github.com/ruby/stringio/pull/171)
https://github.com/ruby/stringio/commit/95a111017a
burdettelamar (Burdette Lamar)
06:18 AM Revision b4a1f170 (git): [ruby/stringio] [DOC] Tweaks for StringIO#each_line
(https://github.com/ruby/stringio/pull/165)
Adds to "Position": pos inside a character.
Makes a couple of minor corrections.
---------
https://github.com/ruby/stringio/commit/ff332abafa
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
burdettelamar (Burdette Lamar)
06:17 AM Revision 5bc65db5 (git): [ruby/stringio] [DOC] Tweaks for StringIO#gets
(https://github.com/ruby/stringio/pull/190)
https://github.com/ruby/stringio/commit/77209fac20
burdettelamar (Burdette Lamar)
06:16 AM Revision f623fcc7 (git): [ruby/stringio] [DOC] Tweaks for StringIO.getbyte
(https://github.com/ruby/stringio/pull/188)
https://github.com/ruby/stringio/commit/66360ee5f1
burdettelamar (Burdette Lamar)
06:16 AM Revision 668fe011 (git): [ruby/stringio] [DOC] Fix link
https://github.com/ruby/stringio/commit/e2d24ae8d7 burdettelamar (Burdette Lamar)
06:13 AM Revision 842f91ae (git): [ruby/stringio] [DOC] Tweaks for StringIO#getc
(https://github.com/ruby/stringio/pull/189)
https://github.com/ruby/stringio/commit/e3d16d30ed
burdettelamar (Burdette Lamar)
06:04 AM Revision bbee62ab (git): We don't need to check the latest release of pathname
Pathname is now embedded class of Ruby hsbt (Hiroshi SHIBATA)
05:30 AM Revision 74376fef (git): Update default gems list at 4523a905327d8438f845f5a7582222 [ci skip]
git[bot]
05:28 AM Revision 4523a905 (git): [ruby/date] v3.5.1
https://github.com/ruby/date/commit/1d0aadc295 hsbt (Hiroshi SHIBATA)
05:23 AM Revision ab80d05f (git): Update default gems list at 5f444cba4741b2ff0e1e95f4a17932 [ci skip]
git[bot]
05:22 AM Revision 5f444cba (git): [ruby/ipaddr] v1.2.8
https://github.com/ruby/ipaddr/commit/93ef50bc04 hsbt (Hiroshi SHIBATA)
05:18 AM Revision ec862b41 (git): ZJIT: Prohibit ZJIT support with USE_FLONUM=0 (#15471)
k0kubun (Takashi Kokubun)
05:13 AM Revision 238e69d1 (git): Update default gems list at 814f23747b5fd7b0d5fb6cd8e45833 [ci skip]
git[bot]
05:12 AM Revision 814f2374 (git): [ruby/resolv] v0.7.0
https://github.com/ruby/resolv/commit/a0e89bbe48 hsbt (Hiroshi SHIBATA)
05:09 AM Revision e4786376 (git): Update default gems list at df4fc0f7fcda6c552084ea0638c718 [ci skip]
git[bot]
05:08 AM Revision df4fc0f7 (git): [ruby/psych] v5.3.0
https://github.com/ruby/psych/commit/d8053b0d16 hsbt (Hiroshi SHIBATA)
03:09 AM Revision 3636277d (git): Add `NUM2PTR` and `PTR2NUM` macros
These macros have been defined here and there, so collect them. nobu (Nobuyoshi Nakada)
01:23 AM Revision 3bb97e77 (git): `_RUBY_DEBUG_LOG` usable anywhere
even if `USE_RUBY_DEBUG_LOG=0`.
It becomes `fprintf(stderr, ...)`.
ko1 (Koichi Sasada)
12:22 AM Revision f9eb0d8d (git): Use `ruby_version_is`
As the markers for spec/mspec/tool/remove_old_guards.rb. nobu (Nobuyoshi Nakada)
 

Also available in: Atom