Project

General

Profile

Activity

From 02/28/2026 to 03/06/2026

Today

03:27 PM Bug #21873: `UnboundMethod#==` returns false for methods from included/extended modules
3.4 backport PR: https://github.com/ruby/ruby/pull/16326 luke-gru (Luke Gruber)
09:57 AM Feature #21875: Handling of trailing commas in lambda parameters
nobu (Nobuyoshi Nakada) wrote in #note-4:
> Rather I think it should be allowed even after optional/rest/keyword/keyword-rest arguments in block parameters too.
Wouldn't that be **very** confusing then because `proc { |a,| a }.call([...
Eregon (Benoit Daloze)
09:25 AM Revision d5d144c1 (git): parse.y: Split forwarding argument in method and lambda
Eliminate the lambda argument conditions from the action. nobu (Nobuyoshi Nakada)
09:16 AM Feature #21932: `MatchData#get_int`
FYI: strscan will use `integer_at` not `get_int`: https://github.com/ruby/strscan/pull/192#issuecomment-4002582149 kou (Kouhei Sutou)
08:19 AM Misc #21928 (Closed): Prism backport handling
Earlopain (Earlopain _)
08:06 AM Revision 66c3ff3f (git): Update default gems list at 9356837d1a436a75ba3b35234d7678 [ci skip]
git[bot]
08:05 AM Revision 9356837d (git): [ruby/json] Release 2.19.0
https://github.com/ruby/json/commit/a11acc1ff4 byroot (Jean Boussier)
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
byroot (Jean Boussier)
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 thesmartshadow
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
hsbt (Hiroshi SHIBATA)
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
hsbt (Hiroshi SHIBATA)
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...
ernie (Ernie Miller)
04:12 AM Revision 85453b75 (git): Use OPTIMIZED_CMP in r_less instead of <=>
kyanagi (Kouhei Yanagita)
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...
rwstauner (Randy Stauner)
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.
etienne (Étienne Barrié)
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...
dependabot[bot]
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>
ZHIJIE XIE
12:06 AM Revision 45f030f9 (git): [PRISM] Template out node creation functions
kddnewton (Kevin Newton)

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 ...
Earlopain (Earlopain _)
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...
Earlopain (Earlopain _)
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...
Earlopain (Earlopain _)
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
Eregon (Benoit Daloze)
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
Eregon (Benoit Daloze)
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.
Jacob (Jacob Jacob)
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.
luke-gru (Luke Gruber)
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...
Earlopain (Earlopain _)
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...
jhawthorn (John Hawthorn)
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...
jhawthorn (John Hawthorn)
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... jhawthorn (John Hawthorn)
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...
jhawthorn (John Hawthorn)
05:24 PM Revision 192fc379 (git): Add previous parent commit to .git-blame-ignore-revs [ci skip]
alanwu (Alan Wu)
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...
alanwu (Alan Wu)
04:49 PM Revision 45250a41 (git): [PRISM] Use arena allocator for nodes
kddnewton (Kevin Newton)
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... ufuk (Ufuk Kayserilioglu)
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...
Eregon (Benoit Daloze)
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.
nobu (Nobuyoshi Nakada)
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
byroot (Jean Boussier)
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...
synacker (Mikhail Milovidov)
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 ...
byroot (Jean Boussier)
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...
nobu (Nobuyoshi Nakada)
09:04 AM Revision 65313432 (git): weakmap: return assigned value from #[]= and add regression test
afurm (Andrii Furmanets)
08:28 AM Revision 858c96c5 (git): [ruby/json] Reimplement `to_json` methods in Ruby
https://github.com/ruby/json/commit/3f32c47de4 byroot (Jean Boussier)
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...
jinroq (Jinroq SAITOH)
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. jneen (Jeanine Adkisson)
03:55 AM Revision 8a87cebd (git): [DOC] Add note about link fragments (#16304)
burdettelamar (Burdette Lamar)
02:42 AM Revision 0201e926 (git): [DOC] Update bundled gems list at 97e27d7f30a0df4b0b67a619d5df4f
git[bot]
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 ...
dependabot[bot]
01:39 AM Revision c76ead9e (git): Update default gems list at 48a210537de69c3ff2da1609ee8f2e [ci skip]
git[bot]
01:38 AM Revision 48a21053 (git): [ruby/zlib] Bump up to 3.2.3
https://github.com/ruby/zlib/commit/d9c7876988 hsbt (Hiroshi SHIBATA)
01:38 AM Revision d2a9bb69 (git): [ruby/zlib] Fix buffer overflow at ungetc
https://github.com/ruby/zlib/commit/608d2be66f nobu (Nobuyoshi Nakada)
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) tenderlovemaking (Aaron Patterson)
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 ...
tenderlovemaking (Aaron Patterson)

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 ufuk (Ufuk Kayserilioglu)
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
...
byroot (Jean Boussier)
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...
byroot (Jean Boussier)
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...
nicholasdower (Nick Dower)
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...
tekknolagi (Maxwell Bernstein)
03:36 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
Patch: https://github.com/ruby/ruby/pull/16303 dak2 (Daichi Kamiyama)
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...
dak2 (Daichi Kamiyama)
12:12 PM Revision 75d6b159 (git): Always strictly align iseq compile data
nobu (Nobuyoshi Nakada)
12:12 PM Revision d2516d32 (git): Calculate padding by alignment size
nobu (Nobuyoshi Nakada)
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...
Earlopain (Earlopain _)
11:02 AM Revision 4d7f3ba2 (git): [ruby/mmtk] Cargo format
https://github.com/ruby/mmtk/commit/7889da7c0e eightbitraptor (Matt V-H)
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://...
eightbitraptor (Matt V-H)
11:02 AM Revision 09262009 (git): [ruby/mmtk] Fix Cargo format issues
https://github.com/ruby/mmtk/commit/26ec9f7f89 eightbitraptor (Matt V-H)
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 ...
eightbitraptor (Matt V-H)
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
eightbitraptor (Matt V-H)
09:39 AM Revision d3b6bfe6 (git): [ruby/rubygems] Drop subprocess regression test for request proxy lookup
https://github.com/ruby/rubygems/commit/fdae8c7698 afurm (Andrii Furmanets)
09:39 AM Revision d920d399 (git): [ruby/rubygems] Fix Gem::Request proxy env lookup when required directly
https://github.com/ruby/rubygems/commit/db8fd6becb afurm (Andrii Furmanets)
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.
...
nobu (Nobuyoshi Nakada)
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?
zenspider (Ryan Davis)
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...
Edouard CHIN
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>
hsbt (Hiroshi SHIBATA)
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
rwstauner (Randy Stauner)
06:44 AM Revision 669f9ad7 (git): Fix integer overflow checks in enumerator
Jörmungandrk
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>
ZHIJIE XIE
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...
dependabot[bot]
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 Edouard CHIN
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...
Edouard CHIN

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.
jhawthorn (John Hawthorn)
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...
tekknolagi (Maxwell Bernstein)
10:42 PM Revision a88e2abb (git): Update to ruby/spec@af627d6
andrykonchin (Andrew Konchin)
10:42 PM Revision 6b6ceb97 (git): Update to ruby/mspec@a2587d9
andrykonchin (Andrew Konchin)
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/...
synacker (Mikhail Milovidov)
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? ufuk (Ufuk Kayserilioglu)
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...
synacker (Mikhail Milovidov)
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
eightbitraptor (Matt V-H)
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...
ndossche
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
~...
tompng (tomoya ishida)
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):
```
$ ...
Jeff Zhang
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>
ZHIJIE XIE
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. nobu (Nobuyoshi Nakada)
02:05 PM Revision c128106e (git): Adjust variable type for rb_block_given_p()
nobu (Nobuyoshi Nakada)
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
...
tompng (tomoya ishida)
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...
katsyoshi (Katsuyoshi MATSUMOTO)
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
kddnewton (Kevin Newton)
01:40 PM Revision 8c7f4db8 (git): [ruby/prism] Fix modifier rescue pattern matching
[Bug #21713]
https://github.com/ruby/prism/commit/02c944c055
kddnewton (Kevin Newton)
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
nobu (Nobuyoshi Nakada)
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.
Earlopain (Earlopain _)
11:48 AM Revision a2db2d42 (git): [Feature #21781] Add `ENV.fetch_values`
Specs/Implementation inspired by methods on hash/env that already exist. Earlopain (Earlopain _)
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...
Earlopain (Earlopain _)
09:20 AM Bug #21931 (Closed): GC Crash in `String#%` (backport 726205b354d1068147719fb42e1de743f1838ef1)
byroot (Jean Boussier)
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
byroot (Jean Boussier)
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...
byroot (Jean Boussier)
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...
Earlopain (Earlopain _)
06:04 AM Revision 1008a469 (git): [ruby/rubygems] Show release date with bundle outdated
https://github.com/ruby/rubygems/commit/300cc0c223 hsbt (Hiroshi SHIBATA)
04:29 AM Feature #21616 (Closed): date ライブラリを deprecated させたい
nobu (Nobuyoshi Nakada)
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
nobu (Nobuyoshi Nakada)
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
headius (Charles Nutter)
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...
dependabot[bot]

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.
tekknolagi (Maxwell Bernstein)
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.
tekknolagi (Maxwell Bernstein)
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>
tekknolagi (Maxwell Bernstein)
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
kddnewton (Kevin Newton)
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
kddnewton (Kevin Newton)
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
kddnewton (Kevin Newton)
05:54 PM Revision 2106ecec (git): [ruby/prism] Require arguments to Source.for
https://github.com/ruby/prism/commit/b38010c420 kddnewton (Kevin Newton)
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>
ZHIJIE XIE
05:35 PM Revision 460566ab (git): [ruby/prism] Reject infix operators on command call on writes
https://github.com/ruby/prism/commit/4e71dbfc7b kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
03:05 PM Bug #21925: Prism misparses standalone "in" pattern matching in "case/in"
Yeah, looking kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
04:05 PM Revision 6a31ffa3 (git): ZJIT: Move is_meta_class() from hir::Function to VALUE
`self` was unused. alanwu (Alan Wu)
03:08 PM Misc #21928: Prism backport handling
Yeah I'm fine doing stable branches going forward, I agree it will make things easier. kddnewton (Kevin Newton)
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...
synacker (Mikhail Milovidov)
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?
nobu (Nobuyoshi Nakada)
06:37 AM Revision 740bbddd (git): Lrama v0.8.0
ydah (Yudai Takada)
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
Taketo Takashima
06:19 AM Revision b92f1d10 (git): Use .bundle only if all deps present
hsbt (Hiroshi SHIBATA)
06:19 AM Revision 4fc55d88 (git): Use .bundle gem paths for test deps with ruby/ruby repository.
hsbt (Hiroshi SHIBATA)
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)... dependabot[bot]

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 synacker (Mikhail Milovidov)
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...
synacker (Mikhail Milovidov)
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.
nobu (Nobuyoshi Nakada)
10:44 AM Revision d68e4be1 (git): lrama pre-0.8.0
master as of 2026-03-01.
ruby/lrama@e8dbb063afd42432899dac796384b00ef61986b0
nobu (Nobuyoshi Nakada)
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.
nobu (Nobuyoshi Nakada)
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. jacobcarlborg (Jacob Carlborg)
03:10 AM Revision 0980de4c (git): parse.y: Extract new_empty_args_tail macro
nobu (Nobuyoshi Nakada)
03:04 AM Revision 504cf455 (git): parse.y: Extract f_empty_arg
nobu (Nobuyoshi Nakada)
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.
nobu (Nobuyoshi Nakada)

