Activity
From 02/28/2026 to 03/06/2026
Today
-
08:19 AM Misc #21928 (Closed): Prism backport handling
-
08:05 AM Revision 9356837d (git): [ruby/json] Release 2.19.0
- https://github.com/ruby/json/commit/a11acc1ff4
-
07:58 AM Revision cd80e238 (git): [ruby/json] fbuffer.h: Use size_t over unsigned long
- unsigned long is only 32b on some platforms.
https://github.com/ruby/json/commit/0a4fb79cd9 - 07:48 AM Revision f56310de (git): [ruby/json] Reject negative depth; add overflow guards to prevent hang/crash
- https://github.com/ruby/json/commit/de993aa766
-
06:49 AM Revision f16961ec (git): [ruby/rubygems] Remove dead code in dependency installer tests
- Remove unused si.to_yaml calls that stored YAML at URLs that were never
fetched. With the pure-Ruby parser, NilClass no longer has to_yaml, but
these lines were dead code regardless.
https://github.com/ruby/rubygems/commit/6ab25e49ac -
06:45 AM Revision dcd6b55e (git): [ruby/rubygems] Skip flaky webauthn test on TruffleRuby
- Pend test_with_webauthn_enabled_failure on TruffleRuby where it fails
intermittently.
https://github.com/ruby/rubygems/commit/6e062ccef1 -
05:02 AM Revision 9aca7291 (git): Improve comparison error message.
- In certain cases, things like Array#sort can result in a confusing error
message. For instance where a and b are characters in a string,
`"string"`:
```ruby
array.sort { |a, b| string.index(a) <=> string.index(b) }
```
If one of the in... -
04:12 AM Revision 85453b75 (git): Use OPTIMIZED_CMP in r_less instead of <=>
-
03:33 AM Revision 7a1d47ae (git): ZJIT: Remove duplicate CheckInterrupts within basic blocks (#16317)
- Add a new optimization pass that eliminates redundant CheckInterrupts
instructions within each basic block. Only the first CheckInterrupts is
needed per stretch of non-call code, since the interrupt flag only needs
to be checked once. Th... -
02:42 AM Revision a6cb8f07 (git): Check for -fdeclspec consistently
- When checking whether CXXFLAGS is valid, we try to compile with a stdio
include which causes a warning.
This does the same when we check whether "-fdeclspec" can be used, that
way the flag is not added if it would lead to a warning later. - 02:40 AM Revision cd54232b (git): Bump github/codeql-action in the github-actions group across 1 directory
- Bumps the github-actions group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action).
Updates `github/codeql-action` from 4.32.5 to 4.32.6
- [Release notes](https://github.com/github/codeql-a... - 01:57 AM Revision 46f51cb3 (git): string.c: guard tmp in rb_str_format_m (GH-16280)
- [Bug #21931]
Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.
[alan: sunk the guard below usage]
Reviewed-by: Alan Wu <XrXr@users.noreply.github.com> -
12:06 AM Revision 45f030f9 (git): [PRISM] Template out node creation functions
03/05/2026
-
11:15 PM Bug #21946 (Closed): `and?` predicate confused for leading `and` keyword
- Applied in changeset commit:git|54eb330f8cc9f5a5b67ccfa5247cd8b98fb1ef44.
----------
[ruby/prism] Correctly handle `and?` and similar on ruby 4.0
It gets confused for syntax introduced in https://bugs.ruby-lang.org/issues/20925
But it ... -
07:34 PM Bug #21946 (Closed): `and?` predicate confused for leading `and` keyword
- Originally reported at https://github.com/ruby/prism/pull/3337#issuecomment-4004880188
```sh
$ ruby -ce $'foo\nand?'
ruby: -e:2: syntax errors found (SyntaxError)
1 | foo
> 2 | and?
| ^ expected an expression after `?` i... -
11:11 PM Revision 54eb330f (git): [ruby/prism] Correctly handle `and?` and similar on ruby 4.0
- It gets confused for syntax introduced in https://bugs.ruby-lang.org/issues/20925
But it actually should be a plain method call.
`!`/`?` are not valid as part of an identifier, methods
however allow them as the last character.
Fixes [Bu... -
11:08 PM Revision d7895589 (git): [ruby/prism] Include ext/prism/extconf.rb explicitly in prism.gemspec
- * For consistency.
https://github.com/ruby/prism/commit/d4575f651a -
11:08 PM Revision a81136b6 (git): [ruby/prism] Revert "Recompile when config.yml changes"
- * This reverts commit https://github.com/ruby/prism/commit/ffe8f7a6e236.
* No longer necessary as the Makefile depends on all *.c and *.h.
https://github.com/ruby/prism/commit/5a33460adc -
08:51 PM Revision 6a4402c9 (git): ZJIT: Optimize load store forwarding (#16228)
- This PR introduces an almost verbatim implementation of load_store_forward optimization as described in Max's [blog post](https://bernsteinbear.com/blog/toy-load-store/).
After this PR is merged, we will add type based alias analysis. -
07:37 PM Bug #21926: Thread#value on popen3 wait thread hangs in finalizer
- Thank you for the nice reproduction! We have a fix coming, and it will probably be backported to 3.4 and 4.0 as well.
The fix is at https://github.com/ruby/ruby/pull/16307. -
07:29 PM Bug #21945 (Open): Ripper lexes newline between identifier and `and?` as ignored newline
- ```rb
Ripper.lex("foo\nand?")
=> [[[1, 0], :on_ident, "foo", CMDARG], [[1, 3], :on_ignored_nl, "\n", CMDARG], [[2, 0], :on_ident, "and?", ARG]]
```
Presumably this is because until the `?` is encountered, it is considered syntax as... -
07:08 PM Revision 33e5d389 (git): Map M:N thread stack chunks initially as PROT_NONE
- Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard page to PROT_NONE the first
time a new thread stack is needed. Usually that's okay as we don't touch
that memory until it is needed and so i... -
07:03 PM Bug #21944 (Closed): "Cannot allocate memory" with M:N threads or Ractors on a low RAM Linux machine
- Applied in changeset commit:git|407dd02c1b52b05ba55a179554b29a14e44a4b82.
----------
Map M:N thread stack chunks initially as PROT_NONE
Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard pa... -
06:32 PM Bug #21944 (Closed): "Cannot allocate memory" with M:N threads or Ractors on a low RAM Linux machine
- Linux default overcommit policy (`vm.overcommit_memory=0`) will fail for allocations which are "obvious overcommits" (https://www.kernel.org/doc/html/latest/mm/overcommit-accounting.html). Under M:N threading (including under Ractors) we...
-
07:03 PM Revision 407dd02c (git): Map M:N thread stack chunks initially as PROT_NONE
- Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard page to PROT_NONE the first
time a new thread stack is needed. Usually that's okay as we don't touch
that memory until it is needed and so i... -
05:24 PM Revision 192fc379 (git): Add previous parent commit to .git-blame-ignore-revs [ci skip]
-
05:23 PM Revision b78e0a6d (git): ZJIT: Normalize to non-raw string literals in snapshots with `s/@r"/@"/`
- Since cargo-insta [version 1.45.0], raw string literals are only used when
snapshot contents require them. This creates unnecessary diff hunks when
updating older snapshots that still use raw literals.
Normalize all snapshots to use non... -
04:49 PM Revision 45250a41 (git): [PRISM] Use arena allocator for nodes
-
01:36 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- It was discussed in the November 2025 meeting and it seems the conclusion was that @headius would be bringing a proposal to address @matz's concerns: https://github.com/ruby/dev-meeting-log/blob/master/2025/DevMeeting-2025-11-13.md#featu...
-
01:28 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- This came up again in https://github.com/dry-rb/dry-struct/pull/203.
People are thinking to use `Ractor.make_shareable` "because it's core and fast" instead of e.g. the IceNine gem.
But `Ractor.make_shareable` is only available on CRub... -
12:31 PM Revision 67d4396d (git): Refine `Array#pack` `r`/`R` directives
- * remove the temporary buffer object.
* simplify the condition under which an extra byte is required for
sign extension.
* in the case of `R`, raise an error earlier before packing for the
negative number. -
11:56 AM Revision 275e53e4 (git): [ruby/json] Fix `allow_blank` parsing option to only consider strings.
- Ref: https://github.com/ruby/json/pull/946
https://github.com/ruby/json/commit/6ccc102db6 -
09:42 AM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- nobu (Nobuyoshi Nakada) wrote in #note-8:
> synacker (Mikhail Milovidov) wrote in #note-4:
> ...
Thank you for the feedback. Ractor#empty? isn’t a niche fix - it’s a general‑purpose primitive for efficient schedulers and Ractor‑Fiber i... -
08:52 AM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- I don't have a string opinion on whether `empty?` is useful, that being said it's present on `Thread::Queue` and I support trying to mirror the API as much as possible.
But `empty?` alone isn't that helpful because of TOC/TOU problem ... -
03:16 AM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- synacker (Mikhail Milovidov) wrote in #note-4:
> In this code:
> ...
It would work for **your code**, but may not for general purposes.
And if `main_task` finished immediately and no command is coming, it will be a busy loop.
I guess... -
09:04 AM Revision 65313432 (git): weakmap: return assigned value from #[]= and add regression test
-
08:28 AM Revision 858c96c5 (git): [ruby/json] Reimplement `to_json` methods in Ruby
- https://github.com/ruby/json/commit/3f32c47de4
-
04:08 AM Feature #21943 (Open): Add StringScanner#get_int to extract capture group as Integer without intermediate String
- ## Motivation
The date library is being [rewritten from C to pure Ruby](https://github.com/ruby/date/pull/155). During this effort, `Date._strptime` was identified as a major performance bottleneck. Profiling revealed that the root ca... -
04:03 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
- If there are no objections, I'll submit a patch with strategy (a) next week. It's straightforward to implement and maintains the closest to the current behaviour as possible while fixing the issue.
-
03:55 AM Revision 8a87cebd (git): [DOC] Add note about link fragments (#16304)
- 02:42 AM Revision 0201e926 (git): [DOC] Update bundled gems list at 97e27d7f30a0df4b0b67a619d5df4f
- 02:41 AM Revision 97e27d7f (git): Bump the github-actions group across 1 directory with 2 updates
- Bumps the github-actions group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `ruby/setup-ruby` from 1.288.0 to ... - 01:39 AM Revision c76ead9e (git): Update default gems list at 48a210537de69c3ff2da1609ee8f2e [ci skip]
-
01:38 AM Revision 48a21053 (git): [ruby/zlib] Bump up to 3.2.3
- https://github.com/ruby/zlib/commit/d9c7876988
-
01:38 AM Revision d2a9bb69 (git): [ruby/zlib] Fix buffer overflow at ungetc
- https://github.com/ruby/zlib/commit/608d2be66f
-
12:59 AM Feature #21942: Allow reading class variables from non-main Ractors
- I sent a patch [here](https://github.com/ruby/ruby/pull/16308)
-
12:01 AM Feature #21942 (Open): Allow reading class variables from non-main Ractors
- It's very common in Rails applications to use class variables, and today class variables aren't even allowed to be read inside a Ractor:
```ruby
class Foo
# This is NOT allowed to be read in non-main Ractors
@@bar = 123
def ...
03/04/2026
-
11:16 PM Bug #21941: Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- I have a fix for this here: https://github.com/ruby/ruby/pull/16306
-
10:00 PM Bug #21941: Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- Reduced some more, no IO or anything:
```ruby
def run
fork_safe = ->(t) { t }
RubyVM::YJIT.enable
i = 0
begin
while i < 100
i += 1
p i
begin
next if i
rescue Interrupt
... -
09:55 PM Bug #21941: Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- Reduced even further:
```ruby
def run
fork_safe = ->(t) { t }
RubyVM::YJIT.enable
read, wakeup = IO.pipe
wakeup.write("!")
begin
while true
begin
next if read.wait_readable
rescue Interr... -
09:51 PM Bug #21941 (Open): Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- The following code results in the `read` local variable becoming nil, even though it is never reassigned:
```
def run
fork_safe = ->(t) { t }
RubyVM::YJIT.enable
read, wakeup = IO.pipe
Signal.trap("SIGCHLD") { wakeup.wr... -
09:18 PM Revision 6ea811e6 (git): ZJIT: Add for_each_operand methods to Insn (#16305)
- - Add `for_each_operand`, `for_each_operand_mut`, and `try_for_each_operand` methods to `Insn`, backed by a shared `for_each_operand_impl!` macro
- Replace the old `worklist_traverse_single_insn` function on `Function` with direct use of... -
03:36 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
- Patch: https://github.com/ruby/ruby/pull/16303
-
03:25 PM Bug #21940 (Open): Ruby::Box: `$_` returns stale value due to gvar_tbl caching
## Environment
- Ruby Version v4.0.1
- OS: macOS 15.6.1 (arm64)
- `RUBY_BOX=1` enabled
## Reproduction
```shell
echo -e "a\nb" | RUBY_BOX=1 ruby -e 'gets; $_; gets; p $_'
```
## Expected
```
"b\n"
```
The secon...-
12:12 PM Revision 75d6b159 (git): Always strictly align iseq compile data
-
12:12 PM Revision d2516d32 (git): Calculate padding by alignment size
-
11:49 AM Revision 795619ec (git): [ruby/prism] Revert "Reject infix operators on command call on
- writes"
(https://github.com/ruby/prism/pull/3960)
This reverts commit https://github.com/ruby/prism/commit/4e71dbfc7bd9.
And also add a regression test. Seems like currently prism parses these the same that parse.y does.
https://githu... -
11:02 AM Revision 4d7f3ba2 (git): [ruby/mmtk] Cargo format
- https://github.com/ruby/mmtk/commit/7889da7c0e
-
11:02 AM Revision 3ec9bafe (git): [ruby/mmtk] Flush obj_free buffers before shutdown finalizers
- shutdown_call_finalizer reads candidates from the Rust-side
WeakProcessor, but the main ractor's C-side buffer may not
have been flushed yet (ractor_cache_free runs later). Flush
all remaining buffers before reading candidates.
https://... -
11:02 AM Revision 09262009 (git): [ruby/mmtk] Fix Cargo format issues
- https://github.com/ruby/mmtk/commit/26ec9f7f89
-
11:02 AM Revision fa8b6aff (git): [ruby/mmtk] Buffer obj_free candidates.
- Previously, every object allocation in rb_gc_impl_new_obj made a
per-object FFI call into Rust (mmtk_add_obj_free_candidate), which
acquired a mutex on one of the WeakProcessor's candidate vecs, pushed a
single element, and released the ... -
11:02 AM Revision 45dabe33 (git): [ruby/mmtk] Distribute batch candidates across parallel buckets
- Instead of sending all 128 buffered objects to one bucket,
round-robin distribute them across all worker buckets so
parallel obj_free work stays balanced.
https://github.com/ruby/mmtk/commit/e1f926cd21 -
09:39 AM Revision d3b6bfe6 (git): [ruby/rubygems] Drop subprocess regression test for request proxy lookup
- https://github.com/ruby/rubygems/commit/fdae8c7698
-
09:39 AM Revision d920d399 (git): [ruby/rubygems] Fix Gem::Request proxy env lookup when required directly
- https://github.com/ruby/rubygems/commit/db8fd6becb
-
08:35 AM Feature #21932: `MatchData#get_int`
- zenspider (Ryan Davis) wrote in #note-2:
> In the method comment on the impl side, you have examples for parsing a date... but IDGI... 1/2/10 are supposed to be the base arg, right? Base 1?
I can't get from where the example comes.
... -
01:16 AM Feature #21932: `MatchData#get_int`
- Tried to add a comment to your commit but github is being very sketchy today.
In the method comment on the impl side, you have examples for parsing a date... but IDGI... 1/2/10 are supposed to be the base arg, right? Base 1?
- 06:58 AM Revision f57af84d (git): [ruby/rubygems] Fix plugin new version not registering:
- - ### Problem
When a plugin in the Gemfile is updated to a new version, it will
be downloaded but will not be registered. The old version of the
plugin will be loaded when Bundler is invoked.
### Context
The problem is in th... -
06:51 AM Revision 115b4c65 (git): Add NEWS.md entry for ENV.fetch_values and that tests
- From https://github.com/ruby/rubygems/pull/8501
Co-authored-by: Suleyman Musayev <96992680+msuliq@users.noreply.github.com> -
06:45 AM Revision 0cba8cf4 (git): YJIT: Bail out if proc would be stored above stack top
- Fixes [Bug #21266].
Backport of 9168cad4d63a5d281d443bde4edea6be213b0b25 to 3.3 - 06:44 AM Revision 669f9ad7 (git): Fix integer overflow checks in enumerator
- 06:43 AM Revision 6cd7b1a1 (git): string.c: guard tmp in rb_str_format_m (GH-16280)
- [Bug #21931]
Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.
[alan: sunk the guard below usage]
Reviewed-by: Alan Wu <XrXr@users.noreply.github.com> - 03:22 AM Revision 3f57ba8e (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.68.16 to 2.68.18
- [Release notes](https://github.com/taiki-e... - 02:24 AM Revision f604d1a8 (git): [ruby/rubygems] Update the man pages header to be in sync with the config one
- https://github.com/ruby/rubygems/commit/77def7f4e0
- 02:24 AM Revision 5b6c6414 (git): [ruby/rubygems] Add a new Bundler config to control how many specs are fetched:
- - ### Problem
In #9071, I increased the API_REQUEST_SIZE constants to fetch 100
specifications at once instead of 50.
Worth to remember that this codepath is exclusively used for servers
that don't implement the compact index AP...
03/03/2026
-
11:53 PM Revision 2be717ae (git): Shrink struct rb_callinfo to 32 bytes
- This shouldn't do anything right now under the default GC, but in the
future (or now on MMTK?) this would allow them to be allocated from a
smaller size pool. -
11:01 PM Revision f9c51ac5 (git): ZJIT: Fix Class type system bug and constant-fold IsA (#15268)
- Fix a some bugs in the type lattice around classes and user-defined classes. Refine types more precisely to subclasses of object.
With that fix, add const-folding support for IsA.
Co-authored-by: John Hawthorn <john.hawthorn@shopify.co... -
10:42 PM Revision a88e2abb (git): Update to ruby/spec@af627d6
-
10:42 PM Revision 6b6ceb97 (git): Update to ruby/mspec@a2587d9
-
09:47 PM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- ufuk (Ufuk Kayserilioglu) wrote in #note-6:
> @synacker Which version of Ruby are you testing with? Can you please send your `ruby -v` output for the benchmark results?
This is a ruby version from my pr (https://github.com/ruby/ruby/... -
09:08 PM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- @synacker Which version of Ruby are you testing with? Can you please send your `ruby -v` output for the benchmark results?
-
08:41 PM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- nobu (Nobuyoshi Nakada) wrote in #note-3:
> As for your example, why does `Worker` ractor handle both of `main_task` and dispatch alone, instead of launching each ractors?
I compared two strategies for handling concurrent tasks:
1... -
09:00 PM Revision f46eb48b (git): Expand the Shape heap index mask
- I think we have spare bits here, so let's expand them out and see what
happens. This will allow us to have more than 7 size pools in the future - 06:02 PM Revision b2ff380d (git): [ruby/openssl] Fix memory leak if ossl_bn_new() fails
- When that call fails, the `bn` BIGNUM is never freed in
asn1integer_to_num(). To solve this, use rb_protect().
Example Valgrind report:
```
32 (24 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 11,113 of 25,910... -
05:17 PM Bug #21934 (Open): Prism and parse.y inconsistency in command call used with pattern match
- These are syntax error in both parse.y and in Prism
~~~ruby
a x in pattern
a x: in pattern
a &x in pattern
a *x => pattern
a x: => pattern
a &x => pattern
~~~
These are all syntax error in parse.y, all syntax valid in Prism
~... - 04:19 PM Revision e30b5a06 (git): ZJIT: Add diff tool for running benchmarks between git refs (#16160)
- For https://github.com/Shopify/ruby/issues/822
Adds a small script for automatically running benchmarks between two git refs.
Example output (doubled an increment to `inline_cfunc_optimized_send_count` to illustrate stat diffs):
```
$ ... - 03:57 PM Revision a9b84adb (git): string.c: guard tmp in rb_str_format_m (GH-16280)
- [Bug #21931]
Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.
[alan: sunk the guard below usage]
Reviewed-by: Alan Wu <XrXr@users.noreply.github.com> -
02:05 PM Revision 7a3940e8 (git): Unify rb_node_list_new and rb_node_list_new2
- The former is the specialized case of the latter.
-
02:05 PM Revision c128106e (git): Adjust variable type for rb_block_given_p()
-
01:47 PM Bug #21933: Ruby::Box: named capture local variable can become nil after non-matching lines
- Shorter reproduction code
~~~ruby
/(?<a>foo)/ =~ 'bar'
/(?<b>baz)/ =~ 'baz'
p b # should be present, got nil with RUBY_BOX=1
~~~
~~~ruby
/foo/ =~ 'bar'
$~
/baz/ =~ 'baz'
p $~ # should be MatchData, got nil with RUBY_BOX=1
... -
01:11 PM Bug #21933 (Open): Ruby::Box: named capture local variable can become nil after non-matching lines
- Environment:
- Ruby 4.0.1
- RUBY_BOX=1
- OS: Linux x86_64
Summary:
With Ruby::Box enabled, a named capture local variable from `=~` may become nil,
even when the regexp matches. This happens after iterating over non-matching line... -
01:40 PM Bug #21713 (Closed): Prism accepts pattern matching in modifier rescue followed by operators that shouldn't be allowed
- Applied in changeset commit:git|8c7f4db893af4c9e40eab5810dc58737dc9010bb.
----------
[ruby/prism] Fix modifier rescue pattern matching
[Bug #21713]
https://github.com/ruby/prism/commit/02c944c055 -
01:40 PM Revision 8c7f4db8 (git): [ruby/prism] Fix modifier rescue pattern matching
- [Bug #21713]
https://github.com/ruby/prism/commit/02c944c055 -
12:29 PM Feature #21932 (Open): `MatchData#get_int`
- This is suggested by @akr today, `$~.get_int(1)` is equivalent to `$1.to_i` but does not create the intermediate string object.
https://github.com/nobu/ruby/tree/match-get_int -
11:49 AM Feature #21781 (Closed): Add `fetch_values` method on `ENV`
- Applied in changeset commit:git|a2db2d429f14514c67fcf0523891cd9062dd6a5b.
----------
[Feature #21781] Add `ENV.fetch_values`
Specs/Implementation inspired by methods on hash/env that already exist. -
11:48 AM Revision a2db2d42 (git): [Feature #21781] Add `ENV.fetch_values`
- Specs/Implementation inspired by methods on hash/env that already exist.
-
11:00 AM Feature #21827: Deprecating Ripper
- `rdoc` and `irb` have now stopped using `ripper`. https://github.com/ruby/syntax_suggest/pull/251 is for `syntax_suggest`.
That leaves just `power_assert` for the ruby gems. I gave that a quick look but it's difficult to understand fo... -
09:20 AM Bug #21931 (Closed): GC Crash in `String#%` (backport 726205b354d1068147719fb42e1de743f1838ef1)
-
09:20 AM Bug #21931: GC Crash in `String#%` (backport 726205b354d1068147719fb42e1de743f1838ef1)
- - 3.3 backport PR: https://github.com/ruby/ruby/pull/16288
- 3.4 backport PR: https://github.com/ruby/ruby/pull/16287
- 4.0 backport PR: https://github.com/ruby/ruby/pull/16286 -
09:14 AM Bug #21931 (Closed): GC Crash in `String#%` (backport 726205b354d1068147719fb42e1de743f1838ef1)
- Reproduction
```ruby
GC.stress = true
class Args
def to_ary
Array.new(64) { "x" * 1024 }
end
end
fmt = "%s" * 64
100_000.times do
fmt % Args.new
end
```
Patch that should be backported https://github.com/ru... -
09:17 AM Misc #21928: Prism backport handling
- 👍 I created https://github.com/ruby/prism/tree/ruby-3.4 and https://github.com/ruby/prism/tree/ruby-4.0
FYI @k0kubun and @nagachika. During release, you can simply bump the patch version (for example 1.5.3 0 => 3.4, 1.8.1 => 4.0), the... -
06:04 AM Revision 1008a469 (git): [ruby/rubygems] Show release date with bundle outdated
- https://github.com/ruby/rubygems/commit/300cc0c223
-
04:29 AM Feature #21616 (Closed): date ライブラリを deprecated させたい
-
03:29 AM Revision 8d64eb68 (git): [ruby/stringio] Allow read-only methods to work with frozen StringIO
- Fix https://github.com/ruby/stringio/pull/120
https://github.com/ruby/stringio/commit/b0e3ce88b3 -
03:29 AM Revision 571ce8d7 (git): [ruby/stringio] Add tests for read-only methods on frozen StringIO
- See #120
https://github.com/ruby/stringio/commit/8cba5aac0a - 02:43 AM Revision 162c7215 (git): Bump github/codeql-action in the github-actions group across 1 directory
- Bumps the github-actions group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action).
Updates `github/codeql-action` from 4.32.4 to 4.32.5
- [Release notes](https://github.com/github/codeql-a...
03/02/2026
-
09:58 PM Revision 993c7a27 (git): ZJIT: Don't use find() in clean_cfg (#16284)
- We don't need to materialize an instruction or even look at its
operands. -
09:35 PM Revision 2ccb44c1 (git): ZJIT: Don't use find() in infer_types (#16283)
- No need to materialize the whole instruction; if/when we need the
operands, do the union-find lookup per operand. This saves on allocation
time. -
09:06 PM Revision a81c3eb7 (git): ZJIT: Use LoadField for TypedData ivars (#16259)
- Drops C calls to `rb_ivar_get_at_no_ractor_check` out of the stats completely.
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> -
08:42 PM Bug #21714 (Closed): Prism and parse.y inconsistency in `def a = a b do 1 end`
- Applied in changeset commit:git|3b6562f663c14d848f8c4f752b5557b8e85d5910.
----------
[ruby/prism] Fix up endless method definition with do/end
[Bug #21714]
https://github.com/ruby/prism/commit/0f47e18335 -
08:41 PM Revision 3b6562f6 (git): [ruby/prism] Fix up endless method definition with do/end
- [Bug #21714]
https://github.com/ruby/prism/commit/0f47e18335 -
07:48 PM Revision 2b8c1007 (git): [ruby/prism] Prism::ParseResult#continuable?
- An API to determine if more input could fix the existing syntax errors.
https://github.com/ruby/prism/commit/6701ffe0f5 -
05:54 PM Revision 2106ecec (git): [ruby/prism] Require arguments to Source.for
- https://github.com/ruby/prism/commit/b38010c420
- 05:40 PM Revision 726205b3 (git): string.c: guard tmp in rb_str_format_m (GH-16280)
- Keep tmp alive while RARRAY_CONST_PTR(tmp) is used by rb_str_format.
[alan: sunk the guard below usage]
Reviewed-by: Alan Wu <XrXr@users.noreply.github.com> -
05:35 PM Revision 460566ab (git): [ruby/prism] Reject infix operators on command call on writes
- https://github.com/ruby/prism/commit/4e71dbfc7b
-
05:07 PM Bug #21674 (Closed): Possible regression in return case in statement
- Applied in changeset commit:git|c7ed328cd569a258aa949f78f721195e2be15e9e.
----------
[ruby/prism] Fix in handling
in is a unique keyword because it can be the start of a clause or
an infix keyword. We need to be explicitly sure that ev... -
05:07 PM Bug #21925 (Closed): Prism misparses standalone "in" pattern matching in "case/in"
- Applied in changeset commit:git|c7ed328cd569a258aa949f78f721195e2be15e9e.
----------
[ruby/prism] Fix in handling
in is a unique keyword because it can be the start of a clause or
an infix keyword. We need to be explicitly sure that ev... -
03:05 PM Bug #21925: Prism misparses standalone "in" pattern matching in "case/in"
- Yeah, looking
-
05:07 PM Revision c7ed328c (git): [ruby/prism] Fix in handling
- in is a unique keyword because it can be the start of a clause or
an infix keyword. We need to be explicitly sure that even though in
_could_ close an expression context (the body of another in clause)
that we are not also parsing an inl... -
04:05 PM Revision 6a31ffa3 (git): ZJIT: Move is_meta_class() from hir::Function to VALUE
- `self` was unused.
-
03:08 PM Misc #21928: Prism backport handling
- Yeah I'm fine doing stable branches going forward, I agree it will make things easier.
-
09:32 AM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- nobu (Nobuyoshi Nakada) wrote in #note-3:
> This sounds like leading to a typical TOC/TOU problem.
I appreciate the concern about a potential TOC/TOU issue, but I believe it doesn’t apply in this specific case. Consider the following pa... -
05:43 AM Feature #21930 (Feedback): Add Ractor#empty? method to check for pending messages without blocking
- This sounds like leading to a typical TOC/TOU problem.
As for your example, why does `Worker` ractor handle both of `main_task` and dispatch alone, instead of launching each ractors?
-
06:37 AM Revision 740bbddd (git): Lrama v0.8.0
- 06:20 AM Revision b0ee7877 (git): [ruby/rubygems] Restrict GitHub Actions workflow permissions for newgem
- - Configure minimal required permissions in the GitHub Actions workflow template
- Bump actions/checkout from 4 to 6
- Bump actions/upload-artifact from 3 to 7
https://github.com/ruby/rubygems/commit/e4c82bd095 -
06:19 AM Revision b92f1d10 (git): Use .bundle only if all deps present
-
06:19 AM Revision 4fc55d88 (git): Use .bundle gem paths for test deps with ruby/ruby repository.
- 02:49 AM Revision c961dbb2 (git): Bump the github-actions group across 1 directory with 2 updates
- Bumps the github-actions group with 2 updates in the / directory: [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) and [taiki-e/install-action](https://github.com/taiki-e/install-action)...
03/01/2026
-
06:42 PM Feature #21930: Add Ractor#empty? method to check for pending messages without blocking
- Added pr: https://github.com/ruby/ruby/pull/16277
-
06:20 PM Feature #21930 (Feedback): Add Ractor#empty? method to check for pending messages without blocking
- **Summary**
In concurrent Ractor‑based architectures, there’s a critical need to check whether a Ractor has pending messages without blocking. Currently, this is not possible with the standard API
**Motivation**
The Ractor API provi... -
01:02 PM Feature #21875: Handling of trailing commas in lambda parameters
- Earlopain (Earlopain _) wrote:
> If a trailing comma is accepted it can either
> ...
Rather I think it should be allowed even after optional/rest/keyword/keyword-rest arguments in block parameters too.
-
10:44 AM Revision d68e4be1 (git): lrama pre-0.8.0
- master as of 2026-03-01.
ruby/lrama@e8dbb063afd42432899dac796384b00ef61986b0 -
10:44 AM Revision 45dce19e (git): parse.y: Parameterize argument list rules
- Parametrize `block_param` and `f_args` into `arg-list` and
`tail-only-args`. Since the pattern for `pre_args` alone differs
between `opt_comma` and `excessed_comma`, retain it within each rule. -
09:36 AM Bug #14582: Unable to use `method__entry` and `method_return` tracing probes since 2.5
- I've created a pull request to fix this: https://github.com/ruby/ruby/pull/16084.
-
03:10 AM Revision 0980de4c (git): parse.y: Extract new_empty_args_tail macro
-
03:04 AM Revision 504cf455 (git): parse.y: Extract f_empty_arg
-
12:20 AM Revision 851a10bc (git): Revert "parse.y: narrow excessed_comma to block_param_def"
- This reverts commit 2239d54348d9f1f7768860efc9e76876f85766d8.
At first glance, it seemed like a good idea, but it wasn't all that
great.
02/28/2026
-
06:59 PM Revision 19b636d3 (git): Remove unused variable
-
11:26 AM Revision 85b04616 (git): Revert and ignore template-injection error at capi extension workflow
-
11:26 AM Revision b8d71484 (git): Fix: Use shell syntax for SETARCH command
-
11:26 AM Revision eae6d265 (git): Use zizmorcore/zizmor-action
-
11:26 AM Revision 520b0898 (git): Rename CodeQL workflow to Check SAST tool
-
11:26 AM Revision 4b9af00c (git): Refactor GitHub Actions to use environment variables
-
11:26 AM Revision 64d63ba0 (git): Fix: Set persist-credentials to false for actions/checkout
-
11:26 AM Revision f47c57d3 (git): Add zizmor ignore directives for github-env
-
11:26 AM Revision 41c11dc3 (git): Expose inputs as env vars in composite actions
-
11:26 AM Revision aef8fd05 (git): Add Zizmor baseline ignore configuration
-
11:26 AM Revision 0b342d29 (git): Add Zizmor job to workflow
-
04:02 AM Revision 373eacb8 (git): [ruby/rubygems] Skip Windows group warning for realworld specs
- https://github.com/ruby/rubygems/commit/98a355dcfb
-
02:29 AM Revision 3251792f (git): ZJIT: Fix infinite loop from `make_equal_to(x,y)` where `x=y`
- Sometimes it's convenient to write that
`make_equal_to(x, big_decision_tree_to_find_replacement)` where
most of the time the decision tree gives something not equal to `x`.
Since infinite loops are hard to debug and this condition is ea... -
02:29 AM Revision 4eadf035 (git): ZJIT: Check special_const_p() before using rb_obj_shape_id()
- It only works with heap objects.
-
02:21 AM Revision 55f2a8d1 (git): Bump up to latest GitHub Actions versions
-
02:21 AM Revision 903b709c (git): Pin GitHub Actions to specific SHAs