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`?
... -
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... -
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... -
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 ... -
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... -
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
-
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)...
-
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... -
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... -
07:34 AM Revision 509b0e4d (git): Fixed the wrong dev version of strscan
-
07:32 AM Revision 88f18fde (git): Update with the correct versions from Ruby 4.0.0 release
-
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
-
07:08 AM Misc #22005: Missing information about CVE on cve.org
- Thanks. I appreciate that 🙏
-
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... -
07:18 AM Bug #20409: Missing reporting some invalid breaks
- Yes, it is OK to make it `SyntaxError`.
Matz.
-
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... -
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 ... -
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... -
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 ... -
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... -
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.
... -
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... -
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... -
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... -
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... -
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... -
02:29 AM Misc #21948 (Closed): benchmark gem maintainer
- Added write permission to you.
- 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...
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...
-
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...
-
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.
-
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...
-
07:24 PM Revision 9c682d3d (git): Set a default EnvUtil.timeout_scale for TruffleRuby to help avoid transient failures
-
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... -
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... -
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
- 07:49 AM Revision a5e5fec1 (git): Update default gems list at 23ea206a58d12d7d197271b30fd802 [ci skip]
-
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
-
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
- 07:14 AM Revision b6d0e56d (git): Update bundled gems list as of 2026-04-16
-
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... -
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... - 02:25 AM Revision ebb11093 (git): [DOC] Update bundled gems list at 1732ba6f94b6166e2cd232df901947
- 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...
- 01:58 AM Revision 8cc42fcf (git): [DOC] Fix wrong hash key in calling_methods.rdoc example
-
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...
-
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... -
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> -
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> -
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... - 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>
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... -
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... -
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... -
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.
... -
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... -
09:44 PM Revision 9eea01fc (git): [ruby/date] Exclude test causing transient timeouts on TruffleRuby
- https://github.com/ruby/date/commit/840494d1ae
-
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... - 04:45 PM Revision 658e6108 (git): Update default gems list at 44d8d828b3062e0c4591a83db8e556 [ci skip]
-
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... -
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... -
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... -
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. -
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 ... -
04:03 PM Revision 14b243b2 (git): Skip auto-request-review on Cargo.lock (#16743)
-
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... -
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... -
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... -
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
-
04:51 AM Bug #22002: argument stack underflow (-1)
- I can repro on both 3.4 and 4.0.
-
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 ... -
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. -
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... -
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. -
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> -
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... - 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 - 07:13 AM Revision e14897a0 (git): Update bundled gems list as of 2026-04-15
-
06:38 AM Revision 84f76922 (git): [ruby/json] Fix parsing of *negative* out of bound floats.
- https://github.com/ruby/json/commit/1072482184
-
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` ... -
02:41 AM Revision b21043f8 (git): Constify pack functions
- 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...
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... -
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 ... -
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.
-
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]
-
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 ... -
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.
... -
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... -
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. -
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? ... -
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... -
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... -
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... -
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... -
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 ... -
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... -
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 ... -
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...
-
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. -
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... -
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... -
02:42 PM Revision 93f1010f (git): Packing the buffer into itself is not possible
- Reported at https://hackerone.com/reports/3601645.
-
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... -
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... - 01:08 PM Revision 51d9e924 (git): [ruby/rubygems] Update spec_set to use lookup
- https://github.com/ruby/rubygems/commit/3a90d24e42
-
12:25 PM Revision 0280c61f (git): Convert K&R function definitions in configure.ac
-
12:23 PM Revision ace687e2 (git): [DOC] Doc for file-system timestamps (#16722)
-
07:49 AM Misc #21968 (Closed): The pathname gem needs a new release
- https://github.com/ruby/pathname/releases/tag/v0.5.0
-
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... -
05:44 AM Revision 921e1f37 (git): ruby/ruby-bench#508 merged
-
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... - 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...
- 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... - 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/...
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... -
11:03 PM Bug #21997 (Closed): segfault in basicobject
-
06:38 PM Bug #21997: segfault in basicobject
- sorry, i think this is a duplicate #21992
-
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(... -
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...
-
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 (`...
-
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. -
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. -
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)... -
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...
-
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... -
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.
-
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':
^^^^^^^^^^^^^^^... -
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...
-
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. -
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...
- 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...
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... -
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. -
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] -
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... -
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... -
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. -
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. -
07:58 AM Revision d0ef5d13 (git): Update ruby-bench to update stackprof
-
07:51 AM Revision b66b5008 (git): Remove postponed job APIs deprecated for 2 years
-
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.
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 -
05:48 PM Bug #21933 (Closed): Ruby::Box: named capture local variable can become nil after non-matching lines
-
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. -
05:47 PM Revision 526344b5 (git): Fix Box regexp match vars after non-match
-
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... -
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... -
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. -
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.
-
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... -
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.
-
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.