Activity
From 11/21/2025 to 11/27/2025
Today
-
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 ... -
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... - 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... - 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... -
07:30 AM Revision 3ebb5b9c (git): Remove unneeded trailing semicolons
- 07:06 AM Revision 4917f233 (git): Store snapshot info date as Date instead of String
-
07:00 AM Revision 0f45d0c4 (git): Update man and help: -d option set $VERBOSE to true
- 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.
- 06:44 AM Revision 3e926cd5 (git): NEWS.md: fix wording about Ractor::Port
-
06:00 AM Revision 10522ca1 (git): [DOC] Include strscan/lib
-
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... -
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 -
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. -
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.
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... -
11:10 PM Revision 52426a22 (git): Remove an excess colon [ci skip]
- 10:14 PM Revision bee02c41 (git): Fix a ractor barrier issue during VM cleanup. (#15091)
- 09:23 PM Revision 1660b814 (git): Eliminate redundant work and branching when marking T_OBJECT (#15274)
-
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.... -
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... -
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 -
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
-
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> - 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... -
06:59 PM Bug #21516: Segfault in String#succ! on 32-bit i686
- Indeed it fixes the bug for me.
-
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.
-
06:40 PM Revision 795e290e (git): Avoid extra set of age bit flags
-
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
-
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 |... -
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.
-
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... -
05:06 PM Revision e057ff33 (git): [Doc] Fix duplicated entry in GC.stat documentation
-
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 -
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... -
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 -
02:47 PM Revision adc0521b (git): [ruby/json] Test to_json using State#depth
- https://github.com/ruby/json/commit/ac0a980668
-
02:47 PM Revision dd6a4ea2 (git): [ruby/json] Test depth
- https://github.com/ruby/json/commit/d02e40324a
-
02:47 PM Revision fb642b78 (git): [ruby/json] Test that depth of unfrozen State does not change
- https://github.com/ruby/json/commit/9d32cf4618
-
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 🙏
-
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 -
10:40 AM Revision 6ace0251 (git): [ruby/optparse] Put `private` before method declarations
- https://github.com/ruby/optparse/commit/5478354d4f
-
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 - 07:03 AM Revision 61f34568 (git): Update default gems list at ecdeb90fe94af86c6d84fe343c1f95 [ci skip]
-
07:01 AM Revision ecdeb90f (git): [ruby/rubygems] Bump up to 4.0.0.beta2
- https://github.com/ruby/rubygems/commit/b8529f48bf
-
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 -
06:41 AM Revision 43ed35de (git): [ruby/cgi] Skip unless `CGI::EscapeExt` methods are implemented
- https://github.com/ruby/cgi/commit/7b5a13952b
-
02:50 AM Revision 72eb929e (git): [DOC] Exclude the word Box from RDoc's autolinking
-
02:48 AM Revision 30fe3654 (git): Ignore missed commits [ci skip]
-
02:35 AM Revision 2f53985d (git): Revert miscommit at "Reset the cache variable before retrying"
- This reverts commit 26a9e0b4e31f7b5a9cbd755e0a15823a8fa51bae partially.
-
02:26 AM Revision 724e94a0 (git): ZJIT: CI: Run `btest` with call-threshold=2
- 02:08 AM Revision 0b0c2cc4 (git): Update bundled gems list as of 2025-11-25
-
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)`
-
01:47 AM Revision 26a9e0b4 (git): Reset the cache variable before retrying
- 01:23 AM Revision 6354afa6 (git): Update bundled gems list as of 2025-11-26
-
01:22 AM Revision 1e6079dc (git): [DOC] Use Aliki as the documentation website theme (#15319)
- Use Aliki as the documentation website theme
- 01:10 AM Revision e84b91a2 (git): Box: mark/move Box object referred via ENV/rb_env_t
- 01:10 AM Revision 0654bcd4 (git): Box: Add a test to drop the reference to a box
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... -
09:48 PM Revision 4263f1d7 (git): Store fiber serial as Ractor-local
-
06:50 PM Revision 0eb53053 (git): ZJIT: Specialize setinstancevariable when ivar is already in shape (#15290)
- Don't support shape transitions for now.
-
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... -
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... -
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... -
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. -
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.
-
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.
-
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... -
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... -
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 ... -
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... -
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... -
04:55 AM Revision 7ba98638 (git): CI: Add timeout to compilations [ci skip]
-
04:47 AM Revision ec05bc39 (git): Fix the fallback using mutex
-
04:47 AM Revision 2957ba70 (git): Try libatomic only if necessary
-
04:47 AM Revision bbf4bde7 (git): Reapply "Fix stdatomic case in `rbimpl_atomic_u64_fetch_add`"
- This reverts commit 8a68dc7bdd3d1c97677a6633a4f2b5e524c492ae.
-
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... -
03:06 AM Revision 55892f59 (git): Fix style for rb_gc_impl_after_fork
-
03:06 AM Revision 86b21020 (git): Fix style for rb_gc_impl_before_fork
-
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... -
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
11/24/2025
-
10:32 PM Revision 35445a73 (git): Add SIGABRT to reserved signals in bundler spec
-
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... -
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 ... -
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... -
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. ^_^ -
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 `... -
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}|(?<=– |: )#... -
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... -
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
... -
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. -
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?
-
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 -
08:30 AM Revision 45fcb9d5 (git): Adjust indent [ci skip]
-
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
-
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...
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... -
09:36 PM Revision b75cf83a (git): [ruby/prism] Revert "Reject `p(p a, &block => value)` and similar"
- https://github.com/ruby/prism/commit/fef2c20777
-
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... -
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... -
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 -
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
- 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 -
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... -
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 -
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... -
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... -
12:46 PM Revision 32a4545e (git): CI: Abandon CAPI check on macos-15
- `hashFiles` is very unstable on macOS runners.
-
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.
-
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_... -
10:04 AM Revision 1738255f (git): [Misc #21688] [DOC] Include box.md in Ruby::Box documentation
-
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. -
09:08 AM Revision 422ed748 (git): [ruby/date] [DOC] Remove the name from same file references
- https://github.com/ruby/date/commit/e41082e068
-
08:56 AM Revision fed528a9 (git): [DOC] Remove the name from same file references
-
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
-
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. -
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 -
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. -
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. - 02:31 AM Revision a7f948c3 (git): [DOC] Fix a typo in enum.c documentation
- fix a minor misspelling in the documentation comments
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... -
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 -
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... -
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... -
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 -
09:32 AM Revision ec296f63 (git): [ruby/json] Use booleans in string_scan
- https://github.com/ruby/json/commit/256cad5def
-
07:39 AM Misc #21681 (Closed): Clarification on the Status and Roadmap of Ruby Box for Ruby 4.0
-
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 ...
-
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...
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
```
... -
10:16 PM Revision 7789aaca (git): [DOC] Tweaks for Integer#**
-
10:11 PM Revision b47b37c1 (git): [DOC] Harmonize #* methods
-
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 ... -
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... - 07:16 PM Revision 6e2906f6 (git): ZJIT: Don't make GuardNotFrozen consider immediates
- 07:16 PM Revision e31c2569 (git): ZJIT: Inline GuardNotFrozen into LIR
- No sense calling a C function.
-
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 ... -
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... - 05:21 PM Revision 1959fcac (git): ZJIT: Add tests for Kernel#kind_of?
- 05:21 PM Revision 14e34fa7 (git): ZJIT: Print class objects more nicely in HIR
- 05:21 PM Revision ff89e470 (git): ZJIT: Specialize Module#=== and Kernel#is_a? into IsA
-
04:57 PM Revision e0bb3fb1 (git): ZJIT: Inline Integer#<< for constant rhs (#15258)
- This is good for protoboeuf and other binary parsing
-
04:49 PM Revision 8728406c (git): ZJIT: Inline Thread.current (#15272)
- Add `LoadEC` then it's just two `LoadField`.
- 04:49 PM Revision 8090988f (git): ZJIT: Inline ArrayLength into LIR
- 04:49 PM Revision 6cebbf40 (git): ZJIT: Split CSel memory reads on x86_64
- Fix https://github.com/Shopify/ruby/issues/876
-
04:48 PM Revision f52edf17 (git): ZJIT: Specialize monomorphic DefinedIvar (#15281)
- This lets us constant-fold common monomorphic cases.
-
04:48 PM Revision e5e8ac51 (git): ZJIT: Inline String#empty? (#15283)
- Don't emit a CCall.
-
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. -
04:12 PM Revision ffa105c2 (git): [ruby/json] Move RUBY_TYPED_FROZEN_SHAREABLE macro to json.h
- https://github.com/ruby/json/commit/2a4ebe8250
-
04:12 PM Revision 419efd5c (git): [ruby/json] Skip test failing with JRuby in CI
- https://github.com/ruby/json/commit/305d3832db
-
04:12 PM Revision bdca2a99 (git): [ruby/json] Ractor-shareable JSON::Coder
- https://github.com/ruby/json/commit/58d60d6b76
-
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... -
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... -
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 ... -
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_... -
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. -
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. -
08:32 AM Revision eb11b40b (git): [ruby/rubygems] bin/rubocop -a
- https://github.com/ruby/rubygems/commit/fbf6fb667e
-
06:49 AM Revision bcc7b204 (git): Use assert_match for uplevel option
-
06:49 AM Revision 1d160ed0 (git): Fixed warning for String comparison of Gem::Version
-
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.
... - 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... -
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... -
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... -
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
-
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 -
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
-
01:51 AM Revision 9d04fb52 (git): CI: cmake in scoop seems unused
- 01:19 AM Revision 9764306c (git): Accurate GC.stat under multi-Ractor mode
-
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... -
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. - 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.