Project

General

Profile

Activity

From 05/16/2025 to 05/22/2025

05/22/2025

11:44 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
> Serializing exceptions properly without Marshal is probably quite hard yes, not only about the cause but also the internal backtrace representation, the backtrace_locations objects, other internal state for core exceptions that can't a... ioquatix (Samuel Williams)
08:00 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
ioquatix (Samuel Williams) wrote in #note-2:
> Yes, in Async, I want to set the cause of an exception before raising it later on a fiber.
#21360 would be enough for that, although you'd need to wrap the exception + cause-to-be in som...
Eregon (Benoit Daloze)
12:12 PM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
Yes, in Async, I want to set the cause of an exception before raising it later on a fiber.
Additionally, serialisation and deserialisation of exceptions is almost impossible without being able to set the cause, e.g. any kind of Ruby RPC.
ioquatix (Samuel Williams)
10:15 AM Feature #21359: Introduce `Exception#cause=` for Post-Initialization Assignment
Do you have real-world examples where you would use this, e.g. in gems? Eregon (Benoit Daloze)
08:39 AM Feature #21359 (Assigned): Introduce `Exception#cause=` for Post-Initialization Assignment
Ruby currently allows an exception’s `cause` to be explicitly set **only at the time of raising** using `raise ..., cause: ...`. However, there are valid use cases where it would be convenient to set the cause when creating an exception.... ioquatix (Samuel Williams)
11:28 PM Feature #21365 (Closed): Add `Namespace#eval`
I would like a way to eval code on to a `Namespace` object. Could we add an eval method that _doesn't_ take a binding object? Writing a new file every time I want to test Namespaces is too cumbersome.
Thanks!
tenderlovemaking (Aaron Patterson)
11:23 PM Bug #21364 (Open): Constant lookup in namespaces should be consistent
This might be related to #21363, but I'm not sure.
I expect that a top level `Bar` constant should have the same value as `Object::Bar`. For example:
```ruby
File.binwrite("ns.rb", <<-RUBY)
# namespace 3
Bar = 123
module M
...
tenderlovemaking (Aaron Patterson)
11:17 PM Bug #21363 (Open): `Namespace.current` should always return the Namespace in which it was defined
I think `Namespace.current` should always return the namespace in which it was defined. Here is an example to demonstrate what I mean:
```ruby
File.binwrite("ns.rb", <<-RUBY)
# namespace 3
module M
def self.test
p Namesp...
tenderlovemaking (Aaron Patterson)
10:39 PM Revision 161aede1 (git): Disabled TRAP cache of CodeQL
hsbt (Hiroshi SHIBATA)
10:04 PM Revision bc2e95ee (git): Apply new RDoc config options
Stan Lo
10:04 PM Revision 03eb777c (git): Sync RDoc 6.14.0
Stan Lo
09:05 PM Revision 9583b7af (git): ZJIT: Parse newhash into HIR
Max Bernstein
09:05 PM Revision f1fe3d80 (git): ZJIT: Parse duphash into HIR
Max Bernstein
08:53 PM Bug #21362: Namespace: Inline method caches poisoned with builtins
Yeah such builtin/core Ruby files clearly need to be loaded and executed in the root namespace from a performance POV, otherwise it means no inline caches (my initial worry in https://bugs.ruby-lang.org/issues/21311#note-15).
It's quite...
Eregon (Benoit Daloze)
08:34 PM Bug #21362 (Assigned): Namespace: Inline method caches poisoned with builtins
``` ruby
File.write("/tmp/ntest.rb", <<~'RUBY')
class Integer
def succ = self + 2
end
module Test
def self.run = 10.times.to_a
end
RUBY
module Test
def self.run = 10.times.to_a
end
ns = Namespace.new
ns.require("...
jhawthorn (John Hawthorn)
07:53 PM Feature #21361: Set execution file and line
I'm not sure we want to encourage generating Ruby code (generated code in many cases is pretty bad IMO, e.g. huge methods), and this feature would encourage it implicitly.
Ruby is often expressive and flexible enough that there is no ne...
Eregon (Benoit Daloze)
04:46 PM Feature #21361 (Open): Set execution file and line
I'd like to be able to set the execution file and execution line for the purpose of generated Ruby code. My specific use case is the Ruby files that are templated in Prism, but I also believe it would be beneficial for ERB. The functiona... kddnewton (Kevin Newton)
06:51 PM Revision 5a3f3f09 (git): ZJIT: Parse getinstancevariable, setinstancevariable into HIR (#13413)
Max Bernstein
04:21 PM Revision ca1ea957 (git): Include stdbool.h without checking with autoconf
As reported in <https://bugs.ruby-lang.org/issues/21340>, older autoconf
have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
fixed the macro, but also mentions that it's obsolescent since all
current compilers have this...
alanwu (Alan Wu)
04:20 PM Revision 616771e3 (git): Merge RubyGems-3.6.9 and Bundler-2.6.9
hsbt (Hiroshi SHIBATA)
04:20 PM Revision d766eceb (git): Merge RubyGems-3.6.8 and Bundler-2.6.8
hsbt (Hiroshi SHIBATA)
04:19 PM Revision 81258275 (git): windows-2025 runner removed D drive from their environment
hsbt (Hiroshi SHIBATA)
04:19 PM Revision c104fc41 (git): Disabled TRAP cache of CodeQL
hsbt (Hiroshi SHIBATA)
04:18 PM Revision d96e9bd0 (git): [DOC] Set canonical root for online docs (#13410)
Stan Lo
03:19 PM Bug #21340 (Closed): Bump autoconf version to properly handle C23 bool/stdbool defines
Thanks!
commit:2297afda7ff3926c51fea700dfbf0f0eb4fea1e5 should also work for the 3.3 branch since it also requires VC 2015. #19982
alanwu (Alan Wu)
02:17 PM Revision b080aabb (git): Update string.rb
Co-authored-by: Peter Zhu <peter@peterzhu.ca> burdettelamar (Burdette Lamar)
02:17 PM Revision 3403055d (git): [DOC] Tweaks for String#byteindex
burdettelamar (Burdette Lamar)
12:10 PM Revision d15fdb5c (git): Win32: Initialize the systemtime function before converting FILETIME
nobu (Nobuyoshi Nakada)
10:16 AM Feature #21311: Namespace on read (revised)
First, I would like to thank mame for the explanation in regards to the namespace discussion, or rather the pre-discussion in regards to design decision(s). Probably not everyone knew about the prior discussion(s), so it seems useful to ... rubyFeedback (robert heiler)
10:10 AM Revision f18883b2 (git): Namespaces: Don't initialize fields for T_ICLASS
ICLASS don't have instance variables or anything like that.
`gc_mark_classext_iclass` didn't mark it, and `classext_iclass_free`
wasn't freeing it.
byroot (Jean Boussier)
10:00 AM Feature #21358: Advanced filtering support for #dig
You might be able to achieve similar behavior using pattern matching.
```ruby
item => batters: {batter: [*, {type: "Chocolate", id:}, *]}
id #=> "1002"
```
nobu (Nobuyoshi Nakada)
09:39 AM Feature #21360 (Closed): Inconsistent Support for `Exception#cause` in `Fiber#raise` and `Thread#raise`
The `raise` method supports setting the cause of an exception using the `cause:` keyword, but this behavior does not work as expected when calling `Fiber#raise` or `Thread#raise`, resulting in a `TypeError`. This breaks consistency with ... ioquatix (Samuel Williams)
09:32 AM Revision 5862be0e (git): Skip failing tests with mingw platform
https://github.com/ruby/ruby/actions/runs/15159221855/job/42621232822?pr=13397
```
1)
File.atime returns the last access time for the named file with microseconds FAILED
Expected 0 == 123456
to be truthy but was false
D:/a/rub...
hsbt (Hiroshi SHIBATA)
09:32 AM Revision b7aca78c (git): [ruby/io-console] Use gperf 3.1 to generate ANSI-C code
https://github.com/ruby/io-console/commit/3798aae42d nobu (Nobuyoshi Nakada)
09:32 AM Revision c239069d (git): Fix redefinition of `clock_gettime` and `clock_getres`
winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions.
nobu (Nobuyoshi Nakada)
09:32 AM Revision 395e5de8 (git): Update the latest version of ruby/setup-ruby
hsbt (Hiroshi SHIBATA)
07:00 AM Bug #21333: heap-use-after-free caused by rehash during update
If this gets backported, please also consider https://bugs.ruby-lang.org/issues/21357. This fix caused a different problem, the patch for that can be found in that issue. Earlopain (Earlopain _)
06:57 AM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
Thanks! Works nicely. Earlopain (Earlopain _)
03:26 AM Bug #21357 (Closed): Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
Applied in changeset commit:git|056497319658cbefe22351c6ec5c9fa6e4df72bd.
----------
[Bug #21357] Fix crash in Hash#merge with block
Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
the `optional_ar...
dodecadaniel (Daniel Colson)
02:33 AM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
Possible fix https://github.com/ruby/ruby/pull/13404 (if tests pass 🤞🏻) dodecadaniel (Daniel Colson)
06:54 AM Revision ff1d6157 (git): Don't need to store download cache of vcpkg
vcpkg can detect their cache from `vcpkg/installed`. hsbt (Hiroshi SHIBATA)
04:08 AM Revision ec41b1e8 (git): Fix for old mingw without `clock_gettime` and `clock_getres`
nobu (Nobuyoshi Nakada)
03:39 AM Bug #21337: Using `not` on the RHS of a logical operator becomes valid syntax with Prism
I prefer the behavior of Prism here. Intuitively, `true && not true` seems like it should be valid just like `true and not true` Dan0042 (Daniel DeLorme)
03:25 AM Revision 05649731 (git): [Bug #21357] Fix crash in Hash#merge with block
Prior to https://github.com/ruby/ruby/commit/49b306ecb9e2e9e06e0b1590bacc5f4b38169c3c
the `optional_arg` passed from `rb_hash_update_block_i` to `tbl_update`
was a hash value (i.e. a VALUE). After that commit it changed to an
`update_cal...
dodecadaniel (Daniel Colson)
03:20 AM Feature #21353: Add shape_id to RBasic under 32 bit
jhawthorn (John Hawthorn) wrote in #note-2:
> it is hard for us to follow that path when shapes are so different under 32-bit
So we're in agreement here, and in fact I think shapes should be **exactly the same** under both 32bit and 64b...
Dan0042 (Daniel DeLorme)
01:55 AM Revision 7154b420 (git): Fix a -Wmaybe-uninitialized
lev in rb_gc_vm_lock() is uninitialized in single ractor mode. nobu (Nobuyoshi Nakada)
12:23 AM Revision 6a16c3e2 (git): Remove too_complex GC assertion
Classes from the default namespace are not writable, however they do not
transition to too_complex until they have been written to inside a user
namespace. So this assertion is invalid (as is the previous location it
was) but it doesn't ...
jhawthorn (John Hawthorn)
12:03 AM Bug #21348: Should Tracepoint track retry as another "call" event?
Thanks for confirming that the behavior needs to be fixed @eregon. karthikc (Karthik Chandrasekariah)

05/21/2025

11:01 PM Feature #21358 (Feedback): Advanced filtering support for #dig
Currently, `#dig` can be used to access nested data structures using "simple" keys, such as array indices or hash keys.
Real-world applications sometimes require non-trivial data access, for example, finding an item in an array based ...
lovro-bikic (Lovro Bikić)
07:23 PM Revision 7b106609 (git): Use rb_inspect for Ractor error
Previously the object was used directly, which calls `to_s` if defined.
We should use rb_inspect to get a value suitable for display to the
programmer.
jhawthorn (John Hawthorn)
07:02 PM Bug #21357: Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
I reduced it down significantly:
```rb
require "yaml"
YML = <<~YML
foo:
- bar: abc
baz: def
bat: ghi
YML
x = 1500 # lower numbers don't consistently crash
(0..x).each_with_object({}) do |_i, hash|
has...
Earlopain (Earlopain _)
12:51 PM Bug #21357 (Closed): Crash in Hash#merge! with ruby-dev in rubocop-rspec test suite
I've encountered crahses on ruby-head in recent days, related to hash methods like `merge` and `merge!`. I can now reproduce it locally while running the rubocop-rspec test suite:
* Clone https://github.com/rubocop/rubocop-rspec
* Ru...
Earlopain (Earlopain _)
05:27 PM Revision ef935705 (git): Use shape_id for determining "too complex"
Using `rb_shape_obj_too_complex_p` looks up the shape, but we already
have the shape id. This avoids looking up the shape twice.
tenderlovemaking (Aaron Patterson)
04:51 PM Revision 6df6aaa0 (git): Update class.c
Co-authored-by: Satoshi Tagomori <tagomoris@gmail.com> Aaron Patterson
04:51 PM Revision 6ea893f3 (git): Add assertion for RCLASS_SET_PRIME_CLASSEXT_WRITABLE
When classes are booted, they should all be writeable unless namespaces
are enabled. This commit adds an assertion to ensure that classes are
writable.
tenderlovemaking (Aaron Patterson)
03:53 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
alanwu (Alan Wu) wrote in #note-5:
> @ntkme @christo if you have time, please try building with the latest master branch and see if the build issues are resolved. We can get this backported if so.
I can confirm this fixes the issue I...
christo (Chris Alberti)
08:55 AM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
I've pushed commit:2297afda7ff3926c51fea700dfbf0f0eb4fea1e5 which I think should resolve build issues without touching the autoconf version.
@ntkme @christo if you have time, please try building with the latest master branch and see i...
alanwu (Alan Wu)
03:27 PM Revision 511b6bcb (git): Reenable MMTk tests
peterzhu2118 (Peter Zhu)
03:27 PM Revision ac23fa09 (git): Use rb_id_table_foreach_values for mark_cc_tbl
We don't need the key, so we can improve performance by only iterating
on the value.
This will also fix the MMTk build because looking up the key in
rb_id_table_foreach requires locking the VM, which is not supported in
the MMTk worker ...
peterzhu2118 (Peter Zhu)
03:23 PM Revision b4c900de (git): ZJIT: More type level docs in zjit::hir [DOC]
Given `InsnId` is at the top of the file and everywhere, hopefully this
will help first time readers.
alanwu (Alan Wu)
02:35 PM Revision 3487117e (git): [ruby/mmtk] Fix object ID in rb_gc_impl_define_finalizer
The 0th element of the finalizer table array should be the object ID.
https://github.com/ruby/mmtk/commit/75e4a82652
peterzhu2118 (Peter Zhu)
01:48 PM Revision 8f50bb7c (git): JITs: Add back MACOSX_DEPLOYMENT_TARGET=11.0 setting to avoid warning
See: 41251fdd309d4ff8f699268e33c32a114257211e alanwu (Alan Wu)
01:12 PM Revision 9a41d76b (git): Fix one-by-one error of numbered parameter ID
richardboehme (Richard Böhme)
09:28 AM Bug #21356: Error when accessing local variable named "default" with Binding#local_variable_get
Good catch, you are correct. Thank you! https://github.com/ruby/ruby/pull/13396 mame (Yusuke Endoh)
08:31 AM Bug #21356 (Closed): Error when accessing local variable named "default" with Binding#local_variable_get
On Ruby master when using `Binding#local_variable_get` with the name `:default` it raises the following error:
```
'Binding#local_variable_get': numbered parameter 'default' is not a local variable (NameError)
```
I saw that this...
richardboehme (Richard Böhme)
08:11 AM Revision 081a44f5 (git): Disabled TRAP cache of CodeQL again
hsbt (Hiroshi SHIBATA)
08:02 AM Bug #21355 (Closed): `csv/test/csv/interface/test_read.rb` at test-bundled-gems is flaky recent days
I faced test failure of `make test-bundled-gems` in GitHub Actions. It caused by `csv` testing with `Ractor`.
https://github.com/ruby/ruby/actions/runs/15156308046/job/42611877817?pr=13391#step:9:697
```
/home/runner/work/ruby/ru...
hsbt (Hiroshi SHIBATA)
07:29 AM Revision 0964593e (git): Shrink `sym_proc_cache` by half
There is no need to store the symbol and the proc given the
proc has a reference to the symbol.
This makes the cache half as small, now fitting in an object
slot, but also make it easier to allow that cache to be
used by ractors, assumi...
byroot (Jean Boussier)
07:08 AM Revision c980cab1 (git): [DOC] Add bundled gem doc links
- rake
- reline
- logger
- csv
- rexml
- racc
Stan Lo
07:03 AM Revision df66d2be (git): Update bundled gems list as of 2025-05-21
git[bot]
06:12 AM Bug #21354 (Closed): Symbol#to_proc is not ractor safe
Applied in changeset commit:git|f6cbf499bc98b851034fffb49fcbb59d495f6f7b.
----------
Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe
In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe
to add to this array with...
Anonymous
06:12 AM Revision f6cbf499 (git): Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe
In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe
to add to this array without a lock and also it leaks procs from one
ractor to another. Instead, we create a new proc each time. If this
results in poor performance w...
Luke Gruber
02:33 AM Revision 97e774b9 (git): [rubygems/rubygems] Bump up to rack-3.1.15 that is removed dependency of CGI::Cookie
https://github.com/rubygems/rubygems/commit/cecc280f61 hsbt (Hiroshi SHIBATA)
02:33 AM Revision 3ac239f7 (git): [rubygems/rubygems] Copy prerelease attribute to dependency resolver sets
https://github.com/rubygems/rubygems/commit/5956e7f8e5 ntl (Nathan Ladd)
02:30 AM Revision 27b06383 (git): [ruby/mmtk] Fix object ID for finalizers
We should get the object ID for finalizers in rb_gc_impl_define_finalizer
instead of when we create the finalizer job in make_final_job because
when we are in multi-Ractor mode, object ID needs to walk the references
which allocates an i...
peterzhu2118 (Peter Zhu)
01:04 AM Revision 1c661242 (git): Make Addrinfo objects Ractor shareable
Allow Addrinfo objects to be shared among Ractors. Addrinfo objects are
already immutable, so I think it's safe for us to tag them as
RUBY_TYPED_FROZEN_SHAREABLE shareable too.
tenderlovemaking (Aaron Patterson)

05/20/2025

10:49 PM Feature #21353: Add shape_id to RBasic under 32 bit
@Dan0042 We've been finding a lot of cases where flags actually make sense as part of the shape rather than flags, like FL_FROZEN and FL_EXIVAR per the description, but also possibly object_id and likely more (ex. capacity, FL_EMBEDDED) ... jhawthorn (John Hawthorn)
08:11 PM Feature #21353: Add shape_id to RBasic under 32 bit
In general this sounds like a good idea, but I think it would be better to have a struct that works the same way for both 32bit and 64bit systems, and also avoids reserving an entire 32 bits, which is overkill for shape ids.
What abou...
Dan0042 (Daniel DeLorme)
08:18 AM Feature #21353 (Closed): Add shape_id to RBasic under 32 bit
Currently on 64bit systems, for every types, the `shape_id` is stored inside the `RBasic.flags` field, and is 32bit
long.
However, on 32bit systems like i686 and WASM, it is much more complicated.
For `T_OBJECT`, `T_CLASS` and `T_MO...
byroot (Jean Boussier)
10:41 PM Revision b08e20d3 (git): ZJIT: Allow DCE to remove some CCalls (#13363)
Allow DCE to remove some CCalls
Add `elidable` field that signals that there would be no discernible
effect if the call to the method were removed. The default is false.
Max Bernstein
04:57 PM Revision b043abc0 (git): Only define RVALUE_OVERHEAD if undefined
This allows RVALUE_OVERHEAD to be defined elsewhere. peterzhu2118 (Peter Zhu)
04:56 PM Revision 84bfcaa8 (git): Add two more TSan suppressions
jhawthorn (John Hawthorn)
04:56 PM Revision e7f97eb2 (git): Use atomic load for signal buff size
jhawthorn (John Hawthorn)
04:56 PM Revision 05e0e722 (git): Use atomic load to read interrupt mask
jhawthorn (John Hawthorn)
04:22 PM Revision cd15cc25 (git): ZJIT: Run `make zjit-test` under combo build with YJIT
alanwu (Alan Wu)
04:22 PM Revision 1fed568e (git): ZJIT: Add --allow-multiple-definition for make zjit-test
alanwu (Alan Wu)
03:58 PM Revision 2297afda (git): Include stdbool.h without checking with autoconf
As reported in <https://bugs.ruby-lang.org/issues/21340>, older autoconf
have an AC_HEADER_STDBOOL that's incompatible with C23. Autoconf 2.72
fixed the macro, but also mentions that it's obsolescent since all
current compilers have this...
alanwu (Alan Wu)
03:35 PM Revision ce5eb280 (git): YJIT: ZJIT: CI: Smoke test for --[y,z]jit-dump-disasm
alanwu (Alan Wu)
03:35 PM Revision dfc0fe36 (git): Add jit.rs as dependency in Makefile
alanwu (Alan Wu)
01:46 PM Bug #21354: Symbol#to_proc is not ractor safe
PR here: https://github.com/ruby/ruby/pull/13380
We are looking at how to make the cache ractor safe but it will be done in a separate PR.
luke-gru (Luke Gruber)
01:37 PM Bug #21354 (Closed): Symbol#to_proc is not ractor safe
There is caching in `Symbol#to_proc` (`rb_sym_to_proc`) that makes the assumption that we're always in the main ractor. With multiple ractors, this caching logic is not ractor-safe in that cached procs created in one ractor can leak into... luke-gru (Luke Gruber)
01:27 PM Revision bf082a37 (git): CI: Check if runnable first, before set up directories
nobu (Nobuyoshi Nakada)
01:16 PM Misc #21350: Bundled gems lack online documentation
I also don't think the documentation for bundled gems necessarily has to be included in the Ruby core documentation, as long it is easily accessible from it.
If possible, how about creating a link-to-documentation-only entry for class...
osyoyu (Daisuke Aritomo)
01:15 PM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
I want to let Matz determine how to handle this problem :D tagomoris (Satoshi Tagomori)
01:07 PM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
I guess I found a widely used real-world app that defines a toplevel `Namespace` class, and it seems very difficult for them to resolve this conflict...
https://github.com/gitlabhq/gitlabhq/blob/master/app/models/namespace.rb
Perhaps we...
matsuda (Akira Matsuda)
08:21 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
> But the incompatibility may not have been considered since toplevel Ruby used to warn in 3.4 for Ruby::VERSION and others.
Yes, we likely need to emit a deprecation warning when a top-level `Namespace` constant is defined.
byroot (Jean Boussier)
06:41 AM Bug #21341: `Namespace is not a module (TypeError)` without enabling the namespace
It looks intentional to me:
> Namespace.new
(irb):1:in 'Namespace#initialize': Namespace is disabled. Set RUBY_NAMESPACE=1 environment variable to use Namespace. (RuntimeError)
But the incompatibility may not have been considered s...
Earlopain (Earlopain _)
01:12 PM Revision d0a8f6ba (git): [DOC] Fix call-seq of Dir.glob
`patterns` may be an array but not the rest argument. nobu (Nobuyoshi Nakada)
11:43 AM Revision 8dbff6e4 (git): Silence error messages of `cd` to non-existent opt directories
nobu (Nobuyoshi Nakada)
09:22 AM Revision a82e7132 (git): Fix uplevel for `cgi` under bundler
Since there is `bundled_gems.rb` it is not always one. Fixes the following:
```sh
$ ruby -w -rbundler/inline -e "gemfile {}; require 'cgi'"
/home/earlopain/.rbenv/versions/ruby-dev/lib/ruby/3.5.0+0/bundled_gems.rb:59: warning: CGI librar...
Earlopain (Earlopain _)
07:03 AM Revision bfe89c7a (git): Update bundled gems list as of 2025-05-19
git[bot]
06:51 AM Revision edff5234 (git): [DOC] Describe new return value of source_location
Proc#source_location, Method#source_location and
UnboundMethod#source_location carry more information since
073c4e1cc712064e626914fa4a5a8061f903a637.
https://bugs.ruby-lang.org/issues/6012
https://github.com/ruby/ruby/pull/12539
Daisuke Aritomo
04:34 AM Feature #21287 (Closed): Remove SortedSet autoload and set/sorted_set
Applied in changeset commit:git|c52f4eea564058a8a9865ccc8b2aa6de0c04d156.
----------
Remove SortedSet autoload and set/sorted_set
Implements [Feature #21287]
jeremyevans (Jeremy Evans)
04:34 AM Revision c52f4eea (git): Remove SortedSet autoload and set/sorted_set
Implements [Feature #21287] jeremyevans (Jeremy Evans)

05/19/2025

09:04 PM Misc #21350: Bundled gems lack online documentation
There actually are quite a few bundled gems having their own docs now, including [CSV](https://ruby.github.io/csv/).
I've opened a PR to add them: https://github.com/ruby/ruby/pull/13374
I think we're already heading towards this d...
st0012 (Stan Lo)
08:22 PM Misc #21350: Bundled gems lack online documentation
In the meanwhile https://www.rubydoc.info/ is a good workaround to get online docs of all gems, e.g. https://www.rubydoc.info/gems/csv
Though it doesn't handle RDoc includes yet it seems.
Eregon (Benoit Daloze)
08:15 PM Misc #21350: Bundled gems lack online documentation
I agree each bundled gem hosting its own docs is the best.
In some cases it might be valuable to host multiple versions of the docs, although that quickly adds complexity.
In fact the same applies for normal gems as well.
For exampl...
Eregon (Benoit Daloze)
04:07 PM Misc #21350: Bundled gems lack online documentation
https://github.com/ruby/ruby/pull/13371
nobu (Nobuyoshi Nakada)
08:25 PM Bug #21348: Should Tracepoint track retry as another "call" event?
I agree with the OP that `:call` shouldn't trigger a second time here, since there is only one call to `foo`.
`retry` is similar to a loop, and of course we don't add extra `:call` TracePoint events for loops.
Eregon (Benoit Daloze)
08:18 PM Bug #21351: Ruby master segfaults when initializing `Zlib::GzipReader`
Closed because this doesn't happen in `ruby 3.5.0dev (2025-05-19T17:34:29Z master a7ef9a44a6) +PRISM [arm64-darwin24]` anymore. st0012 (Stan Lo)
08:15 PM Bug #21351 (Closed): Ruby master segfaults when initializing `Zlib::GzipReader`
st0012 (Stan Lo)
11:02 AM Bug #21351 (Closed): Ruby master segfaults when initializing `Zlib::GzipReader`
### Ruby Version
```
ruby 3.5.0dev (2025-05-13T14:16:58Z master bb180b87b4) +PRISM [arm64-darwin24]
last_commit=[Bug #21331] Prohibit modification during stlike loop
```
### Steps to reproduce
```
$ ruby -e "require 'zlib'; ...
st0012 (Stan Lo)
05:34 PM Revision a7ef9a44 (git): ZJIT: Propagate disasm feature to ZJIT and YJIT (#13372)
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> k0kubun (Takashi Kokubun)
03:33 PM Feature #21309: Can Thread::Mutex be Ractor shareable?
@nevans See https://github.com/ruby/net-http/blob/b652fa506b3fc8420172683e62b13bcdf58dbf3d/lib/net/http.rb#L1657
And https://github.com/ruby/net-http/issues/6#issuecomment-2877372273 by @osyoyu.
Also #21347 seems related to all that.
Eregon (Benoit Daloze)
03:14 PM Feature #21309: Can Thread::Mutex be Ractor shareable?
Eregon (Benoit Daloze) wrote in #note-6:
> osyoyu (Daisuke Aritomo) wrote in #note-5:
> ...
Does `Net::HTTP` use `Timeout` to implement its timeouts? `Timeout::Error` is used as a superclass for the `net-protocol` timeout errors, but ...
nevans (Nicholas Evans)
01:49 PM Revision 93ce95d4 (git): [DOC] Fix indentation
RDoc markdown parser requires exact 4 spaces or tab as indentation. nobu (Nobuyoshi Nakada)
01:47 PM Revision 22c1201b (git): [DOC] Fold long lines
nobu (Nobuyoshi Nakada)
01:41 PM Revision d84f2031 (git): [DOC] Escape dot in regexp
nobu (Nobuyoshi Nakada)
01:06 PM Bug #21352 (Closed): Invalid read in shape lookup code
Applied in changeset commit:git|83d636f2d01f6bc1fd044a6f6c3071303b68dd82.
----------
Free shapes last
[Bug #21352]
`rb_objspace_free_objects` may need to check objects shapes
to know how to free them.
byroot (Jean Boussier)
12:20 PM Bug #21352: Invalid read in shape lookup code
I suspect it's caused by either a T_NONE or a T_IMEMO. I have a feature branch that ran into that issue I think and I haven't merged yet, but I could just cherry-pick that fix. byroot (Jean Boussier)
12:16 PM Bug #21352 (Closed): Invalid read in shape lookup code
Prism runs tests with valgrind and it recently started to report an invalid read in `rb_shape_lookup`. Example workflow: https://github.com/ruby/prism/actions/runs/15111527208/job/42471945845?pr=3564
```
Invalid read of size 8
rb_...
Earlopain (Earlopain _)
01:06 PM Revision 83d636f2 (git): Free shapes last
[Bug #21352]
`rb_objspace_free_objects` may need to check objects shapes
to know how to free them.
byroot (Jean Boussier)
09:16 AM Bug #21345: crash on evaluating 'a=>a,*,'
Potential fix https://github.com/ruby/prism/pull/3564 Earlopain (Earlopain _)
08:58 AM Bug #20112 (Closed): Ractors not working properly in ruby 3.3.0
byroot (Jean Boussier)
08:57 AM Bug #20112: Ractors not working properly in ruby 3.3.0
I can't repro on my mac so it seems Linux only.
It has been corrected on master since both 3.5.0-preview1 and master are now faster with ractors than with threads.
```
ruby 3.5.0dev (2025-05-19T04:27:50Z master 40c957ba21) +PRISM ...
etienne (Étienne Barrié)
05:37 AM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
Hi @k0kubun - ok great - that sounds like an intentional change in Ruby 3.4 then.
I don't understand your recommendation though "to define every method you call in the profiled code yourself". The ruby-prof test code has remained fairly...
cfis (Charlie Savage)
04:27 AM Revision 40c957ba (git): Fix a typo and capitalize a character
znz (Kazuhiro NISHIYAMA)
02:55 AM Bug #21333 (Closed): heap-use-after-free caused by rehash during update
nobu (Nobuyoshi Nakada)
02:19 AM Revision 47595509 (git): [ruby/json] Remove some unnecessary top level constant lookups
https://github.com/ruby/json/commit/7c03ffc3e0 byroot (Jean Boussier)
02:19 AM Revision e4a44b1f (git): [ruby/json] remove redundant `self.`
https://github.com/ruby/json/commit/c060943d04 GrantBirki
02:19 AM Revision 9b25023f (git): [ruby/json] use `.` over `::` for consistency
https://github.com/ruby/json/commit/f5c1b8c45d GrantBirki
02:19 AM Revision dc69bebd (git): [ruby/json] Update json_encoding_test.rb
https://github.com/ruby/json/commit/0ac54a8161 Grant Birkinbine
02:19 AM Revision 3468811e (git): [ruby/json] fix for pretty_generate throwing wrong number of arguments error
https://github.com/ruby/json/commit/8433571dcf Cody Horton
02:19 AM Revision 57e41766 (git): [rubygems/rubygems] Fix test warnings introduced by recent CGI changes
They read like this:
```
/home/runner/work/rubygems/rubygems/bundler/tmp/gems/base/ruby/3.4.0/gems/cgi-0.5.0.beta2/lib/cgi/util.rb:13: warning: method redefined; discarding old rfc1123_date
/opt/hostedtoolcache/Ruby/3.4.3/x64/lib/ruby/3...
deivid (David Rodríguez)
02:19 AM Revision 0f867d97 (git): Rename a couple of spec files
Generally are "realworld" specs are the ones using VCR cassettes of real
requests. These files don't use that, so I moved them to a different
place.
deivid (David Rodríguez)
02:15 AM Revision 6e8be3a6 (git): [rubygems/rubygems] Test JRuby 10
Necessary changes to get tests passing are:
* Rewrite one "out of memory" error spec to not define a subclass inside
a RSpec context block. Due to some [JRuby issue], that's failing in
JRuby 10, so I rewrote the test so that the Bun...
deivid (David Rodríguez)
02:15 AM Revision bfab76ab (git): [rubygems/rubygems] Normalize platforms in warbler lockfile
https://github.com/rubygems/rubygems/commit/c7c50343bb deivid (David Rodríguez)
02:15 AM Revision 0dfe427c (git): [rubygems/rubygems] Fix typo "shippped" => "shipped"
https://github.com/rubygems/rubygems/commit/1762d18d7b Vít Ondruch
02:15 AM Revision aea60361 (git): [rubygems/rubygems] Missing tweak
https://github.com/rubygems/rubygems/commit/407c1cbcfe deivid (David Rodríguez)
02:15 AM Revision 4be199e4 (git): [rubygems/rubygems] Simplify Gem::Platform#initialize
Based on PR feedback
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/562d7aa087
segiddins (Samuel Giddins)
02:15 AM Revision 8f61e175 (git): [rubygems/rubygems] RuboCop
Signed-off-by: Samuel Giddins <segiddins@segiddins.me>
https://github.com/rubygems/rubygems/commit/768784910b
segiddins (Samuel Giddins)
02:15 AM Revision eb48418b (git): [rubygems/rubygems] Ensure that Gem::Platform parses strings to a fix point
The issue was that the property that
```ruby
platform = Gem::Platform.new $string
platform == Gem::Platform.new(platform.to_s)
```
was not always true.
This property (of acchieving a fix point) is important,
since `Gem::Platform` gets...
segiddins (Samuel Giddins)
12:46 AM Revision 72387ebd (git): Fix typos: misspell -w -error -source=text namespace.c
hsbt (Hiroshi SHIBATA)
12:21 AM Bug #21349 (Rejected): default gems should have version >= 1
> Versions starting with 0 often imply a prereleased or beta status.
No, we don't use that versioning policy.
hsbt (Hiroshi SHIBATA)

05/18/2025

05:55 PM Feature #21346: Introduce `String#ensure_suffix`
@nobu added! Thanks for the review. matheusrich (Matheus Richard)
03:33 AM Feature #21346: Introduce `String#ensure_suffix`
matheusrich (Matheus Richard) wrote in #note-3:
> > You say "queries that might find this pattern". That seems to say that you haven't found it yet.
> ...
Maybe like this?
```ruby
"Hell".sub(/(?<!o!)\z/, "o!") #=> "Hello!"
"Hell...
nobu (Nobuyoshi Nakada)
11:58 AM Misc #21350: Bundled gems lack online documentation
Yeah it's a problem that we should resolve it before Ruby 3.5's release.
However, if the gem's source is no longer synced to `ruby/ruby`, then with the current RDoc features it's very hard to generate its documentation as part of Ruby's...
st0012 (Stan Lo)
09:40 AM Misc #21350 (Closed): Bundled gems lack online documentation
Libraries which have been converted into bundled gems seem to have no online documentation.
For example, `csv` had its documentation inside docs.ruby-lang.org up to Ruby 3.3:
https://docs.ruby-lang.org/en/3.3/CSV.html
but after it...
osyoyu (Daisuke Aritomo)
07:25 AM Bug #21257: YJIT can generate infinite loop when OOM
ruby_3_3 commit:f57dd4470b9ba1e2e0007e814f94e8bb4fd2ab6f merged revision(s) commit:80a1a1bb8ae8435b916ae4f66a483e91ad31356a. nagachika (Tomoyuki Chikanaga)
07:25 AM Revision f57dd447 (git): merge revision(s) 80a1a1bb8ae8435b916ae4f66a483e91ad31356a: [Backport #21257]
YJIT: Fix potential infinite loop when OOM (GH-13186)
Avoid generating an infinite loop in the case where:
1. Block `first` is adjacent to block `second`, and the branch from `first` to
`second` is a fallthrou...
nagachika (Tomoyuki Chikanaga)
04:40 AM Bug #21344: Segment Fault Caused by no Backported Patches
ruby_3_3 commit:1f226f1efeeae3a5091c60e2f51e027d0598f394 merged revision(s) commit:b959263b58e26ef630c085f9f7ddc04373a998c7. nagachika (Tomoyuki Chikanaga)
04:32 AM Revision 1f226f1e (git): merge revision(s) b959263b58e26ef630c085f9f7ddc04373a998c7: [Backport #21344]
Fix Exception#detailed_message for GC compaction
Before this commit, the test fails with RGENGC_CHECK_MODE enabled:
TestException#test_detailed_message_under_gc_compact_stress [test/ruby/test_exception.rb:1466]:
...
nagachika (Tomoyuki Chikanaga)
04:31 AM Bug #21297: Update net-imap for ruby 3.2, 3.3, 3.4
ruby_3_3: merged at commit:74f46982ebfbec4d21b6fc8aff47f2e290307d36. nagachika (Tomoyuki Chikanaga)
04:30 AM Revision 74f46982 (git): Bump net-imap to v0.4.21 for Ruby 3.3 (CVE-2025-43857)
v0.4.20 addresses CVE-2025-43857 (GHSA-j3g3-5qv5-52mj).
v0.4.21 fixes bugs in `Net::IMAP::SequenceSet`.
nick evans
04:06 AM Misc #21325: make ruby more middle-aged man friendly
pynix (Pynix wang) wrote in #note-3:
> nobu (Nobuyoshi Nakada) wrote in #note-2:
> ...
I don't say that overriding `format` is not ok.
Just renaming `Kernel#format` is not acceptable.
> to_s will be good, like Integer, `255.to_s(16...
nobu (Nobuyoshi Nakada)
03:39 AM Bug #21329: `date_core.so` is broken with the recent MSYS2 update
Hello, nice to meet you.
I'm a Windows user.
As for this problem,
in the following folder of msys2 installed by scoop
C:\Users\username\scoop\apps\msys2\current\ucrt64\bin
> libwinpthread-1.dll
> ...
Overwrite the same file above,
...
valture (Takayuki Kamiyama)
03:00 AM Revision 551c444f (git): merge revision(s) b48b841378f80e16378ceb83f3b78e52df9ae023, 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327]
digest.so needs ruby/digest.h which is installed by build-ext
Copy to path with the base name
nagachika (Tomoyuki Chikanaga)
02:28 AM Bug #21327: Windows builds seem broken after clock_gettime changes?
ruby_3_3 a3adc05a4e1f5c5d1cd95eee92da9693b23360bf merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, 46e4c8673747de96838d2c5dec37446d23d99d88 nagachika (Tomoyuki Chikanaga)
01:33 AM Bug #21349 (Rejected): default gems should have version >= 1
Many of the default gems have version numbers less than 1, including venerable offerings such as net-http and yaml. Versions starting with 0 often imply a prereleased or beta status. Surely if a gem has been released as part of the bas... masterleep2 (Bill Lipa)
01:24 AM Revision 8a1d738b (git): merge revision(s) 3113bc8d445c4c24ed3827adfc50bb88c99b6364:
stat command is not provided on Windows nagachika (Tomoyuki Chikanaga)

05/17/2025

11:10 PM Bug #21348 (Open): Should Tracepoint track retry as another "call" event?
When `retry` is executed in a method, Tracepoint records it as a new "call" event.
``` ruby
# tracepoint-retry.rb
# method that retries once
def foo
attempts ||= 1
raise "Fail" if attempts == 1
rescue
attempts += 1
r...
karthikc (Karthik Chandrasekariah)
04:30 PM Feature #21346: Introduce `String#ensure_suffix`
> You say "queries that might find this pattern". That seems to say that you haven't found it yet.
I'm not sure what you mean. I just meant that the regex can find this pattern, but I can't guarantee it will _only_ find that.
> ...
As...
matheusrich (Matheus Richard)
08:24 AM Feature #21346: Introduce `String#ensure_suffix`
You say "queries that might find this pattern". That seems to say that you haven't found it yet.
What's the result for
"Hello".ensure_suffix("o!")
Is it "Helloo!", or is it "Hello!"?
duerst (Martin Dürst)
02:21 PM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
@osyoyu
> Just out of curiosity: Is the example given in https://bugs.ruby-lang.org/issues/21347#note-1 a case when connect_timeout is 1000 ms (not 100 ms) ?
It's just a typo. `connect_timeout: 1000ms` is right, sorry.
shioimm (Misaki Shioi)
11:18 AM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
I am +1 to this feature. As a `Socket.tcp` / `TCPSocket` user, I am usually concerned about the time required to open the connection as a whole, rather than name resolution and connect(2) as separate parts. I also like that the mental mo... osyoyu (Daisuke Aritomo)
07:37 AM Feature #21347: Add `open_timeout` as an overall timeout option for `Socket.tcp`
Sorry, the example in the sentence "Currently, a connect_timeout is raised only after the last connection attempt exceeds the timeout." is incorrect. The correct version is as follows:
Example:
When `connect_timeout: 100ms` is set an...
shioimm (Misaki Shioi)
07:27 AM Feature #21347 (Closed): Add `open_timeout` as an overall timeout option for `Socket.tcp`
I propose to add an overall timeout option to `Socket.tcp` (and `TCPSocket.new`)
### Background
Currently, `TCPSocket.new` and `Socket.tcp` accept two kind of timeout options:
- `resolv_timeout`, which controls the timeout for DNS...
shioimm (Misaki Shioi)
01:43 PM Feature #21311: Namespace on read (revised)
As of today, I also lean on the side of not feeling comfortable with this particular aspect of namespaces.
Isolation is easy to explain and understand. While new, I believe it is intuitive 👍.
However, this so open cross-namespace r...
fxn (Xavier Noria)
01:14 PM Feature #21311: Namespace on read (revised)
fxn (Xavier Noria) wrote in #note-101:
>
> ...
Well, you posted the code, not that it needed demonstrating as it was already admitted. Two references to **the same object** showing divergent instance state (ivars). This is not just a ...
bughit (bug hit)
06:07 AM Feature #21311: Namespace on read (revised)
For everyone following, we are talking about stuff like:
```ruby
# main.rb
module Kernel
@a = 1
end
p Kernel.object_id
p Kernel.instance_variable_defined?(:@a)
ns = Namespace.new
ns.require_relative('foo')
ns::Foo.m(Kernel)
# foo.r...
fxn (Xavier Noria)
05:53 AM Feature #21311: Namespace on read (revised)
bughit (bug hit) wrote in #note-99:
> Object id in this conversation is a proxy for identity, so the correct question is: Can today a single program have an object that is value unequal to itself. The current answer is no, and allowin...
fxn (Xavier Noria)
09:47 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
Eregon (Benoit Daloze) wrote in #note-7:
> So my suggestion would be:
> ...
I'm not against to interpret the default encoding as UTF-8, but don't think transcoding is intuitive as different encoding symbols are different even if they a...
nobu (Nobuyoshi Nakada)
09:43 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
Eregon (Benoit Daloze) wrote in #note-8:
> @nobu What happens when using your patch to Marshal.dump a class and then trying to load it on an older Ruby? Will it create an instance variable `E` or error?
Just an error.
> ...
If the...
nobu (Nobuyoshi Nakada)
07:44 AM Bug #21331: heap-use-after-free caused by rehash during transform_values!
ruby_3_3 commit:cb49400d680894d69534b0b4cd10b085de325e2a merged revision(s) commit:7793b59c8d2a13c124fe276e11723db23facce04. nagachika (Tomoyuki Chikanaga)
06:57 AM Revision cb49400d (git): merge revision(s) 7793b59c8d2a13c124fe276e11723db23facce04: [Backport #21331]
[Bug #21331] Prohibit hash modification during stlike loop nagachika (Tomoyuki Chikanaga)
06:56 AM Revision b25bfd33 (git): merge revision(s) 7f5b4fb26ea8c0a736a37101327905eebebee8bf:
Remove unused retval assignments nagachika (Tomoyuki Chikanaga)
06:41 AM Revision a3adc05a (git): merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, 46e4c8673747de96838d2c5dec37446d23d99d88:
Fix redefinition of `clock_gettime` and `clock_getres`
winpthreads-git 12.0.0.r720 provides `clock_gettime` and
`clock_getres` as inline functions.
Detect `clock_gettime` and `clock_getres` for winpthreads
nagachika (Tomoyuki Chikanaga)
06:27 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
ruby_3_3 commit:b1b6752fbeb2d23dbea639bd4b331c9e8b56f49c merged revision(s) commit:0d6263bd416338a339651fb97fe4d62701704c4b. nagachika (Tomoyuki Chikanaga)
06:21 AM Revision b1b6752f (git): merge revision(s) 0d6263bd416338a339651fb97fe4d62701704c4b: [Backport #21220]
Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>
nagachika (Tomoyuki Chikanaga)
12:42 AM Revision aa0f689b (git): [ruby/net-http] Freeze some constants to improve Ractor compatibility
Freeze `Net::HTTP::SSL_IVNAMES`, `Net::HTTPResponse::CODE_CLASS_TO_OBJ`
and `Net::HTTPResponse::CODE_TO_OBJ` to improve Ractor compatibility.
This change allows the following code to work:
Ractor.new {
uri = URI.parse('http:/...
Daisuke Aritomo

05/16/2025

10:46 PM Feature #21311: Namespace on read (revised)
bughit (bug hit) wrote in #note-99:
> Can today a single program have an object that is value unequal to itself.
I mean by the default and intuitive definition of value equality which is comparing instance state. Obviously you can de...
bughit (bug hit)
10:29 PM Feature #21311: Namespace on read (revised)
fxn (Xavier Noria) wrote in #note-98:
> Think about it, can today a single program have objects with the same ID that are not equal? Yes! Absolutely it can!
Object id in this conversation is a proxy for identity, so the correct question...
bughit (bug hit)
09:53 PM Feature #21311: Namespace on read (revised)
@bughit I totally see what you mean, and I had myself this very objection up in the thread.
While my post had the aim of spreading the word and make namespaces accessible to a broader audience, I have personally still not reached a de...
fxn (Xavier Noria)
06:57 PM Feature #21311: Namespace on read (revised)
fxn (Xavier Noria) wrote in #note-96:
>
> ...
This argument would work for other languages where classes are magical templates that can be endowed with all kinds of special traits. But this is ruby where a class is an object, an instanc...
bughit (bug hit)
06:23 PM Feature #21311: Namespace on read (revised)
bughit (bug hit) wrote in #note-95:
> The example I used to illustrate the absurdity of this is two string references to the "same" string object but having different string values.
I am not sure I follow. The edge case in which th...
fxn (Xavier Noria)
05:11 PM Feature #21311: Namespace on read (revised)
fxn (Xavier Noria) wrote in #note-90:
>
> ...
There are things that new features should not do, like redefining and corrupting the concept of a object.
> 2. @tagomoris made the good point that in _today_'s Ruby, refinements already...
bughit (bug hit)
07:32 AM Feature #21311: Namespace on read (revised)
Eregon (Benoit Daloze) wrote in #note-93:
> vo.x (Vit Ondruch) wrote in #note-88:
> ...
Just to be clear, I don't agitate for loading RubyGems, just wonder where the line is. Having clean pristine environment is very unique opportunity...
vo.x (Vit Ondruch)
10:18 PM Bug #21340: Bump autoconf version to properly handle C23 bool/stdbool defines
google-protobuf is also failing to compile native extension on windows ruby head and 3.4.4 with msys2 gcc 15.
```
In file included from
D:/rubyinstaller-head-x64/include/ruby-3.5.0+1/ruby/defines.h:74,
from
D:/rubyinstaller-head-x64/inc...
ntkme (Natsuki Natsume)
08:54 PM Feature #14916: Proposal to add Array#===
This is probably unnecessary now that pattern matching exists. matheusrich (Matheus Richard)
08:47 PM Feature #4539: Array#zip_with
@matz maybe too obvious, but how about `zip_map`? matheusrich (Matheus Richard)
08:02 PM Feature #21346: Introduce `String#ensure_suffix`
If approved, I can add `String#ensure_prefix` and the bang versions of those methods. matheusrich (Matheus Richard)
08:00 PM Feature #21346 (Open): Introduce `String#ensure_suffix`

## Problem
Ensuring a string has a specific suffix or prefix is a common operation in many applications.
Bundler itself uses it:
https://github.com/rubygems/rubygems/blob/d409ec8b5fc647fabe30e37e17cd1ea857634f6b/bundler/lib/bund...
matheusrich (Matheus Richard)
06:47 PM Bug #21345: crash on evaluating 'a=>a,*,'
This is most probably a Prism bug, since it seems to work fine with `parse.y` as the parser:
```shell
$ ruby --parser parse.y -ve 'a=>a,*,'
ruby 3.4.4 (2025-05-14 revision a38531fd3f) [arm64-darwin24]
-e:1: syntax error, unexpected end-o...
ufuk (Ufuk Kayserilioglu)
04:19 PM Bug #21345 (Closed): crash on evaluating 'a=>a,*,'
```
ruby -e 'a=>a,*,'
-e: [BUG] Unexpected node type in pattern matching expression: PM_IMPLICIT_REST_NODE
ruby 3.4.3 (2025-04-14 revision d0b7e5b6a0) +PRISM [arm64-darwin24]
-- Crash Report log information ----------------------...
masterleep2 (Bill Lipa)
06:16 PM Revision 22c09135 (git): rb_copy_generic_ivar: reset shape_id when no ivar are present
byroot (Jean Boussier)
06:16 PM Revision 1e33a451 (git): gc: Execute run_final with the lock held
The finalizer table can't be read nor modified without the VM lock. byroot (Jean Boussier)
06:16 PM Revision ec8900e3 (git): rb_gc_impl_copy_finalizer: generate a new object id
Fix a regression introduced by: https://github.com/ruby/ruby/pull/13155 byroot (Jean Boussier)
06:16 PM Revision a2944270 (git): Add missing lock to `rb_gc_impl_copy_finalizer`
byroot (Jean Boussier)
05:50 PM Revision d9248856 (git): ZJIT: Create more ergonomic type profiling API (#13339)
Max Bernstein
05:31 PM Revision eead8316 (git): Prevent enabling yjit when zjit enabled (GH-13358)
`ruby --yjit --zjit` already warns and exits, but it was still possible
to enable both with `ruby --zjit -e 'RubyVM:YJIT.enable`.
This commit prevents that with a warning and an early return. (We could
also exit, but that seems a bit un...
dodecadaniel (Daniel Colson)
04:50 PM Revision cc90adb6 (git): [DOC] Tweaks for String#append_as_bytes
burdettelamar (Burdette Lamar)
04:47 PM Revision a1882496 (git): [DOC] Tweaks for String#b
burdettelamar (Burdette Lamar)
04:46 PM Revision 1f09c9fa (git): [DOC] Tweaks for String#ascii_only?
burdettelamar (Burdette Lamar)
03:52 PM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
I see that you're calling `Numeric#times` in your profiled test code. We used to use a `block_given?` C call inside it to check if a block is given. @nobu changed it to `defined?(yield)` at commit:3dccb716daaee74d2ae00a5766fe1779fe220a81... k0kubun (Takashi Kokubun)
12:46 PM Bug #21338: TracePoint Not Triggered for Kernel#block_given?
Yes, we intentionally moved the implementation for `block_given?` to C. Again, a method can move between C and Ruby between versions.
I just tested rb_tracepoint_new() with RUBY_EVENT_C_CALL and `block_given?`, and an event definitely f...
alanwu (Alan Wu)
03:17 PM Revision c5c252c0 (git): Add a test case for `it` in a regex.
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> nicholasdower (Nick Dower)
03:17 PM Revision 4921845b (git): [Bug #21313] Handle `it` in rescue and ensure blocks.
The following is crashing for me:
```shell
ruby --yjit --yjit-call-threshold=1 -e '1.tap { raise rescue p it }'
ruby: YJIT has panicked. More info to follow...
thread '<unnamed>' panicked at ./yjit/src/codegen.rs:2402:14:
...
```
It s...
nicholasdower (Nick Dower)
01:11 PM Feature #21335: Namespaces should be present in the backtrace
mame (Yusuke Endoh) wrote in #note-4:
> ```
> ...
I took me quite a while to notice that 0x00007ff4d61f9f20 and 0x00007ff4d61f93e0 were different.
Just my personal preference, but if `#<Namespace:0x00007ff4d61f93e0>` is assigned to ...
Dan0042 (Daniel DeLorme)
12:22 PM Revision 097d742a (git): [Bug #20009] Support marshaling non-ASCII name class/module
nobu (Nobuyoshi Nakada)
12:15 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
@nobu What happens when using your patch to Marshal.dump a class and then trying to load it on an older Ruby? Will it create an instance variable `E` or error?
I guess if there is no matching BINARY constant it would error anyway, but i...
Eregon (Benoit Daloze)
12:10 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
So my suggestion would be:
* Interpret the serialized module/class name as UTF-8, not as BINARY. And of course if it's only 7-bit as US-ASCII (already the case).
* If the module/class name uses another encoding, we could either transcode...
Eregon (Benoit Daloze)
12:08 PM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
Mmh, but Marshal.dump+load of such non-7-bit modules/classes works on TruffleRuby, although it needs a tiny fix:
```patch
diff --git a/src/main/ruby/truffleruby/core/marshal.rb b/src/main/ruby/truffleruby/core/marshal.rb
index 102468e...
Eregon (Benoit Daloze)
10:35 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
I made a patch which works well except for tests added by [ruby/spec@907cb35](https://github.com/ruby/spec/commit/907cb35e21).
Since the dumped strings in these tests have not been loadable, I think they are useless actually.
https://gi...
nobu (Nobuyoshi Nakada)
08:40 AM Bug #20009: Marshal.load raises exception when load dumped class include non-ASCII
Currently instance variables of class/module are prohibited.
It may be possible to put the encoding information there.
nobu (Nobuyoshi Nakada)
12:08 PM Revision 5e01c0e4 (git): ZJIT: Remove unnecessary cloning
Max Bernstein
11:23 AM Bug #20998: rb_str_locktmp() changes flags of frozen strings and string literals
mame (Yusuke Endoh) wrote in #note-13:
> Unless there is a valid use case for that, it would be good to raise an Exception, instead of no-op.
FYI TruffleRuby implemented FrozenError when `rb_str_locktmp()` is used on a frozen String ...
Eregon (Benoit Daloze)
11:04 AM Revision 9cec38c1 (git): "binary" is not valid encoding name in Emacs
nobu (Nobuyoshi Nakada)
10:49 AM Bug #21344: Segment Fault Caused by no Backported Patches
Ah, I have misunderstood that the fix was on rexml.gem. nagachika (Tomoyuki Chikanaga)
10:46 AM Bug #21344: Segment Fault Caused by no Backported Patches
rexml is already bundled gems in ruby 3.2/3.3.
The users can use any versions of rexml specified with lock file.
nagachika (Tomoyuki Chikanaga)
10:26 AM Bug #21344 (Closed): Segment Fault Caused by no Backported Patches
Close to mark for backport. nobu (Nobuyoshi Nakada)
08:04 AM Bug #21344 (Closed): Segment Fault Caused by no Backported Patches

In my local machine(3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]), which is the default version in ubuntu2404, a segmentation fault can be stably triggered by the poc including malicious xml data.
The poc here:
```ruby...
tianstcht (Haotian Cheng)
07:34 AM Bug #21343: Namespace: singleton classes of root namespace leak between namespaces
Seems adjacent to https://bugs.ruby-lang.org/issues/21330.
The `klass` field like the `flags` one isn't part of the `classext_t`, so it's not effectively namespaced.
byroot (Jean Boussier)
05:14 AM Revision a0fe0095 (git): Don't enumerate `io->blocking_operations` if fork generation is different. (#13359)
Samuel Williams
05:03 AM Bug #21313: `it` in rescue/ensure on prism
I encountered this issue today and attempted a fix: https://github.com/ruby/ruby/pull/13360
I hope that was appropriate.
nicholasdower (Nick Dower)
01:14 AM Revision 35000ac2 (git): Prevent double free for too big repetition quantifiers (#13332)
Prevent double free for too big repetition quantifiers
The previous implementation calls `free(node)` twice (on parsing and compiling a
regexp) when it has an error, so it leads to a double-free issue. This
commit enforces `free(node)` ...
make_now_just (Hiroya Fujinami)
 

Also available in: Atom