Activity
From 04/15/2026 to 04/21/2026
Today
-
02:01 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
- I discussed this in detail with @mame and @matz.
@mame (to reply here too) what I meant is using Prism with the `Method|UnboundMethod|Proc` and the `source_range` to find the Prism node, and then compute the max end offset by walking th... -
01:54 PM Feature #21795: Methods for retrieving ASTs
- I discussed this in detail with @mame and @matz.
One observation from me is the addition of `Ruby::Node` (which duplicates a very large part of the Prism Ruby API, >100 classes) is mostly motivated from using `node_id`, because reusin... -
01:42 PM Feature #21962: Add deep_freeze for recursive freezing
- At the meeting @matz said he was positive that `deep_freeze` is "freeze but recursively".
More precisely:
* `String.deep_freeze` => freezes `String` like `String.freeze` but not anything further like `Object` or so.
(This might unex... -
01:11 PM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
- I'll be happy to help as part of the Legacy Gems Maintenance Team.
-
01:09 PM Misc #22001: Adding TruffleRuby in the CI of all default & bundled gems
- As discussed in person today, let's see if we can configure TruffleRuby runs in a separate yml file so we can [disable the workflow](https://docs.github.com/en/actions/how-tos/manage-workflow-runs/disable-and-enable-workflows) when it fa...
-
08:10 AM Revision cb26283b (git): [ruby/erb] Version 6.0.1.1
-
08:10 AM Revision c35379df (git): [ruby/erb] Prohibit def_method on marshal-loaded ERB instances
- Extends the @_init guard to def_method so that an ERB object created
via Marshal.load (which bypasses initialize) raises ArgumentError
instead of evaluating arbitrary source. def_module and def_class both
delegate to def_method and are c... -
07:49 AM Bug #22010 (Open): Update to Unicode 18.0
- Unicode 18.0 has been in alpha since February 2026, which closed on March 31. Beta review is scheduled to start in May.
- 07:40 AM Revision 36a22e04 (git): Update default gems list at 8b77fda2aefd88031aabc23e332f27 [ci skip]
-
07:39 AM Revision 8b77fda2 (git): [ruby/erb] Version 6.0.4
- https://github.com/ruby/erb/commit/4d2b45e140
-
07:38 AM Revision d1589536 (git): [ruby/erb] Prohibit def_method on marshal-loaded ERB instances
- Extends the @_init guard to def_method so that an ERB object created
via Marshal.load (which bypasses initialize) raises ArgumentError
instead of evaluating arbitrary source. def_module and def_class both
delegate to def_method and are c... -
07:30 AM Revision 47e06127 (git): class.c: Make cvc_tbl a managed object
- [Bug #21952]
Solves the double-free or use after-free concern with boxes.
Now entries can safely be used for copy-on-write.
Also is likely necessary to make it save to read cvar from
secondary ractors, as allowed since: ab32c0e690b805c... - 07:16 AM Revision 5658d5f0 (git): Update bundled gems list as of 2026-04-21
-
07:02 AM Bug #22009: ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: with ASAN and DEBUG enabled build
- With Claude Code help, It only reproduces with both ASAN and DEBUG options enabled. But not sure if this is the right fix though.
https://github.com/ruby/ruby/commit/e47063e5bc52929924b633cffed33fc9132030c4 -
07:00 AM Bug #22009: ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: with ASAN and DEBUG enabled build
- Here is the entire log generated by `make test-spec MSPECOPT="spec/ruby/library/objectspace/dump_all_spec.rb" 2>&1 | tee error.log`
-
06:58 AM Bug #22009 (Open): ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: with ASAN and DEBUG enabled build
- ### Background
I am using ruby-head built and deployed by https://github.com/ruby/ruby-dev-builder for my repository.
https://github.com/rsim/oracle-enhanced/blob/master/.github/workflows/ruby_head.yml
Recently, the `ruby-head` ve... -
03:18 AM Feature #22008 (Open): RUBY_INTERNAL_EVENT_NEWOBJ should run earlier, with fully uninitialized object
- `RUBY_INTERNAL_EVENT_NEWOBJ` is an internal tracepoint event, accessible only to C. I'd consider it an unstable semi-private API, really intended to be used by only ObjectSpace. The documentation states:
* in internal events, **you can ... - 02:23 AM Revision 9dd446f1 (git): Bump dependabot/fetch-metadata
- Bumps the github-actions group with 1 update in the / directory: [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata).
Updates `dependabot/fetch-metadata` from 3.0.0 to 3.1.0
- [Release notes](https://github.com/de...
04/20/2026
-
08:40 PM Revision c92f8b03 (git): wasm: Define `jit_exec` only if any JIT is enabled
- ```
../src/vm.c:566:1: warning: unused function 'jit_exec' [-Wunused-function]
566 | jit_exec(rb_execution_context_t *ec)
| ^~~~~~~~
``` -
12:56 PM Revision c568944b (git): [ruby/json] Force ensure_valid_encoding to be inlined.
- And move the encoding convertion logic in another function with NOINLINE.
The overwelming majority of strings are correctly encoded, so we
want to inline the very cheap check, however we don't want to
inline the much larger piece of cod... - 10:31 AM Revision 1dcb7acb (git): [ruby/openssl] x509store, ssl: check for error of CRYPTO_set_ex_data()
- This can technically fail because it internally performs allocations.
Also confirmed by the man page [1].
[1] (among other functions on this page) https://docs.openssl.org/3.5/man3/BIO_get_ex_new_index
https://github.com/ruby/openssl/c... - 10:04 AM Revision b4c8c8a6 (git): [ruby/openssl] pkcs7: fix error check of PKCS7_RECIP_INFO_set()
- This function actually returns a value <=0 on error, but it is not
documented as such.
Example from OpenSSL code [1] and implementation [2] indicate as such.
[1] https://github.com/openssl/openssl/blob/4b8ddae690d6449005e474bfdfe73106d4... - 09:55 AM Revision 83b7a4d9 (git): [ruby/openssl] x509cert: check for error of X509_set_serialNumber()
- This function may return 0 on error [1].
[1] https://manpages.debian.org/stretch/libssl-doc/X509_set_serialNumber.3ssl.en.html
https://github.com/ruby/openssl/commit/c6caa4f1c1 - 09:44 AM Revision 359f671f (git): [ruby/openssl] x509name: check for error of X509_NAME_cmp()
- These functions may return -2 to indicate an error according to the
manual [1]. This can also be confirmed when looking at the code as it
may call into i2d_X509_NAME() which can fail [2].
In such cases, the failure is reinterpreted as a ... - 07:26 AM Revision cf25b0bd (git): [DOC] Update bundled gems list at 35e7f2c2f4840de027e5ebb6e7a5f9
- 02:31 AM Revision 35e7f2c2 (git): Bump the github-actions group across 1 directory with 2 updates
- Bumps the github-actions group with 2 updates in the / directory: [msys2/setup-msys2](https://github.com/msys2/setup-msys2) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `msys2/setup-msys2` from 2.31.... -
02:09 AM Revision f45bb9ba (git): Force binary encoding before matching in source_encoding_spec
- After the syntax_suggest sync at 23ea206a58d, raw source bytes leak
into SyntaxError output, which breaks the regex match on CI machines
running under LC_ALL=C where ruby_exe returns a US-ASCII string.
https://rubyci.s3.amazonaws.com/de... -
01:15 AM Revision 6e9ad14d (git): Make NEWS.md release-link footer idempotent
- Seed available_footnotes from the existing release-tag link defs in the
file before overlaying freshly fetched URLs, so gems whose Octokit
fetches are skipped this run keep their URLs instead of being stranded
at their old positions. Wit... - 12:23 AM Revision 7ecca26f (git): [Tests] Add test cases for String#getbyte and String#setbyte
- Cover behavior documented in rdoc but not asserted in test/ruby/test_string.rb:
* getbyte: negative index, out-of-range (positive and negative), empty string.
* setbyte: return value, negative index, out-of-range (positive and negative)...
04/19/2026
- 07:19 AM Revision f3931808 (git): [DOC] Update bundled gems list at 1a171d75dfd9dda2439cc5306afd29
- 07:11 AM Revision 1a171d75 (git): Update bundled gems list as of 2026-04-19
-
02:14 AM Revision 8f02f644 (git): [ruby/json] Use RB_ENC_CODERANGE to first check the cached coderange before calling rb_enc_str_coderange if the coderange is unknown.
- https://github.com/ruby/json/commit/4ef7a45654
04/18/2026
-
11:21 PM Bug #22007: Inconsistent type checking on rescue
- byroot (Jean Boussier) wrote in #note-8:
> I suspect removing that limitation wouldn't prevent JITs from optimizing the overwhelming majority of `rescue` statements as they'd still only list one of a few classes.
Well, it wouldn't be... -
08:59 PM Bug #22007: Inconsistent type checking on rescue
- Eregon (Benoit Daloze) wrote in #note-2:
> I think any expression should be allowed and just call `===` on them.
Agreed. To me `rescue` is just a shorthand for `rescue e; case e; when ` but that is strangely limited.
I suspect rem... -
12:08 AM Bug #22007: Inconsistent type checking on rescue
- We can't change this without breaking user code. Things like
```
irb(main):003> def resolve; SyntaxError; end
=> :resolve
irb(main):004> begin; raise SyntaxError, 'lol'; rescue resolve; end
=> nil
irb(main):005> begin; raise Argu... -
10:32 PM Feature #21962: Add deep_freeze for recursive freezing
- I don't have a strong opinion here, but one argument I could see for inclusion in core is to optimize frozen constants, e.g.
```ruby
SCHEMA = [
{ type: :foo, tags: ["a", "b"] },
{ type: :bar, tags: ["c", "d"] },
...
].deep_... - 09:07 PM Revision 699c13ee (git): Update default gems list at 7ba005099bd6326ef218ac7afe1d17 [ci skip]
-
09:06 PM Revision 7ba00509 (git): [ruby/json] Release 2.19.4
- https://github.com/ruby/json/commit/6688a814bf
- 11:09 AM Revision 3803204f (git): [ruby/json] Fix references to NAN and INFINITY in documentation comments
- https://github.com/ruby/json/commit/f1e6163ee1
-
07:36 AM Misc #21922: Permissions for committers for ex-default/bundled/unbundled gems repositories
- I can help maintaining these no primary maintainer gems as a member of "Legacy Gems Maintenance Team".
- 07:09 AM Revision 52a80bb9 (git): [DOC] Update bundled gems list at d6c68b65ee1f0d704b33dac527317f
-
04:29 AM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
- Eregon (Benoit Daloze) wrote in #note-7:
> We can easily compute the end of heredoc if the API returns `}`
How do you determine whether a block contains a heredoc? Consider:
- `{ <<X }`: heredoc
- `{ x<<X }`: shift operator
- `{... -
03:54 AM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
- Eregon (Benoit Daloze) wrote in #note-7:
> For the start position I think either is fine.
> ...
The `proc` part is irrelevant to the source of the block, and is only a method call receiver for a block argument. We wouldn't include any ...
04/17/2026
-
11:28 PM Bug #22007: Inconsistent type checking on rescue
- zenspider (Ryan Davis) wrote in #note-5:
> so what should `rescue /regexp/` do?
It would do `/regexp/ === exception`, which is not useful but consistent.
The `assert_raises` example is interesting, I recall https://github.com/test... -
09:56 PM Bug #22007: Inconsistent type checking on rescue
- Eregon (Benoit Daloze) wrote in #note-2:
> I think a better fix, related to this issue, would be to stop checking the class of rescue clauses, I think any expression should be allowed and just call `===` on them.
> ...
so what should `... -
09:54 PM Bug #22007: Inconsistent type checking on rescue
- The actual place where this showed up is in `assert_raises(*exp)` (edited for succinctness):
```ruby
def assert_raises *exp
msg = "#{exp.pop}.\n" if String === exp.last
exp << StandardError if exp.empty?
be... -
09:39 PM Bug #22007: Inconsistent type checking on rescue
- I think the better fix would be to reject literal types that are clearly not going to match. Ideally, the only cases that should be admitted to a rescue would be constant accesses, or other expressions that could potentially resolve a ty...
-
09:01 PM Bug #22007: Inconsistent type checking on rescue
- I think a better fix, related to this issue, would be to stop checking the class of rescue clauses, I think any expression should be allowed and just call `===` on them.
So one could do e.g.:
```ruby
begin
raise "nope"
rescue ->... -
08:59 PM Bug #22007: Inconsistent type checking on rescue
- The reason is `rescue` clauses are evaluated lazily, and stop at the first matching one.
I believe this is by design for efficiency.
Evaluating every `rescue` clause when not necessary would be some overhead and have potentially unwant... -
08:38 PM Bug #22007 (Open): Inconsistent type checking on rescue
- this works fine (but I don't think it should):
```ruby
begin
raise "nope"
rescue RuntimeError, /why am I allowed?/, "or me?" => e
# yay
end
```
whereas this version shows a type error, which seems right:
```ruby
begin
be... - 10:48 PM Revision d6c68b65 (git): Bump yard
- Bumps the bundler group with 1 update in the /spec/bundler/realworld/fixtures/tapioca directory: [yard](https://yardoc.org).
Updates `yard` from 0.9.37 to 0.9.42
---
updated-dependencies:
- dependency-name: yard
dependency-version: ... -
08:49 PM Feature #21963: A solution to completely avoid allocated-but-uninitialized objects
- Thank you for reviewing this ticket.
I agree with both points.
I thought it would be nice-to-have to also have this for classes defined in Ruby but as you say the worst case is NoMethodError, and the specifics of the proposal are mostly... -
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... -
08:24 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
- For the start position I think either is fine.
I think from the `p` of `proc` is more useful because it gives extra context to what the block is given (a block can't exist on its own, it's always part of something bigger syntax-wise).
... -
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... -
06:30 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
- Yeah I think that'd be fine! To be honest I never ever knew these APIs existed, I've been researching the GC and that's how I found it, so I suspect they might not be very common?
-
05: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
- Oh yeah, thanks. There's even a helpful comment for it. I think changing `rb_gc_update_tbl_refs` to only move values probably makes sense. We could add something like `rb_mark_hash_nopin_values` where it marks values for moving but pins ...
-
05:12 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
- I guess objects that get a finalizer don't move -- e.g. `gc_is_moveable_obj` ==> `FALSE` so that's what made the finalizer table never be affected by this detail.
- 04:56 PM Revision fb38a1c5 (git): [ruby/openssl] pkey: fix memory leak when derived key is too large
- Unlikely to happen in practice, but mirrors other similar checks that
also free the context.
https://github.com/ruby/openssl/commit/fd28a16519 -
04:31 PM Misc #22006: Usage of deprecated input in gem sync workflows
- Again, I was not sure what you were proposing from reading your description, but I think we could define a shared action that just calls "Create GitHub App token" and "Sync to ruby/ruby". We still have to make sure credentials are availa...
-
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... -
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... -
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... -
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...