Project

General

Profile

Activity

From 04/11/2026 to 04/17/2026

Today

02:39 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
@matz What should the following return?
```ruby
f = proc { <<END }
xxx
END
f.source_range #=> Start position: from the `p` of `proc`? Or from the `{`?
#=> End position: up to the `}`? Or up to the `D` of `END`?
...
mame (Yusuke Endoh)
02:05 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
Thank you for the proposal. Introducing a new method rather than extending `source_location` is the right direction, given the compatibility issues we hit.
I approve the shape of this feature, including:
- The class name `Ruby::Sou...
matz (Yukihiro Matsumoto)
11:41 AM Feature #21962: Add deep_freeze for recursive freezing
matz (Yukihiro Matsumoto) wrote in #note-4:
> `Ractor.make_shareable` does more than deep freezing and exists for Ractor. Its presence does not by itself justify `deep_freeze` in core.
But deep freezing is the most visible effect, an...
headius (Charles Nutter)
04:54 AM Feature #21962: Add deep_freeze for recursive freezing
`Ractor.make_shareable` does more than deep freezing and exists for Ractor. Its presence does not by itself justify `deep_freeze` in core.
In my opinion, deep freezing is a rare need in practice, and the `ice_nine` gem seems to cover ...
matz (Yukihiro Matsumoto)
11:28 AM Revision 11e3c78b (git): [ruby/rubygems] Fix installing gems with native extensions + transitive dependencies
I am seeing the following error during bundle install:
```
Gem::MissingSpecError: Could not find 'ffi' (>= 1.15.5) among 48 total gem(s) (Gem::MissingSpecError)
```
This is reproducible with:
```ruby
source 'https://rubygems.org'
gem...
nicholasdower (Nick Dower)
10:00 AM Revision 27af8317 (git): Fix timeout_scale= call to use the correct receiver
* See https://github.com/ruby/test-unit-ruby-core/pull/23 Eregon (Benoit Daloze)
09:11 AM Misc #21922 (Assigned): Permissions for committers for ex-default/bundled/unbundled gems repositories
The comment in https://bugs.ruby-lang.org/issues/21922#note-4 accurately reflects the current status for the most part. However, to be more precise: historically, Ruby committers could freely merge changes (such as misc/doc or bug fixes)... hsbt (Hiroshi SHIBATA)
07:15 AM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
I'd like to suggest we settle the design before changing the permissions.
Specifically:
1. The current policy around default/bundled/unbundled gems should be written down. `doc/maintainers.md` is outdated, and until it's updated, d...
matz (Yukihiro Matsumoto)
08:43 AM Misc #22006 (Closed): Usage of deprecated input in gem sync workflows
I guess maybe the appid needs to change some day, or the wait for workflow breaks (unlikely in the near future). I just thought it could be nice to have that all bundled in a central place.
Anyways, I'm not the one that does all the u...
Earlopain (Earlopain _)
07:34 AM Revision 509b0e4d (git): Fixed the wrong dev version of strscan
hsbt (Hiroshi SHIBATA)
07:32 AM Revision 88f18fde (git): Update with the correct versions from Ruby 4.0.0 release
hsbt (Hiroshi SHIBATA)
07:22 AM Misc #22005: Missing information about CVE on cve.org
One more question. What is the process with H1 disclosure? Because to me it seems that the H1 report is still private despite being referenced in the GHSA vo.x (Vit Ondruch)
07:08 AM Misc #22005: Missing information about CVE on cve.org
Thanks. I appreciate that 🙏 vo.x (Vit Ondruch)
02:26 AM Misc #22005 (Closed): Missing information about CVE on cve.org
I published https://github.com/ruby/zlib/security/advisories/GHSA-g857-hhfv-j68w yesterday.
After that, https://www.cve.org/CVERecord?id=CVE-2026-27820 is available now.
It seems that CVEs issued from GitHub are not published on cve.o...
hsbt (Hiroshi SHIBATA)
07:18 AM Bug #20409: Missing reporting some invalid breaks
Yes, it is OK to make it `SyntaxError`.
Matz.
matz (Yukihiro Matsumoto)
07:13 AM Revision 6c5f1225 (git): Generate sub-bullets for RubyGems and bundler
RubyGems and bundler were skipped outright in collect_gem_updates, so
NEWS.md never picked up the rubygems/rubygems releases shipped between
the X.Y.0 baseline and the in-development X.(Y+1).0.dev. Wire them
through resolve_repo (RubyGem...
hsbt (Hiroshi SHIBATA)
07:04 AM Revision 9d6deeba (git): Use the X.Y.0 release as the gem-version baseline
stdgems.org's "X.Y" key tracks the latest 4.0.x patch level, so once a
gem gets bumped in a Ruby patch release the diff baseline shifts forward
and history that should appear in NEWS.md for the next minor disappears.
Prefer the explicit ...
hsbt (Hiroshi SHIBATA)
07:00 AM Revision c45dddeb (git): Tidy up NEWS.md updater leftovers
* Drop the bundler- tag-prefix handling from fetch_release_range,
collect_gem_updates, and format_release_diff. collect_gem_updates skips
the bundler gem before any of these run, so the special-case prefix
stripping never had a cha...
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 17506269 (git): Extract sub-bullet formatting into format_release_diff
The " * 1.2.3 to [v1.2.4][gem-v1.2.4], ..." sub-bullet was assembled in
two places with the same expression. Pull it into a single helper so the
formatting and the bundler-prefix stripping live in one spot.
Co-Authored-By: Claude Opus ...
hsbt (Hiroshi SHIBATA)
06:51 AM Revision 28852145 (git): Read current gem versions from repo state instead of NEWS.md
The "to" side of the diff used to come from parsing NEWS.md, which made
this script depend on update-NEWS-gemlist.rb having already written the
right versions there. Read the authoritative sources directly: scan
{ext,lib}/**/*.gemspec fo...
hsbt (Hiroshi SHIBATA)
06:43 AM Revision fbe968e6 (git): Drop dead code from NEWS.md updater
* Remove the bundler branch in resolve_repo: collect_gem_updates skips
bundler before resolve_repo is ever consulted, so the mapping was
unreachable.
* Inline the gem_name_normalized ternary, which had the same value in both
arms.
...
hsbt (Hiroshi SHIBATA)
06:41 AM Revision 466f6755 (git): Handle network failures in NEWS.md updater
GitHub API failures (rate limit, transient 5xx, repo missing) used to abort
the whole script mid-run, leaving NEWS.md in a partially regenerated state.
Wrap the per-gem Octokit call so a single failure only skips that gem with
a stderr w...
hsbt (Hiroshi SHIBATA)
06:36 AM Revision 13df62bb (git): Clean up orphaned release-tag link refs in NEWS.md updater
When update-NEWS-gemlist.rb drops a bundled/default gem entry from NEWS.md
(because it no longer differs from the previous-release snapshot), the
matching `[gem-vX.Y.Z]: ...` link definitions were left behind by
update-NEWS-github-releas...
hsbt (Hiroshi SHIBATA)
06:00 AM Feature #21963: A solution to completely avoid allocated-but-uninitialized objects
Two comments on this proposal.
First, I am not fond of exposing this as a Ruby-level opt-in (Class#safe_initialization). The classes that actually benefit are C-implemented ones, where uninitialized state can cause segfaults. Pure Rub...
matz (Yukihiro Matsumoto)
04:58 AM Misc #21916: DevMeeting before RubyKaigi 2026
I asked Matz which topics we should talk in the meeting, and the summary is here: https://hackmd.io/6u5CqS2aS2yIvPTs08PHFg?both
Matz will arrive at the venue at 14:00, so please catch him if you want to talk with him.
(I'll be ther...
ko1 (Koichi Sasada)
04:38 AM Feature #21795: Methods for retrieving ASTs
Thanks for the analysis in #13, especially the finding about node_id fragility across Prism versions.
But I don't think the offset-based approach solves the real problem. It makes the identifier more robust, but the node returned is s...
matz (Yukihiro Matsumoto)
02:29 AM Misc #21948 (Closed): benchmark gem maintainer
Added write permission to you. hsbt (Hiroshi SHIBATA)
02:24 AM Revision cf91f202 (git): Bump taiki-e/install-action
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.75.15 to 2.75.16
- [Release notes](https://github.com/taiki-e...
dependabot[bot]

04/16/2026

11:03 PM Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Looking into this further, it looks like `gc_update_table_refs` is only used once internally, with the finalizer_table. It looks to me like it's used wrong there because the key (finalized object) is not pinned so can be moved, but the s... luke-gru (Luke Gruber)
09:50 PM Bug #21993: `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Nice catch! I think this would only be a problem if the key was a number that was also a valid pointer into the Ruby heap and it happened to point to a T_MOVED object. If it's another pointer from malloc or xmalloc it shouldn't be an iss... luke-gru (Luke Gruber)
09:32 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
Ruby 3.3 is security maitenance status now. I don't backport normal bug to Ruby 3.3. hsbt (Hiroshi SHIBATA)
05:05 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
@ko1 @hsbt Would it be possible to backport https://github.com/ruby/ruby/pull/15840 to Ruby 3.3, 3.4, and 4.0? We're seeing a significant regression after upgrading to Ruby 3.2 where this contention causes Sidekiq worker threads to silen... stanhu (Stan Hu)
07:24 PM Revision 9c682d3d (git): Set a default EnvUtil.timeout_scale for TruffleRuby to help avoid transient failures
Eregon (Benoit Daloze)
06:20 PM Misc #22006: Usage of deprecated input in gem sync workflows
> But this made me think that perhaps this mechanism should be a composite action or something similar? Then you don't need to update it in so many places (currently 47) when something changes.
I'm not sure what you're proposing. The ma...
k0kubun (Takashi Kokubun)
07:51 AM Misc #22006 (Closed): Usage of deprecated input in gem sync workflows
`create-github-app-token` deprecated `app-id` in favor of `client-id` in https://github.com/actions/create-github-app-token/releases/tag/v3.1.0.
Since it will probably be removed in the next major version, all workflow files need to b...
Earlopain (Earlopain _)
05:23 PM Bug #21999 (Third Party's Issue): Sometimes getting segfault and sometimes getting a "Floating point exception" when running some ractor code involving BigDecimal
Fixed in https://github.com/ruby/bigdecimal/pull/528 tompng (tomoya ishida)
07:49 AM Revision a5e5fec1 (git): Update default gems list at 23ea206a58d12d7d197271b30fd802 [ci skip]
git[bot]
07:48 AM Revision 23ea206a (git): Sync `syntax_suggest`
Contains https://github.com/ruby/syntax_suggest/commit/87ad865d394c15ddcec85b74d52d6dd77d590c4b and https://github.com/ruby/syntax_suggest/commit/707459562ee410cc7627ceaae1bc0b3874cb5a35 Earlopain (Earlopain _)
07:48 AM Revision 722c4efb (git): Fix branch name for `syntax_suggest` sync
Followup to https://github.com/ruby/ruby/pull/16674, I dropped this by accident Earlopain (Earlopain _)
07:14 AM Revision b6d0e56d (git): Update bundled gems list as of 2026-04-16
git[bot]
06:17 AM Revision 8ee25f73 (git): [ruby/rubygems] Add commented-out rubygems_mfa_required to bundle gem template
Package registries are active supply chain attack targets. Recent
high-profile incidents include the Axios NPM compromise
(https://socket.dev/blog/axios-npm-package-compromised) and the LiteLLM
PyPI compromise (https://docs.litellm.ai/bl...
matheusrich (Matheus Richard)
05:49 AM Revision d47f6248 (git): [ruby/json] Reduce warnings
```
../test/json/json_ryu_fallback_test.rb:177: warning: ambiguous first argument; put parentheses or a space even after `-` operator
../test/json/json_ryu_fallback_test.rb:178: warning: ambiguous first argument; put parentheses or a spa...
znz (Kazuhiro NISHIYAMA)
02:25 AM Revision ebb11093 (git): [DOC] Update bundled gems list at 1732ba6f94b6166e2cd232df901947
git[bot]
02:24 AM Revision 1732ba6f (git): Bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [github/codeql-action](https://github.com/github/codeql-action) and [taiki-e/install-action](https://github.com/taik... dependabot[bot]
01:58 AM Revision 8cc42fcf (git): [DOC] Fix wrong hash key in calling_methods.rdoc example
sato.kei
01:48 AM Misc #22005: Missing information about CVE on cve.org
We recently switched our CVE Numbering Authority from MITRE to GitHub, which may be causing this. Previously, MITRE would update cve.org records on their own after we published advisories on www.ruby-lang.org, but it seems GitHub may not... hsbt (Hiroshi SHIBATA)
01:45 AM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
Yes, that was me.
I disabled issues/PRs rather than archiving because archiving forces me to unarchive and re-archive every time I need to make config changes or emergency fixes. But I understand it makes past discussions inaccessible...
hsbt (Hiroshi SHIBATA)
01:22 AM Revision 9e5d1c37 (git): Skip Redmine link comment when the URL is already in the PR body
If the PR title or body already contains the full bugs.ruby-lang.org
URL for a referenced ticket, there is no need to post a redundant link
in a comment.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
01:20 AM Revision 1daa0eae (git): Fetch PR data once to avoid duplicate API calls
Extract the PR API call into the review method and pass it to
review_non_fork_branch and review_redmine_links so the same endpoint
is not fetched twice per run.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
01:20 AM Revision 8177af52 (git): Add Redmine ticket link comments to auto review PR
When a pull request title or body contains references like [Bug #22003],
[Feature #12345], or [Misc #67890], automatically post a comment with
links to the corresponding bugs.ruby-lang.org issues.
Co-Authored-By: Claude Opus 4.6 (1M con...
hsbt (Hiroshi SHIBATA)
12:32 AM Revision e6508f09 (git): [DOC] fix typos and improve clarity in build guide (#16753)
Co-authored-by: Bob Singh <bobsingh.dev@users.noreply.gitlab.com> Bob Singh

04/15/2026

10:01 PM Revision 429c4992 (git): ZJIT: Fix bindgen ordering for rb_flo_to_i
The zjit-bindgen CI check regenerates cruby_bindings.inc.rs from
headers and diffs against the committed file. Since rb_flo_to_i is
declared next to rb_float_plus/minus/mul/div in internal/numeric.h,
bindgen emits it there. Match that or...
khasinski (Chris Hasiński)
10:01 PM Revision 03f1b569 (git): ZJIT: Keep flo_to_i static, add rb_flo_to_i public wrapper
The previous commit exposed flo_to_i as a non-static global, which
tripped tool/leaked-globals because it lacks the rb_ prefix.
Keep flo_to_i static and add a new public wrapper rb_flo_to_i in
numeric.c that delegates to it. ZJIT now ca...
khasinski (Chris Hasiński)
10:01 PM Revision aaad9e0f (git): ZJIT: Move flo_to_i helper to zjit.c and use original flo_to_i
Address review feedback:
1. Move the helper from jit.c (shared YJIT/ZJIT glue) to zjit.c since
it is only used by ZJIT.
2. Instead of duplicating the truncation logic, export flo_to_i from
numeric.c and call it from the ZJIT helper...
khasinski (Chris Hasiński)
10:01 PM Revision 4cbb9d14 (git): ZJIT: Inline Float#to_i
Add FloatToInt HIR instruction that truncates a Flonum to Integer
via rb_jit_flo_to_i with GC preparation. The helper uses trunc()
for truncation toward zero, then returns Fixnum (LONG2FIX) or
Bignum (rb_dbl2big) depending on magnitude.
...
khasinski (Chris Hasiński)
10:01 PM Revision c25acd47 (git): ZJIT: Inline Float arithmetic (+, -, *, /)
Add FloatAdd, FloatSub, FloatMul, FloatDiv HIR instructions that
lower to gen_prepare_leaf_call_with_gc followed by a direct ccall to
rb_float_plus/minus/mul/div. This skips CCallWithFrame overhead
(frame push/pop, stack and locals spill...
khasinski (Chris Hasiński)
09:44 PM Revision 9eea01fc (git): [ruby/date] Exclude test causing transient timeouts on TruffleRuby
https://github.com/ruby/date/commit/840494d1ae Eregon (Benoit Daloze)
07:34 PM Revision 9d46b0c7 (git): ZJIT: Fix getlocal with level=0 reading stale EP data (#16736)
* ZJIT: Fix getlocal with level=0 reading stale EP data
YARVINSN_getlocal always loaded from EP memory, even for level=0
locals. But setlocal_WC_0 only updates the JIT's FrameState without
writing to EP. When the Ruby compiler emits get...
khasinski (Chris Hasiński)
04:45 PM Revision 658e6108 (git): Update default gems list at 44d8d828b3062e0c4591a83db8e556 [ci skip]
git[bot]
04:44 PM Revision 44d8d828 (git): [ruby/erb] Version 6.0.3
Sorry, I forgot to push the 6.0.2 bump https://github.com/ruby/erb/commit/8626c822ea8009008fb5884cfc949cbcafbe9680 to master.
The tag was branched off of https://github.com/ruby/erb/commit/3d4dc31905e978d46f1eeda7bacaa469ce543733.
To av...
k0kubun (Takashi Kokubun)
04:14 PM Bug #22003 (Closed): .bundle extensions not built when doing out-of-source build
Applied in changeset commit:git|c4b3630f5ec500b0d8699cffe214ada3161d0de8.
----------
[Bug #22003] Refactor template/configure-ext.mk.tmpl
- Select extension library directories by globbing extconf.rb.
- Exclude extensions for test befo...
nobu (Nobuyoshi Nakada)
11:04 AM Bug #22003 (Closed): .bundle extensions not built when doing out-of-source build
Hi, I encountered a pretty edge case extension build bug.
When building Ruby out-of-source and executing the configure script with a full path in a workspace that contains "test" in its name, it fails to build all the extensions in th...
Kulikjak (Jakub Kulik)
04:14 PM Revision c4b3630f (git): [Bug #22003] Refactor template/configure-ext.mk.tmpl
- Select extension library directories by globbing extconf.rb.
- Exclude extensions for test before uniquifing bundled gems.
- Use `Dir.glob` base option to remove prefixed srcdir.
nobu (Nobuyoshi Nakada)
04:13 PM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
@hsbt Please don't disable issues and pull requests like on https://github.com/ruby/set. It makes all the discussion and context that was done there inaccessible.
Why not archive like you said?
(I assume you made these changes. If ...
Earlopain (Earlopain _)
04:03 PM Revision 14b243b2 (git): Skip auto-request-review on Cargo.lock (#16743)
k0kubun (Takashi Kokubun)
03:31 PM Misc #22005 (Closed): Missing information about CVE on cve.org
The CVE-2026-27820 was fixed and disclosed more than one month ago:
https://www.ruby-lang.org/en/news/2026/03/05/buffer-overflow-zlib-cve-2026-27820/
However, there is still no public information on https://www.cve.org/CVERecord?id...
vo.x (Vit Ondruch)
02:54 PM Bug #22004 (Open): parse.y doesn't executes loop body with `while true || true` condition
```rb
while true || true
puts 1
end
```
This should never exit but with parse.y, the body is never executed. It seems to happen when one of the conditions is a truthy literal. Something similar happens with `unitl`:
```rb
un...
Earlopain (Earlopain _)
01:47 PM Bug #22002 (Closed): argument stack underflow (-1)
Applied in changeset commit:git|d077df24a2256d760cc534b242b28822d4ef6376.
----------
[Bug #22002] Never pop when compiling branch predicate
The value is always needed. Now prism emits the same instructions as parse.y for the added test...
Earlopain (Earlopain _)
11:55 AM Bug #22002: argument stack underflow (-1)
It's a prism-specific issue and there are a few other usages that cause a similar result that I found. I fixed those in https://github.com/ruby/ruby/pull/16750 Earlopain (Earlopain _)
04:51 AM Bug #22002: argument stack underflow (-1)
I can repro on both 3.4 and 4.0.
byroot (Jean Boussier)
12:47 AM Bug #22002 (Closed): argument stack underflow (-1)
The following lines of code:
```ruby
sleep(0.1) until defined?(@variable)
@variable
```
produce this error:
```
home@My-Air testing % bundle exec ruby test.rb
-- raw disasm--------
trace: 1
0000 jump ...
Anonymous
01:47 PM Revision d077df24 (git): [Bug #22002] Never pop when compiling branch predicate
The value is always needed. Now prism emits the same instructions as parse.y for the added test case.
`defined?`/`flip-flop` caused `argument stack underflow`, `and`/`or` segfaulted during runtime.
Earlopain (Earlopain _)
01:21 PM Bug #21999: Sometimes getting segfault and sometimes getting a "Floating point exception" when running some ractor code involving BigDecimal
Shorter reproduction code:
~~~ruby
require 'bigdecimal'
4.times.map do
Ractor.new do
loop { raise unless BigDecimal(3.14) }
end
end
sleep 1
GC.start
~~~
I guess this is a bug of BigDecimal's float parsing logic. If the...
tompng (tomoya ishida)
09:51 AM Revision 1bdce358 (git): iseq.c: rb_estimate_iv_count handle no superclass
[Bug #21992]
When redefining `BasicObject#initialize` there's no super class to
access.
byroot (Jean Boussier)
09:38 AM Revision 75387fd3 (git): [ruby/rubygems] Fix Style/HashSyntax offenses in definition_spec.rb
https://github.com/ruby/rubygems/commit/97d05b3fc5
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
09:38 AM Revision 1bc44ad4 (git): [ruby/rubygems] Remove extra guard conditions to preserve existing behavior
The original PR added @remote and aggregate_global_source? checks to
precompute_source_requirements_for_indirect_dependencies?, but these
conditions did not exist in the current codebase and would change the
method's behavior in cases wh...
hsbt (Hiroshi SHIBATA)
09:38 AM Revision 945c6ec3 (git): [ruby/rubygems] Print a warning for a potential confusion from the indirect dependencies.
Print a warning when a confusion by the indirect dependencies may happen.
See CVE-2020-36327 for the security risk.
https://github.com/ruby/rubygems/commit/403d6744b2
Jun Aruga
07:13 AM Revision e14897a0 (git): Update bundled gems list as of 2026-04-15
git[bot]
06:38 AM Revision 84f76922 (git): [ruby/json] Fix parsing of *negative* out of bound floats.
https://github.com/ruby/json/commit/1072482184 byroot (Jean Boussier)
06:21 AM Revision 5b4d95b8 (git): [ruby/json] Fix handling out of of range exponent in numbers
Fix: https://github.com/ruby/json/issues/970
If the parsed exponent overflows a `int32_t` passing it
to ryu is incorrect.
We could pass it to `rb_cstr_to_dbl` but then Ruby will emit
an annoying warning, instead we can coerce to `0.0` ...
byroot (Jean Boussier)
02:41 AM Revision b21043f8 (git): Constify pack functions
nobu (Nobuyoshi Nakada)
02:24 AM Revision 40189f8f (git): Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `lewagon...
dependabot[bot]

04/14/2026

10:33 PM Misc #22000: Requesting to be a co-maintainer of ostruct
Eregon (Benoit Daloze) wrote:
> There are compatibility concern so this requires evaluating carefully what OpenStruct subclasses do and
> ...
Agreed it would require bumping a major version. Ideally this would encompass all existing re...
marcandre (Marc-Andre Lafortune)
09:03 PM Misc #22000 (Open): Requesting to be a co-maintainer of ostruct
I would like to become a co-maintainer of the `ostruct` gem (OpenStruct class).
I know currently @marcandre is the maintainer of `ostruct` but he seems less active recently (e.g. [open PRs](https://github.com/ruby/ostruct/pulls)) and ...
Eregon (Benoit Daloze)
10:21 PM Bug #21990 (Rejected): [ruby-talk:444791] Regression: Ruby 4.0 constantly crashing
Closing... I suspect this report is bogus. There doesn't seem to be any registration problems and @byroot pointed out that the C stack looks bogus. zenspider (Ryan Davis)
09:42 PM Bug #21999: Sometimes getting segfault and sometimes getting a "Floating point exception" when running some ractor code involving BigDecimal
I also tried this with 4.1-dev and it had the same behavior: ruby 4.1.0dev (2026-04-14T21:04:52Z master edb95b13a3) +PRISM [x86_64-linux] miles-georgi (Miles Georgi)
08:43 PM Bug #21999 (Third Party's Issue): Sometimes getting segfault and sometimes getting a "Floating point exception" when running some ractor code involving BigDecimal
Hey hey!
I don't know if this might be a duplicate of https://bugs.ruby-lang.org/issues/21992 as the code involves two subclasses of BasicObject that have #initialize methods defined. Apologies if a dup of that! I'm not sure how best ...
miles-georgi (Miles Georgi)
09:21 PM Misc #22001 (Open): Adding TruffleRuby in the CI of all default & bundled gems
I would like to add TruffleRuby (i.e. `ruby-version: truffleruby`, the latest release for improved stability) in the CI of all default & bundled gems.
I'm tracking the progress in https://github.com/truffleruby/truffleruby/issues/2644.
...
Eregon (Benoit Daloze)
09:04 PM Revision edb95b13 (git): ZJIT: Add HIR tests and benchmarks for numeric predicate annotations
Add snapshot tests verifying correct HIR generation for each annotated
method:
- Float cfuncs (nan?, finite?, infinite?) emit CCall with BoolExact
or Fixnum|NilClass return type
- Integer builtins (zero?, even?, odd?) emit InvokeBuilti...
khasinski (Chris Hasiński)
09:04 PM Revision 54527e24 (git): ZJIT: Update const_send_direct_integer snapshot
Reflects the BoolExact return type now inferred for Integer#zero?
after the annotation added in the previous commit.
khasinski (Chris Hasiński)
09:04 PM Revision 94a8feaa (git): ZJIT: Annotate Float and Integer predicates
Adds method annotations so ZJIT can emit the fast CCall path for
pure Float cfunc predicates and propagate return types for numeric
builtin predicates.
Float cfuncs (leaf, no_gc, elidable):
nan?, finite? BoolExact
infinite? ...
khasinski (Chris Hasiński)
08:48 PM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
Thank you for checking those, I have removed them.
How did you find out these gems have active maintainers?
I couldn't see them listed at https://github.com/ruby/ruby/blob/master/doc/maintainers.md (or at https://github.com/ruby/ruby...
Eregon (Benoit Daloze)
10:29 AM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
The following libraries have active maintainers. You should remove them from your list.
* https://github.com/ruby/curses
* https://github.com/ruby/net-ftp
* https://github.com/ruby/iconv
* https://github.com/ruby/syck
* https://gi...
hsbt (Hiroshi SHIBATA)
08:36 PM Feature #21963: A solution to completely avoid allocated-but-uninitialized objects
Eregon (Benoit Daloze) wrote in #note-8:
> So maybe the new allocator function should be like:
> ...
I'm thinking a more explicit name would be good, as `rb_copy_alloc_func_t` might sound like it's only for copying.
So how about `rb...
Eregon (Benoit Daloze)
08:26 PM Feature #21998 (Open): Add {Method,UnboundMethod,Proc}#source_range
I'm using matz's suggestion almost as-is from https://bugs.ruby-lang.org/issues/6012#note-53.
The only change is the proposed class name.
## Use Cases
Use cases have been discussed extensively and matz said:
> The use cases are r...
Eregon (Benoit Daloze)
08:00 PM Feature #21795: Methods for retrieving ASTs
@mame What do you think about my idea to use start line/column + end line/column (or equivalently, start & end offsets)?
AFAIK it solves all problems around this area, it's reliable, works across Prism versions, etc.
We could even use ...
Eregon (Benoit Daloze)
09:16 AM Feature #21795: Methods for retrieving ASTs
> Concretely, this means either integrating the Prism repository into ruby/ruby
I don't think that would be a very good solution, prism is not only the parser as used by CRuby. It has bindings to other languages (rust, javascript, jav...
Earlopain (Earlopain _)
06:12 AM Feature #21795: Methods for retrieving ASTs
matz (Yukihiro Matsumoto) wrote in #note-11:
> I'm not sure ast is the right name. The nodes returned by Prism retain concrete information such as positions, whitespace, and comments, making them closer to a Concrete Syntax Tree than ...
baweaver (Brandon Weaver)
05:48 AM Feature #21795: Methods for retrieving ASTs
As matz pointed out in #note-11, the ABI versioning approach would leave master in a routinely broken state. As a maintainer of error_highlight, I cannot accept this. Not being able to verify error_highlight's behavior against code using... mame (Yusuke Endoh)
05:34 PM Revision 3dc20120 (git): iseq.c: rb_estimate_iv_count handle no superclass
[Bug #21992]
When redefining `BasicObject#initialize` there's no super class to
access.
byroot (Jean Boussier)
05:22 PM Bug #21994: If there is a local variable `foo`, calls to a method `foo` with a regexp literal as first argument is always a SyntaxError without parentheses
> I think checking code validness is hard
I agree, since this check happens during lexical analysis, rather than parsing. It is a bit mind-boggling to me that lexical analysis depends on local variable scope, but it's what it is.
I ten...
jneen (Jeanine Adkisson)
02:52 PM Bug #21994: If there is a local variable `foo`, calls to a method `foo` with a regexp literal as first argument is always a SyntaxError without parentheses
I think checking code validness is hard for the code below.
Warning check is triggered at every line, each check needs to parse till the bottom.
~~~ruby
a -1 => b # only a(-1 => b) is valid, (a - 1) => b is invalid at the `2 => 3` pos...
tompng (tomoya ishida)
02:42 PM Revision 93f1010f (git): Packing the buffer into itself is not possible
Reported at https://hackerone.com/reports/3601645. nobu (Nobuyoshi Nakada)
01:54 PM Feature #20205: Enable `frozen_string_literal` by default
@byroot, thank you, that's exactly what I needed.
@palkan, I think it's probably not needed, at least not in Ruby core. My project has 460 gems (counting nested deps), and in order to get my ~50,000 CI test cases 100% passing I only h...
johnnyshields (Johnny Shields)
01:26 PM Revision f7a799af (git): [ruby/prism] Implement bracket/braces events for ripper
Drops the check against order. Very often ripper emits events in a order
that is not easy to mimic. It's only getting worse now that most events are implemented.
Perhaps the test can be brought back at a later time. For now, I used it w...
Earlopain (Earlopain _)
01:08 PM Revision 51d9e924 (git): [ruby/rubygems] Update spec_set to use lookup
https://github.com/ruby/rubygems/commit/3a90d24e42 Harriet Oughton
12:25 PM Revision 0280c61f (git): Convert K&R function definitions in configure.ac
jhawthorn (John Hawthorn)
12:23 PM Revision ace687e2 (git): [DOC] Doc for file-system timestamps (#16722)
burdettelamar (Burdette Lamar)
07:49 AM Misc #21968 (Closed): The pathname gem needs a new release
https://github.com/ruby/pathname/releases/tag/v0.5.0 hsbt (Hiroshi SHIBATA)
06:18 AM Revision 4f26d806 (git): [ruby/digest] Fix Digest::SHA1#update with large input
Digest::SHA1#update fails when a very large String is passed in a
single call.
Passing 2**29 bytes (512 MB) or more at once does not update the
message length counter correctly, which results in producing an
incorrect output.
$ rub...
rhenium (Kazuki Yamaguchi)
05:44 AM Revision 921e1f37 (git): ruby/ruby-bench#508 merged
nobu (Nobuyoshi Nakada)
03:47 AM Misc #21975 (Rejected): Add "UTF-八" as an alias for UTF-8 encoding
While I appreciate the proposal, I must reject it for two reasons:
First, on consistency: the vertical writing is allowed only inside string arguments, while the rest of Ruby code remains horizontal. This is inconsistent.
Second, o...
ima1zumi (Mari Imaizumi)
02:25 AM Revision e31f62af (git): Bump the github-actions group across 2 directories with 4 updates
Bumps the github-actions group with 4 updates in the / directory: [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action), [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain... dependabot[bot]
01:23 AM Revision d05f799e (git): Bump rand from 0.10.0 to 0.10.1 in /zjit
Bumps [rand](https://github.com/rust-random/rand) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://gith...
dependabot[bot]
01:22 AM Revision 08792f83 (git): Bump rand from 0.10.0 to 0.10.1 in the cargo group across 1 directory
Bumps the cargo group with 1 update in the / directory: [rand](https://github.com/rust-random/rand).
Updates `rand` from 0.10.0 to 0.10.1
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/...
dependabot[bot]

04/13/2026

11:49 PM Revision ee90e8e3 (git): Concurrent set fix when encountering garbage obj in find_or_insert
When CASing the garbage key to EMPTY, if we succeed we should decrease
set->size because we're trying to re-insert into the same slot right after.
The insertion increases set->size if it succeeds. This issue can lead to
set->size being o...
Luke Gruber
11:03 PM Bug #21997 (Closed): segfault in basicobject
jhawthorn (John Hawthorn)
06:38 PM Bug #21997: segfault in basicobject
sorry, i think this is a duplicate #21992 danielchong (Daniel Chong)
06:37 PM Bug #21997 (Closed): segfault in basicobject
./ruby script.rb
```
[0, 1, -1, 10000000000000000000000, -10000000000000000000000].each do |val|
begin
class BasicObject
def initialize(v); @v = v; end
def to_s; @v.to_s; end
end
obj = BasicObject.new(...
danielchong (Daniel Chong)
04:52 PM Bug #21996 (Open): Crash when modifying instance variables during inspect or Marshal dump
In #15968 describes an issue where instance variables being modified lead to incorrect Marshal output being generated, which was partially solved by checking for the number of IVs changing and raising an exception. However, if enough IVs... jhawthorn (John Hawthorn)
04:39 PM Feature #20205: Enable `frozen_string_literal` by default
I wonder if having something like [freezolite](https://github.com/ruby-next/freezolite) but doing the opposite (disable frozen string literals for specific folders) could help to increase the adoption of the “freeze all literals” mode (`... palkan (Vladimir Dementyev)
03:46 PM Revision ab324956 (git): Avoid array resize in rb_obj_instance_variables
We know (an estimate of) the ivar count upfront (+/- hidden internal
fields), from the shape, so we should reserve the expected length
upfront.
jhawthorn (John Hawthorn)
03:46 PM Revision 3a90afd1 (git): Avoid atomic exchange in rb_free_tmp_buffer
Usually RB_ALLOCV_N uses alloca for small allocations, and in that case
the value is 0, and we should not need to atomic exchange it back to 0.
I'm actually not sure why we need atomic operations here anyways.
jhawthorn (John Hawthorn)
03:43 PM Bug #21994: If there is a local variable `foo`, calls to a method `foo` with a regexp literal as first argument is always a SyntaxError without parentheses
I know very little about parser, so perhaps what I'm about to suggest is entirely impossible, but could we refine that warning as to only trigger it if the other interpretation would be valid syntax?
e.g.:
- `p -1`
- Both `p(-1)...
byroot (Jean Boussier)
03:00 PM Bug #21994: If there is a local variable `foo`, calls to a method `foo` with a regexp literal as first argument is always a SyntaxError without parentheses
I should say that I think the *worst* solution to this would be to warn in both cases. It would effectively require us to rewrite our DSL across every rule for every language we support. My ideal world is one where we could go back to us... jneen (Jeanine Adkisson)
04:16 AM Bug #21994 (Open): If there is a local variable `foo`, calls to a method `foo` with a regexp literal as first argument is always a SyntaxError without parentheses
## Quick version:
```bash
ruby -e 'p /hello/' # => /hello/ (warning)
ruby -e 'p = 1; p /hello/' # syntax error
ruby -e 'p %r/hello/' # => /hello/ (no warning)
ruby -e 'p = 1; p %r/hello/' # syntax error
```
## Context
In Roug...
jneen (Jeanine Adkisson)
09:24 AM Bug #21995: mkmf generates a non-deterministic log file
I created a [pull request](https://github.com/ruby/ruby/pull/16734) about this. gemmaro (Gemma Kosaka)
09:18 AM Bug #21995 (Open): mkmf generates a non-deterministic log file
Hello,
When compiling Ruby's C extensions with mkmf, it can generate a `mkmf.log` file with non-deterministic content, especially at the line below:
```txt
ld: /tmp/rubytest.h8pay9/cc3fbuGm.o: in function `t':
^^^^^^^^^^^^^^^...
gemmaro (Gemma Kosaka)
05:14 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
That was my expectation as well, but what I observed was that it does in fact seem to preserve warning behaviour for all of the other cases discussed here, as noted both here and in the pull request description. I would definitely feel s... jneen (Jeanine Adkisson)
05:06 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
I think you mean [k-takata/Onigmo#175](https://github.com/k-takata/Onigmo/pull/175).
This PR looks to remove **all** warnings for character class overlapping, not only Unicode properties.
nobu (Nobuyoshi Nakada)
04:30 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
As a point of order - I opened a pull request against Onigmo, should that have been to Ruby instead? I'm happy to do either or both. It is a fairly simple fix, but there are some tests in Ruby main that would need to change to reflect th... jneen (Jeanine Adkisson)
02:32 AM Revision 1ffe16ce (git): Bump the github-actions group across 2 directories with 4 updates
Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [taiki-e/install-action](https://github.co... dependabot[bot]

04/12/2026

02:40 PM Bug #21992: Defining BasicObject#initialize causes segmentation fault
> 3.2: REQUIRED, 3.3: REQUIRED, 3.4: REQUIRED, 4.0: REQUIRED
I don't know if this bug actually qualify for 3.3 (and more so 3.2) backport, but in doubt I made the PRs:
- 4.0: https://github.com/ruby/ruby/pull/16726
- 3.4: http...
byroot (Jean Boussier)
02:25 PM Bug #21992 (Closed): Defining BasicObject#initialize causes segmentation fault
Applied in changeset commit:git|6593cc52d6153c5535968a8faff6cf4ac83a11fe.
----------
iseq.c: rb_estimate_iv_count handle no superclass
[Bug #21992]
When redefining `BasicObject#initialize` there's no super class to
access.
byroot (Jean Boussier)
01:15 PM Bug #21992: Defining BasicObject#initialize causes segmentation fault
The fix is pretty trivial: https://github.com/ruby/ruby/pull/16725
Not the first time we fail to handle the fact that `RClass.superclass` may be `Qnil`, e.g. [Bug #21694]
byroot (Jean Boussier)
11:35 AM Bug #21992: Defining BasicObject#initialize causes segmentation fault
nobu (Nobuyoshi Nakada) wrote in #note-1:
> `BasicObject#initialize` is not defined, so "redefining" may be questionable.
It seems it is defined:
```
$ ruby -ve 'p Class.new.instance_method :initialize'
ruby 3.4.9 (2026-03-11 rev...
Eregon (Benoit Daloze)
04:52 AM Bug #21992: Defining BasicObject#initialize causes segmentation fault
petercooper (Peter Cooper) wrote:
> In Ruby HEAD, 4.0.2, 3.4.7, and 3.3.11 on macOS, this leads to an immediate segmentation fault. I also got this on Ruby 3.4.1 on Linux.
It looks like since 3.2 (commit:9c5e3671ebd9c07c178ca5dac08ad...
nobu (Nobuyoshi Nakada)
02:25 PM Revision 6593cc52 (git): iseq.c: rb_estimate_iv_count handle no superclass
[Bug #21992]
When redefining `BasicObject#initialize` there's no super class to
access.
byroot (Jean Boussier)
12:59 PM Revision 8e96d6f7 (git): rb_gc_obj_optimal_size: don't enlarge small AR table hashes
Ref: https://github.com/ruby/ruby/pull/16653
Frozen hashes backed by AR tables can be smaller than 160B.
byroot (Jean Boussier)
07:58 AM Revision d0ef5d13 (git): Update ruby-bench to update stackprof
nobu (Nobuyoshi Nakada)
07:51 AM Revision b66b5008 (git): Remove postponed job APIs deprecated for 2 years
nobu (Nobuyoshi Nakada)
02:47 AM Revision 4affbf79 (git): Fixed the error message for `ibf_load_builtin`
`ibf_load_ptr` returns a pointer to the loaded data without a NUL
terminator. Like as the debug output above, the length of the loaded
data must explicitly specified.
nobu (Nobuyoshi Nakada)

04/11/2026

09:43 PM Revision bf008f07 (git): [ruby/rubygems] Clarify the name and meaning of the first argument
to `gem spec`
(https://github.com/ruby/rubygems/pull/9476)
* GEMFILE sound like Bundler Gemfile but this is unrelated.
https://github.com/ruby/rubygems/commit/3e3addb8d2
Eregon (Benoit Daloze)
05:48 PM Bug #21933 (Closed): Ruby::Box: named capture local variable can become nil after non-matching lines
tagomoris (Satoshi Tagomori)
05:47 PM Revision 8ad6baa0 (git): Use box_ready for $&, $`, $\', $+
These variables have rb_gvar_readonly_setter, so box_ready is sufficient.
Only $~ needs box_dynamic due to its custom match_setter.
afurm (Andrii Furmanets)
05:47 PM Revision 526344b5 (git): Fix Box regexp match vars after non-match
afurm (Andrii Furmanets)
02:56 PM Bug #21993 (Open): `rb_gc_update_tbl_refs` is incorrectly documented as the dcompact pair for `rb_mark_tbl_no_pin`, and is unsafe for `st_table`s with non-VALUE keys
Hey!
I work for Datadog on the [Ruby profiler](https://github.com/datadog/dd-trace-rb) and I've been exploring the TypedData GC API to understand the correct patterns for writing compaction-aware extensions.
While reading through t...
ivoanjo (Ivo Anjo)
01:27 PM Bug #21992 (Closed): Defining BasicObject#initialize causes segmentation fault
Simplest reproduction:
``` ruby
class BasicObject
def initialize
end
end
```
In Ruby HEAD, 4.0.2, 3.4.7, and 3.3.11 on macOS, this leads to an immediate segmentation fault. I also got this on Ruby 3.4.1 on Linux.
What I...
petercooper (Peter Cooper)
12:02 PM Revision f70c081b (git): Always allocate CDHASH in 80B slots
Up to size 8, `rb_hash_new_with_size()` will allocate a 160B
slot to fit a full `ar_table`.
But in the case of CDHASH, we immediately assign a custom hash
type, which trigger the conversion into an `st_table`, potentially
wasting 80B.
byroot (Jean Boussier)
06:14 AM Bug #21990: [ruby-talk:444791] Regression: Ruby 4.0 constantly crashing
The C backtrace in the crash report seem bogus. Almost none of it make sense. Most of the functions on the stack can't possibly call each others.
Using `gdb` or `lldb` to produce a backtrace from a core dump might help.
byroot (Jean Boussier)
05:57 AM Bug #21952 (Closed): Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
Applied in changeset commit:git|c0d86a0103de7130943d54b4a290b76ec7e0c135.
----------
class.c: rb_class_duplicate_classext also dup content of cvc_tbl
[Bug #21952]
Shallow copying the table result in the same memory being shared
betwee...
byroot (Jean Boussier)
04:13 AM Bug #21952: Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
As I commented, https://github.com/ruby/ruby/pull/16595 looks good to me. tagomoris (Satoshi Tagomori)
05:57 AM Revision c0d86a01 (git): class.c: rb_class_duplicate_classext also dup content of cvc_tbl
[Bug #21952]
Shallow copying the table result in the same memory being shared
between multiple box, causing double free when one of the box
is garbage collected.
byroot (Jean Boussier)
 

Also available in: Atom