Project

General

Profile

Activity

From 11/21/2025 to 11/27/2025

Today

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: Inconsistent encoding by Regexp.escape
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: Inconsistent encoding by Regexp.escape
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: Inconsistent encoding by Regexp.escape
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: Inconsistent encoding by Regexp.escape
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): Inconsistent encoding by Regexp.escape
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: Inconsistent encoding by Regexp.escape
> 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): Inconsistent encoding by Regexp.escape
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): Inconsistent encoding by Regexp.escape
```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)

11/21/2025

10:34 PM Bug #21703 (Closed): RUBY_CRASH_REPORT does not work when shelling out in some cases
GitHub PR: https://github.com/ruby/ruby/pull/15292
RUBY_CRASH_REPORT does not work in some cases when shelling out on Linux. For example, given the following shell script dump.sh:
```sh
#!/usr/bin/env bash
cat > /tmp/crash
```
...
peterzhu2118 (Peter Zhu)
10:16 PM Revision 7789aaca (git): [DOC] Tweaks for Integer#**
burdettelamar (Burdette Lamar)
10:11 PM Revision b47b37c1 (git): [DOC] Harmonize #* methods
burdettelamar (Burdette Lamar)
09:29 PM Revision 2289961b (git): [ruby/rubygems] Undeprecate Gem::Version#<=> against strings
This pattern is extremely common across the ecosystem, I don't think
it's reasonable to deprecate it.
I understand the performance argument, but perhaps the dependency
resolution algorithm can use another method that is private API
and ...
byroot (Jean Boussier)
08:48 PM Misc #21688: Ruby::Box maturing path
Hi, I've read the box.md file as well as parts of the box.c file.
I'm also very interested into that project but as far as I understood it's not yet ready (some stuff are still to be done as well as some additional tests). I'm sure t...
NuriYuri (Youri Nouri)
07:16 PM Revision 6e2906f6 (git): ZJIT: Don't make GuardNotFrozen consider immediates
Max Bernstein
07:16 PM Revision e31c2569 (git): ZJIT: Inline GuardNotFrozen into LIR
No sense calling a C function. Max Bernstein
06:59 PM Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
I think slices always require a source buffer? If so, returning a slice will require somehow handling a buffer so it doesn't leak (though GC may take care of it?).
On a related note, slices require some work on their own, there is no ...
trinistr (Alexander Bulancov)
06:30 PM Bug #21702 (Third Party's Issue): `UNIXSocket` on Windows: suprising results in `#recvfrom` and `#remote_address`
Support for `UNIXSocket` on Windows was added in #19135. Through testing in ruby/spec, I identified unexpected results in two methods:
1. `#remote_address.to_s` always returns 110 bytes, compared to `#local_address.to_s` which returns o...
trinistr (Alexander Bulancov)
05:21 PM Revision 1959fcac (git): ZJIT: Add tests for Kernel#kind_of?
Max Bernstein
05:21 PM Revision 14e34fa7 (git): ZJIT: Print class objects more nicely in HIR
Max Bernstein
05:21 PM Revision ff89e470 (git): ZJIT: Specialize Module#=== and Kernel#is_a? into IsA
Max Bernstein
04:57 PM Revision e0bb3fb1 (git): ZJIT: Inline Integer#<< for constant rhs (#15258)
This is good for protoboeuf and other binary parsing tekknolagi (Maxwell Bernstein)
04:49 PM Revision 8728406c (git): ZJIT: Inline Thread.current (#15272)
Add `LoadEC` then it's just two `LoadField`. tekknolagi (Maxwell Bernstein)
04:49 PM Revision 8090988f (git): ZJIT: Inline ArrayLength into LIR
Max Bernstein
04:49 PM Revision 6cebbf40 (git): ZJIT: Split CSel memory reads on x86_64
Fix https://github.com/Shopify/ruby/issues/876 Max Bernstein
04:48 PM Revision f52edf17 (git): ZJIT: Specialize monomorphic DefinedIvar (#15281)
This lets us constant-fold common monomorphic cases. tekknolagi (Maxwell Bernstein)
04:48 PM Revision e5e8ac51 (git): ZJIT: Inline String#empty? (#15283)
Don't emit a CCall. tekknolagi (Maxwell Bernstein)
04:20 PM Revision d3b6f835 (git): Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`
On some platoforms, 64bit atomic operations need the dedicated helper
library.
nobu (Nobuyoshi Nakada)
04:12 PM Revision ffa105c2 (git): [ruby/json] Move RUBY_TYPED_FROZEN_SHAREABLE macro to json.h
https://github.com/ruby/json/commit/2a4ebe8250 etienne (Étienne Barrié)
04:12 PM Revision 419efd5c (git): [ruby/json] Skip test failing with JRuby in CI
https://github.com/ruby/json/commit/305d3832db etienne (Étienne Barrié)
04:12 PM Revision bdca2a99 (git): [ruby/json] Ractor-shareable JSON::Coder
https://github.com/ruby/json/commit/58d60d6b76 etienne (Étienne Barrié)
03:30 PM Revision 7ae0809c (git): Remove clang-18 from compilers CI
clang-18 has a bug that causes ruby_current_ec to sometimes be null when
using Ractors and crashes like this:
<internal:ractor>:700: [BUG] Segmentation fault at 0x0000000000000030
ruby 4.0.0dev (2025-11-21T06:49:14Z master bcc7b...
peterzhu2118 (Peter Zhu)
02:49 PM Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2
Thanks for running the tests!
On my machine (x64 Linux/AMD Ryzen 7 5800X) Roda works fine with the Gemfile from the repository. Yes, most gems are (very) old, I have pinned these in order to have a stable set of gems so comparing resu...
easydwh (Ivo Herweijer)
01:33 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
@cfis, thank you for your comments.
The benefits of source code compatibility with other platforms and the shared use of Windows C runtime resources by ruby and C extensions
enforce a single C runtime for the Windows port.
In this ...
YO4 (Yoshinao Muramatsu)
08:43 AM Revision 5f5da2c2 (git): Fix stdatomic case in rbimpl_atomic_u64_fetch_add
This was failing on crossruby, likely because HAVE_GCC_ATOMIC_BUILTINS
was true, but HAVE_GCC_ATOMIC_BUILTINS_64 was false. We probably should
have feature detection of 64-bit stdatomics like we do for GCC, but for
now let's keep rbimpl_...
jhawthorn (John Hawthorn)
08:34 AM Revision b9a213f7 (git): Fix timezone of `yesterday`
Set the `TZ environment variable. `git log` does not recognize UTC
offset in `--before` option, unless full datetime is given.
nobu (Nobuyoshi Nakada)
08:34 AM Revision d4e1f9e1 (git): Win: quote equal sign in command line
`cmd.exe` splits the command line also by equal signs, not only by
space characters.
nobu (Nobuyoshi Nakada)
08:32 AM Revision eb11b40b (git): [ruby/rubygems] bin/rubocop -a
https://github.com/ruby/rubygems/commit/fbf6fb667e hsbt (Hiroshi SHIBATA)
06:49 AM Revision bcc7b204 (git): Use assert_match for uplevel option
hsbt (Hiroshi SHIBATA)
06:49 AM Revision 1d160ed0 (git): Fixed warning for String comparison of Gem::Version
hsbt (Hiroshi SHIBATA)
06:26 AM Feature #21701 (Open): Enumerator.produce accepts an optional `size` keyword argument
Enumerator::Producer#size currently always returns `Float::INFINITY`, and it is not specifiable.
However, a produce sequence is known to be at least finite in many cases, and you can even tell or compute the exact size in some cases.
...
knu (Akinori MUSHA)
04:34 AM Revision 451c1209 (git): [ruby/rubygems] Check for file existence before deletion from cache
(https://github.com/ruby/rubygems/pull/9095)
* Rescue when deleting a non-existent cached gem file
When a gem was in the cache, but another process deletes it first, this
delete command fails.
To work around this, I'm rescuing from Er...
Philip Arndt
04:20 AM Revision ee002a5e (git): [ruby/rubygems] Respect `BUNDLE_VERSION` config at Gem::BundlerVersionFinder
If we use "system" variable in BUNDLE_VERSION on Bundler configuration,
we can use bundler version provided by system installation.
But the current logic returns the first activated version of bundler
like 2.7.2. It makes to confuse use...
hsbt (Hiroshi SHIBATA)
04:03 AM Revision 917e77be (git): [ruby/rubygems] Deprecate comparing Gem::Version objects with strings
Comparing version objects is a huge bottleneck in dependency solvers
(like inside Bundler). I would like to make comparing version objects
cheaper. Right now we support comparing version objects with strings by
trying to coerce the str...
tenderlovemaking (Aaron Patterson)
04:03 AM Revision 8b116ee8 (git): [ruby/rubygems] create a gem version instead of comparing with a string
https://github.com/ruby/rubygems/commit/c1e3d4d63b tenderlovemaking (Aaron Patterson)
03:13 AM Revision 9aa09b46 (git): [ruby/rubygems] Fixed RuboCop offense in Rakefile generated by `bundle gem`
```
Offenses:
Rakefile:18:1: C: [Correctable] Layout/EmptyLines: Extra blank line detected.
Diff:
@@ -11,4 +11,5 @@
ext.lib_dir = "lib/test_gem"
end
+
task default: :compile
https://github.com/ruby/rubygems/commit/8c414729df
sue445 (Go Sueyoshi)
03:13 AM Revision a26f8235 (git): [ruby/rubygems] Add go_gem/rake_task for Go native extention gem skeleton
https://github.com/ruby/rubygems/commit/64f92d2da0 sue445 (Go Sueyoshi)
01:51 AM Revision 9d04fb52 (git): CI: cmake in scoop seems unused
nobu (Nobuyoshi Nakada)
01:19 AM Revision 9764306c (git): Accurate GC.stat under multi-Ractor mode
John Hawthorn
12:52 AM Revision 07ddb0ed (git): ZJIT: Read `iseq->body->param` directly instead of through FFI
Going through a call to a C function just to read a bitfield was a
little extreme. We did it to be super conservative since bitfields
have historically been the trigger of many bugs and surprises. Let's
try directly accessing them with c...
alanwu (Alan Wu)
12:52 AM Revision 7a09df45 (git): Name the `iseq->body->param` struct and update bindings for JITs
This will make reading the parameters nicer for the JITs. Should be
no-op for the C side.
alanwu (Alan Wu)
12:30 AM Revision aa9e15cb (git): Fix multiple bugs in `IO::Buffer.map` and update its documentation. (#15264)
- Buffer's size did not account for offset when mapping the file, leading to possible crashes.
- Size and offset were not checked properly, leading to many situations raising EINVAL errors with generic messages.
- Documentation was wrong.
Alexander Bulancov
 

Also available in: Atom