02/28/2026

06:59 PM Revision 19b636d3 (git): Remove unused variable
etienne (Étienne Barrié)
11:26 AM Revision 85b04616 (git): Revert and ignore template-injection error at capi extension workflow
hsbt (Hiroshi SHIBATA)
11:26 AM Revision b8d71484 (git): Fix: Use shell syntax for SETARCH command
hsbt (Hiroshi SHIBATA)
11:26 AM Revision eae6d265 (git): Use zizmorcore/zizmor-action
hsbt (Hiroshi SHIBATA)
11:26 AM Revision 520b0898 (git): Rename CodeQL workflow to Check SAST tool
hsbt (Hiroshi SHIBATA)
11:26 AM Revision 4b9af00c (git): Refactor GitHub Actions to use environment variables
hsbt (Hiroshi SHIBATA)
11:26 AM Revision 64d63ba0 (git): Fix: Set persist-credentials to false for actions/checkout
hsbt (Hiroshi SHIBATA)
11:26 AM Revision f47c57d3 (git): Add zizmor ignore directives for github-env
hsbt (Hiroshi SHIBATA)
11:26 AM Revision 41c11dc3 (git): Expose inputs as env vars in composite actions
hsbt (Hiroshi SHIBATA)
11:26 AM Revision aef8fd05 (git): Add Zizmor baseline ignore configuration
hsbt (Hiroshi SHIBATA)
11:26 AM Revision 0b342d29 (git): Add Zizmor job to workflow
hsbt (Hiroshi SHIBATA)
04:02 AM Revision 373eacb8 (git): [ruby/rubygems] Skip Windows group warning for realworld specs
https://github.com/ruby/rubygems/commit/98a355dcfb hsbt (Hiroshi SHIBATA)
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...
alanwu (Alan Wu)
02:29 AM Revision 4eadf035 (git): ZJIT: Check special_const_p() before using rb_obj_shape_id()
It only works with heap objects. alanwu (Alan Wu)
02:21 AM Revision 55f2a8d1 (git): Bump up to latest GitHub Actions versions
hsbt (Hiroshi SHIBATA)
02:21 AM Revision 903b709c (git): Pin GitHub Actions to specific SHAs
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom