Project

General

Profile

Activity

From 11/22/2025 to 11/28/2025

Today

09:01 PM Revision 413d15a3 (git): [ruby/rubygems] Add `MAKEFLAGS=-j` by default before compiling:
- Depending on the native extension, it can greatly reduce compilation
time when executing recipes simultaneously.
For example on Prism:
```
# Before
time gem install prism
Building native extensions. This could take a whi...
Edouard CHIN
07:41 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
I don't think we should support this (at least not long term, I'm fine if it is patched for Ruby 4.0.0). `object_id` has always potentially allocated (either to enlarge the backing hashes, or to make a BIGNUM on 32-bit). It's only in the... jhawthorn (John Hawthorn)
06:13 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
Ok.
Here is the code that shows the inconsistency Regexp/String for interpolation, from your examples:
```ruby
# inconsistent Regexp/String interpolation behavior
prefix = '\p{In_Arabic}'
suffix = '\p{In_Arabic}'.encode('US-ASCII'...
thyresias (Thierry Lambert)
05:24 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
thyresias (Thierry Lambert) wrote in #note-8:
> jeremyevans0 (Jeremy Evans) wrote in #note-7:
> ...
Updating just the title is fine. I don't think you need to open a new bug report.
> As an aside, you said about the encoding of the ...
jeremyevans0 (Jeremy Evans)
10:32 AM Bug #21709: Regexp interpolation is inconsistent with String interpolation
jeremyevans0 (Jeremy Evans) wrote in #note-7:
> Sure, that sounds like a good idea.
It seems I cannot change the description, just the title.
Should I open a new bug report?
As an aside, you said about the encoding of the result ...
thyresias (Thierry Lambert)
05:50 PM Revision 8c70def4 (git): Use ALWAYS_INLINE for vm_getinstancevariable
Recently rb_vm_getinstancevariable was introduced exposing this method
to ZJIT. On clang specifically this ended up causing the compiler not to
inline into vm_exec_core and cause a significant performance regression
in optcarrot for the ...
jhawthorn (John Hawthorn)
05:35 PM Bug #21718 (Closed): TypeError:wrong argument type ... (expected Array)
Applied in changeset commit:git|191bfcb9c505ba3f5771f7ac67d6131aeb6b6837.
----------
Define Kernel#instance_variables_to_inspect
[Bug #21718]
Otherwise objects that don't define it, but define a fairly liberal
`method_missing` method ...
byroot (Jean Boussier)
04:57 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
vo.x (Vit Ondruch) wrote in #note-10:
> And I have not tried what would happen if the array returned by `instance_variables_to_inspect` contained some garbage ...
Just tested a few examples:
~~~
$ irb
irb(main):001* class Foo
i...
vo.x (Vit Ondruch)
04:54 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
> could the error message (and/or documentation) be improved to provide more context?
Yes, I'll work on that. the standard `Check_Type` helper was used, but since it's not clear where the failing type is common from..
> ...
That ha...
byroot (Jean Boussier)
04:41 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
byroot (Jean Boussier) wrote in #note-9:
> I think the better solution here is to pre-define `Kernel#instance_variables_to_inspect`
That solves one part. But if this is considered acceptable, could the error message (and/or documenta...
vo.x (Vit Ondruch)
03:21 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
I think the better solution here is to pre-define `Kernel#instance_variables_to_inspect` https://github.com/ruby/ruby/pull/15345 byroot (Jean Boussier)
03:10 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
In retrospect, is the `instance_variables_to_inspect` design good? Wouldn't it be better if such method behaved as some filter? E.g. it would get e.g. an array of something (maybe list of instance variables?), which could be altered and ... vo.x (Vit Ondruch)
03:06 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
I agree we shouldn't fallback to `method_missing` when checking for `instance_variables_to_inspect`. Not fully sure how to do that though. byroot (Jean Boussier)
02:49 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
Ignoring `method_missing` in this case or wrapping the non-array object in an array are the only workarounds I can think of. I don't believe ruby ever ignores `method_missing` like this, so it would be a bit different to do it here.
...
luke-gru (Luke Gruber)
02:42 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
This is essentially what happens:
~~~
$ irb
irb(main):001* class Foo
irb(main):002* def initialize
irb(main):003* @bar = "bar"
irb(main):004* end
irb(main):005> end
=> :initialize
irb(main):006> Foo.new.inspect
=> "...
vo.x (Vit Ondruch)
02:36 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
To me, it seems that the `VALUE ivars = rb_check_funcall(obj, id_instance_variables_to_inspect, 0, 0);` code at `rb_obj_inspect` assumes that there is returned either `nil` or `Array` of symbols. But with `method_missing` available, it c... vo.x (Vit Ondruch)
01:07 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
> I only checked minimagick, this looks caused by https://bugs.ruby-lang.org/issues/21219
Yep, I think so.
I have just tried to add `p composite` on [this](https://github.com/minimagick/minimagick/blob/ddcbfe9632667876be10373e1e012...
vo.x (Vit Ondruch)
12:02 PM Bug #21718: TypeError:wrong argument type ... (expected Array)
> it looks like it might use inspect to match yielded arguments or something along those lines?
Maybe `to_s` calls `inspect`?
mtasaka (Mamoru TASAKA)
11:41 AM Bug #21718: TypeError:wrong argument type ... (expected Array)
I only checked minimagick, this looks caused by https://bugs.ruby-lang.org/issues/21219
`MiniMagick::Tool` defines `method_missing` and returns itself: https://github.com/minimagick/minimagick/blob/ddcbfe9632667876be10373e1e01252617e740...
Earlopain (Earlopain _)
10:25 AM Bug #21718 (Closed): TypeError:wrong argument type ... (expected Array)
Testing Ruby 4.0 on Fedora, we observe these errors in [MiniMagick](https://github.com/minimagick/minimagick/)
~~~
1) MiniMagick::Image#composite yields an optional block
Failure/Error: yield composite if block_given?
TypeE...
vo.x (Vit Ondruch)
05:34 PM Revision 191bfcb9 (git): Define Kernel#instance_variables_to_inspect
[Bug #21718]
Otherwise objects that don't define it, but define a fairly liberal
`method_missing` method will run into errors that are hard to understand:
```ruby
class Foo
def method_missing(name, ...)
name
end
end
p Foo.new....
byroot (Jean Boussier)
03:38 PM Revision 8eaefd93 (git): [ruby/prism] Fix invalid Ruby code example in ClassNode comment
https://github.com/ruby/prism/commit/5b7456c8f6 qraqras
10:49 AM Revision dcb9e17f (git): [DOC] Update bundled gems list at 5a82880ea98617ab6894cd771ea3c3
git[bot]
10:48 AM Revision 5a82880e (git): Bump RDoc version to 6.16.1 (#15344)
st0012 (Stan Lo)
09:33 AM Misc #21689: DevMeeting-2025-12-11
- [Feature #21717] Introduce `Fiber::Scheduler#process_fork` hook.
- Is it acceptable? https://github.com/ruby/ruby/pull/15342
- [Feature #21704] Expose `rb_process_status_new` to C extensions.
- Required for improved io_uring `proce...
ioquatix (Samuel Williams)
08:46 AM Feature #21717 (Open): Introduce Fiber::Scheduler#process_fork hook
When using a fiber scheduler and forking a process, the child process "inherits" the fiber scheduler. For the fiber scheduler to be usable in the forked process, its internal state should in most cases be reset.
I propose the introduc...
noteflakes (Sharon Rosner)
02:23 AM Revision 404e6aa9 (git): [DOC] Fix typo in rb_debug_inspector_current_depth
peterzhu2118 (Peter Zhu)
01:27 AM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
I repeated Mame's experience on a Xeon Platinum 8124M and gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04). The chip is from 2017, and runs x86-64-v4. I'm using slightly different scripts since I'm running with frequency scaling disable... alanwu (Alan Wu)
12:04 AM Revision 5e2e45fc (git): Fix for modgc
jhawthorn (John Hawthorn)
12:04 AM Revision 9929dc44 (git): Mask off unused VWA bits
jhawthorn (John Hawthorn)

11/27/2025

11:31 PM Revision 5b1ed1ef (git): [DOC] Remove unneeded filename from rdoc-ref links (#15339)
st0012 (Stan Lo)
10:43 PM Bug #21716: YJIT panic: "all PendingBranchRefs should be unique" in net/http response reading (infinite unwind loop)
There is two separate issues here, YJIT panicking, and the crash reporter looping during stack tracing. During development, I've seen the the crash reporter go into infinite loop on aarch64-dwarin, too.
The rust unwinder seems to be w...
alanwu (Alan Wu)
02:34 PM Bug #21716: YJIT panic: "all PendingBranchRefs should be unique" in net/http response reading (infinite unwind loop)
👋 I'll add that we have some limited crash telemetry at Datadog and I've seen what might be the same issue (YJIT failing somewhere inside `branch_stub_hit`) on both Ruby 3.3 and 3.4 (maybe 3.2 but unclear? if the same) on both x86-64 and... ivoanjo (Ivo Anjo)
12:25 PM Bug #21716 (Open): YJIT panic: "all PendingBranchRefs should be unique" in net/http response reading (infinite unwind loop)
We encountered a YJIT panic in production that caused the process to enter an infinite logging loop for several hours. The panic occurs within `yjit/src/core.rs` when handling branch references.
The trigger appears to be in `net/http`...
angelim@angelim.com.br (Alexandre Angelim)
08:12 PM Revision 4cd6661e (git): Reorganize page documentations (#15154)
Re-organize page docs st0012 (Stan Lo)
05:27 PM Misc #21689: DevMeeting-2025-12-11
[Feature [#21619](https://bugs.ruby-lang.org/issues/21619)] logger context API

* Blog post detailing motivation [here](https://honeyryderchuck.gitlab.io/2025/11/12/context-missing-api-in-logger.html)
* logger doesn't have a context A...
chucke (Tiago Cardoso)
01:01 PM Revision 2f192c73 (git): [ruby/json] Respect Coder depth when generating
https://github.com/ruby/json/commit/9c36681b17 etienne (Étienne Barrié)
01:01 PM Revision 78aa8d5b (git): [ruby/json] Test current behavior regarding depth for Coder
Coder currently ignores its depth and always resets it to 0 when
generating a new JSON document.
https://github.com/ruby/json/commit/cca1f38316
etienne (Étienne Barrié)
12:05 PM Revision 68a7edaa (git): [DOC] Fix a link in NEWS.md
znz (Kazuhiro NISHIYAMA)
09:47 AM Revision aebd391f (git): Clean prism directory
nobu (Nobuyoshi Nakada)
09:25 AM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
I wonder if the premise that "unaligned word access is feasible on x86" no longer holds in modern contexts?
We are of course aware that unaligned word access is undefined behavior in C. However, it is slightly faster, which is why we ...
mame (Yusuke Endoh)
03:03 AM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
Right, it's doing the unaligned read in the classic intuitive-but-UB way. Can you try the following (roughly tested) patch? It's based on the ruby_3_4 branch.
```patch
From 225f6caf914a4dd4c457d9e52ab72a79c91bd1a7 Mon Sep 17 00:00:00...
alanwu (Alan Wu)
07:36 AM Revision 3b09db3b (git): Bump actions/checkout from 5.0.1 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6)
---
updated-dependen...
dependabot[bot]
07:36 AM Revision cdf4634d (git): Bump actions/checkout in /.github/actions/setup/directories
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http...
dependabot[bot]
07:30 AM Revision 3ebb5b9c (git): Remove unneeded trailing semicolons
S_H_ (Shun Hiraoka)
07:06 AM Revision 4917f233 (git): Store snapshot info date as Date instead of String
Tommaso Barbato
07:00 AM Revision 0f45d0c4 (git): Update man and help: -d option set $VERBOSE to true
kyanagi (Kouhei Yanagita)
06:48 AM Revision a2c12d3f (git): Documentation: Added the `|`(pipe)/OR operator to syntax/methods.
It was not documented as an operator that can be overriden, which is confusing because it makes you think it can't be. Sebastian Dufner
06:44 AM Revision 3e926cd5 (git): NEWS.md: fix wording about Ractor::Port
Alex Clink
06:00 AM Revision 10522ca1 (git): [DOC] Include strscan/lib
naitoh (Jun NAITOH)
02:10 AM Revision 2e770cdf (git): Fix argument handling in `IO::Buffer#each_byte` (#15309)
The method incorrectly ignored its first argument and treated the second argument as offset and the third as count.
This change makes the first argument be treated as offset and the second as count.
Also fix incorrect block parameter in...
tommy (Masahiro Tomita)
12:13 AM Revision a60cd878 (git): Error if deleting a nonexistent obj from geniv
I don't think this ever happened, but we should raise the same error
we'd raise on lookup
jhawthorn (John Hawthorn)
12:13 AM Revision 5bef7577 (git): Ensure we don't dereference fields_obj as Qundef
We rely on the GC to clear this when the GC is run on another EC than
the cache.
jhawthorn (John Hawthorn)
12:13 AM Revision 970b18e9 (git): Clear fields obj when removing
This fixes a bug where the gen_fields_cache could become invalid when
the last ivar was removed. Also adds more assertions.
jhawthorn (John Hawthorn)

11/26/2025

11:36 PM Revision db94a79d (git): ZJIT: Count fallback reasons for set/get/definedivar (#15324)
lobsters:
```
Top-4 setivar fallback reasons (100.0% of total 7,789,008):
shape_transition: 6,074,085 (78.0%)
not_monomorphic: 1,484,013 (19.1%)
not_t_object: 172,629 ( 2.2%)
too_complex: 58,281 ( 0.7%)
Top-3 geti...
tekknolagi (Maxwell Bernstein)
11:10 PM Revision 52426a22 (git): Remove an excess colon [ci skip]
nobu (Nobuyoshi Nakada)
10:14 PM Revision bee02c41 (git): Fix a ractor barrier issue during VM cleanup. (#15091)
Luke Gruber
09:23 PM Revision 1660b814 (git): Eliminate redundant work and branching when marking T_OBJECT (#15274)
Luke Gruber
09:07 PM Bug #21715 (Open): Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
Building the following Dockerfile fails on a x86-64 machine in the last step (running `make` command):
```
FROM opensuse/leap:16.0
RUN zypper --non-interactive install wget make gcc
RUN wget 'https://cache.ruby-lang.org/pub/ruby/3....
mjacob (Manuel Jacob)
08:56 PM Bug #21707 (Closed): Destructuring assignment of SimpleDelegator wrapped array bug with YJIT
Applied in changeset commit:git|5f55c9c8fb8f401537e7121171747196e66c3ba0.
----------
YJIT: Abort expandarray optimization if method_missing is defined
Fixes: [Bug #21707]
[AW: rewrote comments]
Co-authored-by: Alan Wu <alanwu@ruby-lang...
rwstauner (Randy Stauner)
06:05 PM Bug #21707: Destructuring assignment of SimpleDelegator wrapped array bug with YJIT
3.2 and 3.3 don't have this bug.
Backport PR for 3.4: https://github.com/ruby/ruby/pull/15331
rwstauner (Randy Stauner)
12:12 AM Bug #21707: Destructuring assignment of SimpleDelegator wrapped array bug with YJIT
I have a fix up for this https://github.com/ruby/ruby/pull/15325 rwstauner (Randy Stauner)
08:56 PM Revision 5f55c9c8 (git): YJIT: Abort expandarray optimization if method_missing is defined
Fixes: [Bug #21707]
[AW: rewrote comments]
Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
rwstauner (Randy Stauner)
08:37 PM Revision c42c6c27 (git): ZJIT: Remove dead unnecessary_transmutes allow
```
warning: unknown lint: `unnecessary_transmutes`
--> zjit/src/cruby.rs:107:9
|
107 | #[allow(unnecessary_transmutes)] // https://github.com/rust-lang/rust-bindgen/issues/2807
| ^^^^^^^^^^^^^^^^^^^^^^
|
= not...
Stan Lo
06:59 PM Bug #21516: Segfault in String#succ! on 32-bit i686
Indeed it fixes the bug for me. leahneukirchen (Leah Neukirchen)
06:40 PM Revision 67a14e94 (git): Set age bitmap outside of adding to freelist
This allows us to do less work when allocating a fresh page. jhawthorn (John Hawthorn)
06:40 PM Revision 795e290e (git): Avoid extra set of age bit flags
jhawthorn (John Hawthorn)
06:00 PM Bug #21714 (Open): Prism and parse.y inconsistency in `def a = a b do 1 end`
Endless method definition and command with block are syntax error in parse.y, accepted in Prism.
~~~ruby
def a = a b do 1 end
~~~
Related to https://bugs.ruby-lang.org/issues/17398 and https://bugs.ruby-lang.org/issues/21711
tompng (tomoya ishida)
05:54 PM Bug #21713 (Open): Prism accepts pattern matching in modifier rescue followed by operators that shouldn't be allowed
These are syntax errors in parse.y but accepted in Prism
~~~ruby
a rescue b => c in d
a rescue b in c..
a rescue b => c..
a rescue b => c::itself
a rescue b => c[]
a rescue b => c[0] = 1
a rescue b => c ? 1 : 2
a rescue b => c |...
tompng (tomoya ishida)
05:41 PM Bug #21712 (Open): Prism and parse.y inconsistency in command call with block and `.()`
`a b do end.()` `a b do end&.()` are parsed differently.
Prism: parse success, parse.y: SyntaxError
I personally like Prism's behavior: `.()` and `&.()` are accepted where `.f()` and `&.f()` are accepted.
tompng (tomoya ishida)
05:15 PM Bug #21711 (Open): Prism and parse.y parses private endless method definition with block differently
In the following code, `do end` block is passed to `private` in Prism but passed to `tap` in parse.y
~~~ruby
private def f = tap do end
f # different result(prism: LocalJumpError, parsey: returns main)
~~~
According to https://bug...
tompng (tomoya ishida)
05:06 PM Revision e057ff33 (git): [Doc] Fix duplicated entry in GC.stat documentation
byroot (Jean Boussier)
02:47 PM Revision ab3b79ea (git): [ruby/json] Don't copy JSON_Generator_State in generate_new
Now that the state isn't mutated in generate_new, we no longer need to
copy the struct, we can just use it.
https://github.com/ruby/json/commit/d7964f8892
etienne (Étienne Barrié)
02:47 PM Revision 98a96677 (git): [ruby/json] Don't write depth to JSON_Generator_State in some cases
For `JSON.generate` and `JSON::State#generate_new`, don't copy
generate_json_data::depth to JSON_Generator_State::depth.
In `JSON.generate`, the JSON_Generator_State is on the stack and
discarded anyway. In `JSON::State#generate_new`, w...
etienne (Étienne Barrié)
02:47 PM Revision 4b8ec8c9 (git): [ruby/json] Add depth to struct generate_json_data
Instead of incrementing JSON_Generator_State::depth, we now increment
generate_json_data::depth, and only copied at the end.
https://github.com/ruby/json/commit/5abd434907
etienne (Étienne Barrié)
02:47 PM Revision adc0521b (git): [ruby/json] Test to_json using State#depth
https://github.com/ruby/json/commit/ac0a980668 etienne (Étienne Barrié)
02:47 PM Revision dd6a4ea2 (git): [ruby/json] Test depth
https://github.com/ruby/json/commit/d02e40324a etienne (Étienne Barrié)
02:47 PM Revision fb642b78 (git): [ruby/json] Test that depth of unfrozen State does not change
https://github.com/ruby/json/commit/9d32cf4618 etienne (Étienne Barrié)
02:32 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
Thanks for the hyper-quick investigation & PR 🙏 ivoanjo (Ivo Anjo)
10:40 AM Revision 38022961 (git): [ruby/optparse] Remove unneeded `public`
Removed public visibility from the candidate method.
https://github.com/ruby/optparse/commit/9a784a89a2
sampersand2 (Sam Westerman)
10:40 AM Revision 6ace0251 (git): [ruby/optparse] Put `private` before method declarations
https://github.com/ruby/optparse/commit/5478354d4f sampersand2 (Sam Westerman)
09:55 AM Revision c85eb2d0 (git): [ruby/timeout] Revert "Suppress warnings in two tests"
This reverts commit https://github.com/ruby/timeout/commit/983cbf636a17, that is
fixed by test-unit 3.7.3.
https://github.com/ruby/timeout/commit/095207f270
nobu (Nobuyoshi Nakada)
07:03 AM Revision 61f34568 (git): Update default gems list at ecdeb90fe94af86c6d84fe343c1f95 [ci skip]
git[bot]
07:01 AM Revision ecdeb90f (git): [ruby/rubygems] Bump up to 4.0.0.beta2
https://github.com/ruby/rubygems/commit/b8529f48bf hsbt (Hiroshi SHIBATA)
06:50 AM Revision 525ee3ab (git): [ruby/cgi] Fix mixed declarations and code
Use C90 syntax only, as far as supporting ruby 2.6 or earlier.
https://github.com/ruby/cgi/commit/886c82982a
nobu (Nobuyoshi Nakada)
06:41 AM Revision 43ed35de (git): [ruby/cgi] Skip unless `CGI::EscapeExt` methods are implemented
https://github.com/ruby/cgi/commit/7b5a13952b nobu (Nobuyoshi Nakada)
02:50 AM Revision 72eb929e (git): [DOC] Exclude the word Box from RDoc's autolinking
nobu (Nobuyoshi Nakada)
02:48 AM Revision 30fe3654 (git): Ignore missed commits [ci skip]
nobu (Nobuyoshi Nakada)
02:35 AM Revision 2f53985d (git): Revert miscommit at "Reset the cache variable before retrying"
This reverts commit 26a9e0b4e31f7b5a9cbd755e0a15823a8fa51bae partially. nobu (Nobuyoshi Nakada)
02:26 AM Revision 724e94a0 (git): ZJIT: CI: Run `btest` with call-threshold=2
alanwu (Alan Wu)
02:08 AM Revision 0b0c2cc4 (git): Update bundled gems list as of 2025-11-25
git[bot]
01:52 AM Misc #21699 (Closed): Updating CAPI docs
Thanks for sharing this.
I fixed this issue and re-generate now with `4.0.0dev (2025-11-26 revision 6354afa64a5c59de50f064a7827cbd15d29dc874)`
hsbt (Hiroshi SHIBATA)
01:47 AM Revision 26a9e0b4 (git): Reset the cache variable before retrying
nobu (Nobuyoshi Nakada)
01:23 AM Revision 6354afa6 (git): Update bundled gems list as of 2025-11-26
git[bot]
01:22 AM Revision 1e6079dc (git): [DOC] Use Aliki as the documentation website theme (#15319)
Use Aliki as the documentation website theme st0012 (Stan Lo)
01:10 AM Revision e84b91a2 (git): Box: mark/move Box object referred via ENV/rb_env_t
Satoshi Tagomori
01:10 AM Revision 0654bcd4 (git): Box: Add a test to drop the reference to a box
Satoshi Tagomori

11/25/2025

10:19 PM Revision 8bf333a1 (git): Fix live object count for multi-Ractor forking
Since we do not run a Ractor barrier before forking, it's possible that
another other Ractor is halfway through allocating an object during forking.
This may lead to allocated_objects_count being off by one.
For example, the following s...
peterzhu2118 (Peter Zhu)
09:48 PM Revision 4263f1d7 (git): Store fiber serial as Ractor-local
jhawthorn (John Hawthorn)
06:50 PM Revision 0eb53053 (git): ZJIT: Specialize setinstancevariable when ivar is already in shape (#15290)
Don't support shape transitions for now. tekknolagi (Maxwell Bernstein)
04:02 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
thyresias (Thierry Lambert) wrote in #note-6:
> Thank you. I agree with your analysis of the bug origin: should I edit this to re-qualify it as "inconsistent Regexp interpolation behavior", and update the example code using your example...
jeremyevans0 (Jeremy Evans)
11:21 AM Bug #21709: Regexp interpolation is inconsistent with String interpolation
jeremyevans0 (Jeremy Evans) wrote in #note-5:
> I agree this represents a bug, which is why I changed the status back to Open. However, I think the bug is in the literal Regexp support, not in `Regexp.escape`.
Thank you. I agree with...
thyresias (Thierry Lambert)
03:40 PM Bug #21694 (Closed): Crash when looking up super method from BasicObject
Applied in changeset commit:git|a36ebb18a6d4c4726915b6d7c16cfdbf4e5d417b.
----------
vm_cc_new: don't assume `cme` is present.
[Bug #21694]
`vm_search_super_method` explictly calls `vm_cc_new` with `cme=NULL`
when there is no super cl...
byroot (Jean Boussier)
03:40 PM Revision a36ebb18 (git): vm_cc_new: don't assume `cme` is present.
[Bug #21694]
`vm_search_super_method` explictly calls `vm_cc_new` with `cme=NULL`
when there is no super class.
byroot (Jean Boussier)
03:15 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
I'm still waiting on CI, but https://github.com/ruby/ruby/pull/15320 now handles `T_OBJECT` too and include @nobu's test. Review welcome. byroot (Jean Boussier)
02:45 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
Thank you @nobu, I'll integrate your test case and fix the remaining issues. byroot (Jean Boussier)
02:27 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
With the attached patch, GH-15320 works fine for `Struct`.
```console
$ ./ruby -r-test-/tracepoint -e 'foo = Struct.new(:foo); bar = nil; Bug.tracepoint_add_object_id { bar = foo.new(1) }; p bar.object_id'
16
```
Crashes for `Ob...
nobu (Nobuyoshi Nakada)
02:11 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
I got a fix here: https://github.com/ruby/ruby/pull/15320
But I'd like to find some time to add a regression test, or at the very least to audit the other types to see if a similar issue is possible with the other types that also opti...
byroot (Jean Boussier)
01:19 PM Bug #21710: Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
I believe I understand what's going on. The `NEWOBJ` callback is invoked before `struct_alloc` has set the necessary flags such as `RSTRUCT_GEN_FIELDS` and `RSTRUCT_EMBED_LEN_MASK`.
This cause `rb_object_id` to look for, and set, the ...
byroot (Jean Boussier)
10:49 AM Bug #21710 (Open): Segfault when reading object_id after it is set inside RUBY_INTERNAL_EVENT_NEWOBJ
Hey 👋. I caught a following segfault when running the [Datadog Ruby Profiler](https://github.com/datadog/dd-trace-rb) test suite on 4.0.0-preview2.
The Datadog Ruby Profiler still uses object_ids in `RUBY_INTERNAL_EVENT_NEWOBJ` to sim...
ivoanjo (Ivo Anjo)
08:09 AM Revision e920ee32 (git): [ruby/rubygems] Support bundle install --lockfile option
This allows for specifying the lockfile to read and write. It mirrors
the --gemfile option, and has higher priority than the lockfile
method in the Gemfile. It also mirrors the bundle lock --lockfile
option.
When the --lockfile option i...
jeremyevans (Jeremy Evans)
04:55 AM Revision 7ba98638 (git): CI: Add timeout to compilations [ci skip]
nobu (Nobuyoshi Nakada)
04:47 AM Revision ec05bc39 (git): Fix the fallback using mutex
nobu (Nobuyoshi Nakada)
04:47 AM Revision 2957ba70 (git): Try libatomic only if necessary
nobu (Nobuyoshi Nakada)
04:47 AM Revision bbf4bde7 (git): Reapply "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`"
This reverts commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae. nobu (Nobuyoshi Nakada)
04:46 AM Revision f8ee0690 (git): ZJIT: For JIT-to-JIT send, avoid loading uninitialized local through EP
JIT-to-JIT sends don't blit locals to nil in the callee's
EP memory region because HIR is aware of this initial state and
memory ops are only done when necessary. Previously, we
read from this initialized memory by emitting `GetLocal` in...
alanwu (Alan Wu)
03:06 AM Revision 55892f59 (git): Fix style for rb_gc_impl_after_fork
peterzhu2118 (Peter Zhu)
03:06 AM Revision 86b21020 (git): Fix style for rb_gc_impl_before_fork
peterzhu2118 (Peter Zhu)
02:55 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
I want to mention that the "overrides" are regular exports and don't pose an insurmountable problem; the extension is ultimately in control and can choose to prefer whatever C runtime it wants.
LINK [searches] libraries based on the o...
alanwu (Alan Wu)
02:15 AM Revision 58faaf11 (git): [ruby/uri] [DOC] Fix result of sample code in `#user=`
A `password` is cleared when change a user now.
https://github.com/ruby/uri/commit/af6714473c
y-yagi (Yuji Yaginuma)

11/24/2025

10:32 PM Revision 35445a73 (git): Add SIGABRT to reserved signals in bundler spec
peterzhu2118 (Peter Zhu)
10:32 PM Revision 2315349b (git): Handle SIGABRT and output bug report
SIGABRT is for abnormal termination so we should handle it to output a bug
report. Specifically, glibc malloc uses it to exit when there is corruption.
For example, the following script produces a double free:
mem = Fiddle.malloc(10...
peterzhu2118 (Peter Zhu)
10:16 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
> However, to focus on the original issue, I think it would be good to clarify whether the removal of the override targets a single C runtime environment.
The removal of the overrides would target each Ruby extension that is written in ...
cfis (Charlie Savage)
09:50 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
thyresias (Thierry Lambert) wrote in #note-4:
> Ok for the workaround, but don't you think all this is inconsistent?
> ...
I agree this represents a bug, which is why I changed the status back to Open. However, I think the bug is in th...
jeremyevans0 (Jeremy Evans)
08:36 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
Ok for the workaround, but don't you think all this is inconsistent?
For me, it's a bug, not a feature. ^_^
thyresias (Thierry Lambert)
06:52 PM Bug #21709 (Open): Regexp interpolation is inconsistent with String interpolation
thyresias (Thierry Lambert) wrote in #note-2:
> > Does this behavior cause any problems in your application?
> ...
Thank you for providing an example. This seems more like an issue with the literal Regexp support in general than with `...
jeremyevans0 (Jeremy Evans)
06:01 PM Bug #21709: Regexp interpolation is inconsistent with String interpolation
> Does this behavior cause any problems in your application?
Yes:
```ruby
search_text = "foo"
s_search = Regexp.escape(search_text)
re_prefix = /\p{In_Arabic}.+ /
s_search.prepend re_prefix.source
_re = /^#{s_search}|(?<=– |: )#...
thyresias (Thierry Lambert)
04:54 PM Bug #21709 (Feedback): Regexp interpolation is inconsistent with String interpolation
This is not a bug, it is deliberate behavior for ASCII-only strings in `rb_reg_quote` (internal function called by `Regexp.escape`):
```c
if (ascii_only) {
rb_enc_associate(tmp, rb_usascii_encoding());
}
```
`US...
jeremyevans0 (Jeremy Evans)
03:15 PM Bug #21709 (Open): Regexp interpolation is inconsistent with String interpolation
```ruby
%w(foo être).each do |s|
puts "string: #{s.inspect} -> #{s.encoding}"
puts "escaped: #{Regexp.escape(s).inspect} -> #{Regexp.escape(s).encoding}"
end
```
Output:
```
string: "foo" -> UTF-8
escaped: "foo" -> US-ASCII
...
thyresias (Thierry Lambert)
08:28 PM Revision 8a68dc7b (git): Revert "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`" (#15311)
This reverts commit d3b6f835d565ec1590059773fc87589ddf8adc37.
This broke the Docker builds and presumably also 32-bit machines that
don't already have libatomic installed.
tekknolagi (Maxwell Bernstein)
01:02 PM Bug #21516: Segfault in String#succ! on 32-bit i686
I have a very similar crash, but it doesn’t seem related to #21655. Can you check whether the fix for #21655 solved your crash? mjacob (Manuel Jacob)
08:44 AM Revision aeb7689e (git): [ruby/forwardable] Use generic argument forwarding (...) instead of ruby2_keywords on Ruby 2.7+
On Ruby 3.4+, generic argument forwarding is significantly faster
as it does not allocate.
https://github.com/ruby/forwardable/commit/b606c3bf0a
jeremyevans (Jeremy Evans)
08:30 AM Revision 45fcb9d5 (git): Adjust indent [ci skip]
nobu (Nobuyoshi Nakada)
07:52 AM Bug #21708: Ruby 3.4 Forwardable: setter delegations trigger SyntaxError from forwardable/impl.rb
Fix is here: https://github.com/ruby/forwardable/pull/39 byroot (Jean Boussier)
02:42 AM Misc #21688: Ruby::Box maturing path
zverok (Victor Shepelev) wrote:
> 2. Should small(ish) problems/suggestions be reported? Can they be submitted as PRs? (I mean, things like "in some cases, `#inspect` of the class in the Box is weird", and other stuff like this) Or thi...
nobu (Nobuyoshi Nakada)

11/23/2025

10:10 PM Bug #21708 (Open): Ruby 3.4 Forwardable: setter delegations trigger SyntaxError from forwardable/impl.rb
- `forwardable`: 1.3.3 (bundled stdlib)
- OS: Ubuntu 24.04 (also reproducible on macOS)
- RUBYOPT / $DEBUG: default (but with $DEBUG=true or RUBYOPT=-d the errors are emitted)
# Reproduction Script (minimal)
```
requir...
jfi (James Inman)
09:36 PM Revision b75cf83a (git): [ruby/prism] Revert "Reject `p(p a, &block => value)` and similar"
https://github.com/ruby/prism/commit/fef2c20777 kddnewton (Kevin Newton)
09:14 PM Bug #21707 (Closed): Destructuring assignment of SimpleDelegator wrapped array bug with YJIT
Destructuring assignment does not work after a few iterations if YJIT is enabled.
Happens in ruby 3.4.1 and 4.0.0dev.
~~~
root@05305c0005f4:/# ruby -v
ruby 4.0.0dev (2025-11-23T19:10:29Z master 8d73a18187) +PRISM [x86_64-linux]
root...
tompng (tomoya ishida)
07:53 PM Feature #21706 (Open): Add SIMD optimizations for string comparison operations
# Feature: SIMD-accelerated String Comparison (SSE2/NEON)
**PR:** https://github.com/ruby/ruby/pull/15307
## Summary
SIMD optimizations for string comparison using SSE2 (x86_64) and NEON (ARM64). **17.2% average speedup** for st...
sebyx07 (Sebastian Buza)
07:10 PM Revision 8d73a181 (git): [ruby/prism] Handle destroying implicit parameter
Fixes https://github.com/ruby/prism/pull/3740
https://github.com/ruby/prism/commit/464a849184
kddnewton (Kevin Newton)
06:54 PM Revision 39022057 (git): Replace vfork with fork for ASAN
Older versions of ASAN do not support vfork. See https://github.com/google/sanitizers/issues/925 peterzhu2118 (Peter Zhu)
06:45 PM Revision 026140b3 (git): [ruby/prism] Avoid reading out-of-bounds in pm_strnstr
Fixes https://github.com/ruby/prism/pull/3738.
https://github.com/ruby/prism/commit/37bb46ff5f
Steven Johnstone
06:15 PM Bug #21622 (Closed): Prism wrongly accepts command call to be a key of keyword argument
Applied in changeset commit:git|2870b7d7df30bc227f40a4c04c97050b90f1f25b.
----------
[ruby/prism] Reject `p(p a, &block => value)` and similar
They were being parsed as `p((p a, &block) => value)`.
When we get to this point, we must no...
Earlopain (Earlopain _)
06:15 PM Revision 2870b7d7 (git): [ruby/prism] Reject `p(p a, &block => value)` and similar
They were being parsed as `p((p a, &block) => value)`.
When we get to this point, we must not just have parsed a command call, always consuming the `=>` is not correct.
Closes [Bug #21622]
https://github.com/ruby/prism/commit/796ab0edf4
Earlopain (Earlopain _)
03:41 PM Bug #21703 (Closed): RUBY_CRASH_REPORT does not work when shelling out in some cases
Applied in changeset commit:git|190b017fc6c21ff7b61c2b5ece0294785e4a4ca2.
----------
Don't use non blocking pipes for RUBY_CRASH_REPORT
[Bug #21703]
RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux.
For example...
peterzhu2118 (Peter Zhu)
03:41 PM Revision 190b017f (git): Don't use non blocking pipes for RUBY_CRASH_REPORT
[Bug #21703]
RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux.
For example, given the following shell script dump.sh:
#!/usr/bin/env bash
cat > /tmp/crash
And we see it fails like this:
$ RUBY_CRAS...
peterzhu2118 (Peter Zhu)
12:46 PM Revision 32a4545e (git): CI: Abandon CAPI check on macos-15
`hashFiles` is very unstable on macOS runners. nobu (Nobuyoshi Nakada)
12:36 PM Misc #21688 (Open): Ruby::Box maturing path
NB: Tentatively reopening this ticket, as it was autoclosed by the referring commit, but the ticket's scope is not only about the inclusion of `Ruby::Box` in the RDoc output. zverok (Victor Shepelev)
11:51 AM Misc #21688 (Closed): Ruby::Box maturing path
Applied in changeset commit:git|4a0e01d7681e72919f1fae7bc9db744e5a3fbe8c.
----------
[Misc #21688] Teach RDoc about the toplevel module `Ruby`
Re-open the exising module by calling `rb_define_module`.
RDoc (`RDoc::Parser::C#do_classes_...
nobu (Nobuyoshi Nakada)
10:04 AM Revision 1738255f (git): [Misc #21688] [DOC] Include box.md in Ruby::Box documentation
nobu (Nobuyoshi Nakada)
10:01 AM Revision 4a0e01d7 (git): [Misc #21688] Teach RDoc about the toplevel module `Ruby`
Re-open the exising module by calling `rb_define_module`.
RDoc (`RDoc::Parser::C#do_classes_and_modules`) does not recognize
`rb_path2class` as a class/module definition.
nobu (Nobuyoshi Nakada)
09:08 AM Revision 422ed748 (git): [ruby/date] [DOC] Remove the name from same file references
https://github.com/ruby/date/commit/e41082e068 nobu (Nobuyoshi Nakada)
08:56 AM Revision fed528a9 (git): [DOC] Remove the name from same file references
nobu (Nobuyoshi Nakada)
08:38 AM Bug #21374: FrozenError message is inconsistent when a singleton method is defined on a frozen object
I submitted a pull request to fix this issue: https://github.com/ruby/ruby/pull/15303 jeremyevans0 (Jeremy Evans)
05:26 AM Bug #21705 (Closed): `UNIXServer.open(nil)` segfaults on Windows
Applied in changeset commit:git|beb85e7eeee4163cd45b69645a60cdb942f72c05.
----------
[Bug #21705] Fix segfaults on Windows
It should check the type of the argument and coercion before
converting the encoding.
nobu (Nobuyoshi Nakada)
04:51 AM Bug #21705 (Closed): `UNIXServer.open(nil)` segfaults on Windows
It should check the type of the argument and coercion before converting the encoding.
https://github.com/ruby/ruby/pull/15302
nobu (Nobuyoshi Nakada)
05:04 AM Bug #21702 (Third Party's Issue): `UNIXSocket` on Windows: suprising results in `#recvfrom` and `#remote_address`
Whether it's a bug or a specification, both are the same as winsock.
Please report to Microsoft.
nobu (Nobuyoshi Nakada)
04:55 AM Revision beb85e7e (git): [Bug #21705] Fix segfaults on Windows
It should check the type of the argument and coercion before
converting the encoding.
nobu (Nobuyoshi Nakada)
02:31 AM Revision a7f948c3 (git): [DOC] Fix a typo in enum.c documentation
fix a minor misspelling in the documentation comments Brandon Zylstra

11/22/2025

04:48 PM Revision dd489ee9 (git): [ruby/openssl] asn1: refactor converting ASN1_OBJECT to string
ruby/openssl exposes OIDs to Ruby as strings in many places, but the
conversion logic has been duplicated and the behavior is inconsistent.
There are mainly two patterns:
- Returns the short name associated with the OID/NID, or the dot...
rhenium (Kazuki Yamaguchi)
04:48 PM Revision 424499dd (git): [ruby/openssl] ts: refactor converting string to ASN1_OBJECT
obj_to_asn1obj() in ossl_ts.c and ossl_asn1.c are identical. Let's
remove one in ossl_ts.c.
eASN1Error can now be made static to ossl_asn1.c.
https://github.com/ruby/openssl/commit/dcb05c40c2
rhenium (Kazuki Yamaguchi)
02:25 PM Revision f9efa0cc (git): [ruby/openssl] pkey/ec: fix OpenSSL::PKey::EC::Group#curve_name for unknown curves
EC_GROUP_get_curve_name() returns NID_undef when OpenSSL does not
recognize the curve and there is no associated OID.
Handle this case explicitly and return nil instead of the string
"UNDEF", which should not be exposed outside the exte...
rhenium (Kazuki Yamaguchi)
01:52 PM Revision c7a84ae0 (git): [ruby/json] parser.c: Record escape positions while parsing
We can then pass them to the decoder to save having to parse
the string again.
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
W...
byroot (Jean Boussier)
01:12 PM Revision 73576274 (git): [ruby/json] Fix the parser to not accept invalid escapes
Only `"\/bfnrtu` are valid after a backslash.
https://github.com/ruby/json/commit/f7f8f552ed
byroot (Jean Boussier)
09:32 AM Revision ec296f63 (git): [ruby/json] Use booleans in string_scan
https://github.com/ruby/json/commit/256cad5def byroot (Jean Boussier)
07:39 AM Misc #21681 (Closed): Clarification on the Status and Roadmap of Ruby Box for Ruby 4.0
tagomoris (Satoshi Tagomori)
06:16 AM Feature #21704 (Open): Expose rb_process_status_new to C extensions
A fiber scheduler implementation with a hook for `#process_wait` needs to return a `Process::Status` object, but currently it is not possible for a C extension to directly create an instance of `Process::Status`. The technique currently ... noteflakes (Sharon Rosner)
05:47 AM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
I created a PR with my original changes applied to master. It's [here](https://github.com/ruby/ruby/pull/15294).
The proposal to use a single-thread per process rather than one per ractor involves some complexity, but I think it's sim...
jpl-coconut (Jacob Lacouture)
 

Also available in: Atom