Activity
From 02/27/2026 to 03/05/2026
Today
-
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)
-
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... - 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
02/27/2026
-
11:15 PM Revision 8fb5df26 (git): win32/configure.bat accept empty prefix
- Currently, running `win32/configure.bat --prefix=` outputs `prefix = \=/` in the Makefile.
Fix this to prevent invalid values from being output. - 08:23 PM Revision 93483097 (git): Bump actions/upload-artifact
- Bumps the github-actions group with 1 update in the / directory: [actions/upload-artifact](https://github.com/actions/upload-artifact).
Updates `actions/upload-artifact` from 6.0.0 to 7.0.0
- [Release notes](https://github.com/actions/... -
08:23 PM Revision 33410226 (git): Add setup-ruby step for tool scripts
- 08:23 PM Revision a5af2ada (git): Fix a typo in bundled_gems.yml
-
08:23 PM Revision b4367db8 (git): Run GitHub releases updater in workflow
-
08:23 PM Revision e43b35f2 (git): Detect previous Ruby version in update script
- Read include/ruby/version.h to compute the previous Ruby version and
use it as the default FROM argument in
tool/update-NEWS-github-release.rb.
Add a workflow step to run the script for Ruby 4.0 in bundled_gems.yml
Detect previous Ruby ... -
08:23 PM Revision 9b0a3db0 (git): Preserve gem sub-bullets in NEWS.md
-
08:23 PM Revision 7c753351 (git): Run `ruby tool/update-NEWS-github-release.rb 4.0 --update`
-
08:23 PM Revision 4ab23834 (git): Add update mode and NEWS.md parsing
- Read NEWS.md locally when "news" is requested, parse stdlib updates,
collect GitHub release ranges per gem, and optionally update NEWS.md
in-place with sub-bullets and footnote links when --update is passed -
08:23 PM Revision aec4b44d (git): Add tool to update NEWS from GitHub releases
-
08:00 PM Revision c57d594f (git): ZJIT: Use LoadField for Class/Module ivars (#16252)
- Assume only one box (root box) and invalidate otherwise. Drops C calls to `rb_ivar_get_at_no_ractor_check`.
Before:
```
Top-20 calls to C functions from JIT code (77.3% of total 64,311,573):
rb_vm_opt_send_w... - 06:13 PM Revision 50f51f75 (git): ZJIT: constant fold bitwise OR (|) operations (#16235)
- Continuation of https://github.com/ruby/ruby/pull/16226.
### Considerations
- The OR (`|`) operation in Rust has the same behavior as in Ruby (it compiles to a assembly `or` instruction: https://godbolt.org/z/5McGzj783);
- There are no ... - 06:04 PM Revision eafbf6e5 (git): ZJIT: Fix IsA effect
- 06:04 PM Revision 44fe95ea (git): ZJIT: Fix HasType effect
- 06:04 PM Revision d5cca099 (git): ZJIT: Fix GetEP effect
- 06:04 PM Revision 1e1d8332 (git): ZJIT: Remove GetLEP
- Use get_lvar_level and GetEP instead.
-
05:43 PM Revision 5d87dd6d (git): ZJIT: Handle splatkw YARV instruction (#16267)
- The most common cases are nil and hash, so just cover those. If we need to convert to a hash, we can handle that later.
-
05:39 PM Feature #21929 (Open): Add configure script options for instrumenting Rust builds
- Ruby at this moment optionally includes Rust bits. Right now this touches mostly YJIT and ZJIT.
Rust is a compiled language with various compile flags at various stages and approaches.
My ask is to provide a way to instrument compi... -
04:01 PM Revision 68080feb (git): parse.y: Unify to use only tagged references
- Unify references in rules that mix positional references and tagged
references. Leave the positional reference-only rules unchanged. - 03:33 PM Revision f3323b04 (git): ZJIT: Replace Getlocal with LoadSP or GetEP+LoadField (#16242)
- Since `GetLocal` (for `level > 0`) is now split into `GetEP` + `LoadField`(https://github.com/ruby/ruby/pull/16215),
we can remove the Insn and use `LoadSP` instead for the consistency.
Also removed a counter that appeared unnecessary. -
02:47 PM Revision 486f7fcc (git): parse.y: prefer @$ over @0 in empty-rule actions
-
02:14 PM Revision 2ecda70f (git): ZJIT: GuardType and GuardTypeNot can read from memory
- When guarding on anything but special const forms (`types::Immediate`),
we need to dereference the VALUE to load RBasic::flags and maybe
RBasic::class. Those are memory read effects. -
01:33 PM Bug #21927 (Closed): Prism: misleading error message for forwarding in lambda argument
- Applied in changeset commit:git|6af0de237935f162ee3089b314f0c33911d442da.
----------
[ruby/prism] Fix error message for block/lambda with `...` argument
They currently complain that the parent method is not forwarding.
But the actual p... -
11:08 AM Bug #21927: Prism: misleading error message for forwarding in lambda argument
- https://github.com/ruby/prism/pull/3947
-
04:06 AM Bug #21927 (Closed): Prism: misleading error message for forwarding in lambda argument
- Even in a forwarding method:
```console
$ ruby --parser=prism -e 'def m(...) ->(...){}; end'
-e: -e:1: syntax error found (SyntaxError)
> 1 | def m(...) ->(...){}; end
| ^~~ unexpected ... when the parent method ... -
01:33 PM Revision 6af0de23 (git): [ruby/prism] Fix error message for block/lambda with `...` argument
- They currently complain that the parent method is not forwarding.
But the actual problem is that these types of arguments simply don't
accept `...`
Fixes [Bug #21927]
https://github.com/ruby/prism/commit/0aa2363331 -
12:36 PM Misc #21928 (Open): Prism backport handling
- https://bugs.ruby-lang.org/issues/21927 got marked for backport for 4.0 and 3.4. It's a trivial fix but since prism is a gem, ruby should contain a released version of prism only.
3.4 in particular currently contains prism 1.5.2. Back... -
10:19 AM Bug #21925: Prism misparses standalone "in" pattern matching in "case/in"
- Likely a duplicate of or at the very least related to https://bugs.ruby-lang.org/issues/21674
@kddnewton can you take this? -
04:10 AM Revision 2239d543 (git): parse.y: narrow excessed_comma to block_param_def
- 02:57 AM Revision cded315c (git): [ruby/zlib] Avoid retrying on interrupt if there is no further work
- to be done.
(https://github.com/ruby/zlib/pull/121)
https://github.com/ruby/zlib/commit/c975060f02 -
01:49 AM Revision e276076a (git): The `case` expression is preferable to the pseudo-condition operator