Project

General

Profile

Activity

From 04/05/2026 to 04/11/2026

Today

06:14 AM Ruby Bug #21990: [ruby-talk:444791] Regression: Ruby 4.0 constantly crashing
The C backtrace in the crash report seem bogus. Almost none of it make sense. Most of the functions on the stack can't possibly call each others.
Using `gdb` or `lldb` to produce a backtrace from a core dump might help.
byroot (Jean Boussier)
05:57 AM Ruby Bug #21952 (Closed): Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
Applied in changeset commit:git|c0d86a0103de7130943d54b4a290b76ec7e0c135.
----------
class.c: rb_class_duplicate_classext also dup content of cvc_tbl
[Bug #21952]
Shallow copying the table result in the same memory being shared
betwee...
byroot (Jean Boussier)
04:13 AM Ruby Bug #21952: Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
As I commented, https://github.com/ruby/ruby/pull/16595 looks good to me. tagomoris (Satoshi Tagomori)
05:57 AM Ruby Revision c0d86a01 (git): class.c: rb_class_duplicate_classext also dup content of cvc_tbl
[Bug #21952]
Shallow copying the table result in the same memory being shared
between multiple box, causing double free when one of the box
is garbage collected.
byroot (Jean Boussier)

04/10/2026

09:34 PM Ruby Bug #21991 (Open): `$!` stays as the first exception in Ruby Box
Description
---
When Ruby Box is enabled (`RUBY_BOX=1`), `$!` inside `rescue` does not change after the first exception.
`$!` is expected to show the exception for each `rescue` block, but it always shows the first one.
Steps t...
tikkss (Tsutomu Katsube)
09:09 PM Ruby Revision 044a43f4 (git): ZJIT: Trace infer_types as a sub-pass of other passes (#16714)
This helps us see how much time it takes in compiler tracing. Max Bernstein
08:06 PM Ruby Bug #21990 (Open): [ruby-talk:444791] Regression: Ruby 4.0 constantly crashing
(Filed for a user on ruby-talk who can't get registered here for some reason)
After upgrade to ruby 4.0, all our Rails applications are continuously
crashing on different nodes at different locations.
All the applications were run...
zenspider (Ryan Davis)
07:35 PM Ruby Revision 4978bfb2 (git): ZJIT: `fmt::Debug` for VALUE in hex. Shorthand for rb_obj_info()
The default `{:?}` still always prints the pointer address and never
dereferences it, but now in hex.
The "alternate" flag lets you do `println!("{my_ruby_object:#?}")` and
get a rich printout like `VALUE(0x000000010232fd00 T_CLASS/Obje...
alanwu (Alan Wu)
07:32 PM Ruby Revision 5ffaaf04 (git): ZJIT: Assert no side exits in assert_compiles()
Most of the time, we want to assert that we compile and the compiled
code runs without exiting. A small number of tests trigger side exits,
and those are changed to use assert_compiles_allowing_exits().
```console
$ rg -F 'assert_compil...
alanwu (Alan Wu)
07:26 PM Ruby Revision 304d37f7 (git): ZJIT: Fix hanging loop (#16711)
https://github.com/ruby/ruby/pull/16122 (c272297e8a9f2b8034739b915707910b4e568479) worked for maximal SSA but
does not work for "normal" SSA. This is because it used information
propagating across block args/params as a proxy for trackin...
Max Bernstein
06:39 PM Ruby Revision 573b16aa (git): Bump RDoc to latest master (4913d56) (#16713)
Update the pinned RDoc revision to pick up the latest changes from
ruby/rdoc master.
st0012 (Stan Lo)
06:15 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
ufuk (Ufuk Kayserilioglu) wrote in #note-8:
How do get from compile time code generation to runtime compilation?
I am using these hacks I mentioned and many other related hacks to make a JIT compiler. My point is that using Ruby to ...
fredlinhares (Frederico Linhares)
08:30 AM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
@fredlinhares
A really long time ago, while i was working with ruby and wxWidgets (C++ lib), i worked on this:
https://github.com/Hanmac/rwx/blob/master/ext/main.hpp#L538
Where I was writing C macros to help me with writing getter...
Hanmac (Hans Mackowiak)
03:42 PM Ruby Revision 678b2c1a (git): [ruby/rubygems] Update man pages date
https://github.com/ruby/rubygems/commit/087625017a Edouard CHIN
03:42 PM Ruby Revision 21836339 (git): [ruby/rubygems] fix formatting for BUNDLE_PREFER_PATCH variable in man page
https://github.com/ruby/rubygems/commit/5bdf29f86c Ivan Kuchin
02:44 PM Ruby Revision c30d74b3 (git): Ensure version from bundled_gems is used in tool/rdoc-srcdir (#16712)
Use version from bundled_gems in tool/rdoc-srcdir
Previously, `tool/rdoc-srcdir` used `Dir.glob(...).first` to find
bundled gems like rdoc and tsort. This picks the first match
alphabetically, which can select a stale older version when...
st0012 (Stan Lo)
01:30 PM Ruby Revision 4245f8e1 (git): [DOC] Harmonize ::atime and #atime methods (#16620)
burdettelamar (Burdette Lamar)
01:06 PM Ruby Revision 7f4db64f (git): Emit already initialzed constant warnings in a single call
When decorating `Warning.warn`, it's much more convenient to get
the whole warning in a single string.
byroot (Jean Boussier)
11:30 AM Ruby Feature #20205: Enable `frozen_string_literal` by default
> we would benefit from a programmatic flag
It already exists:
```ruby
RubyVM::InstructionSequence.compile_option = {frozen_string_literal: true}
```
To be set early during the boot process (typically at the top of `config/bo...
byroot (Jean Boussier)
10:45 AM Ruby Feature #20205: Enable `frozen_string_literal` by default
I'm converting my Monolith (TableCheck) today to use it, and I realized that we would benefit from a programmatic flag `Ruby.enable_frozen_string_literal` (similar to `RubyVM::YJIT.enable` and Rails' `config.yjit = true`). You'd set this... johnnyshields (Johnny Shields)
09:56 AM Ruby Feature #20205: Enable `frozen_string_literal` by default
> Perhaps we can get major app maintainers like Shopify switching on RUBYOPT="--enable-frozen-string-literal" throughout their ecosystem?
The Shopify monolith has been compatible with frozen string literals for several years, or at l...
byroot (Jean Boussier)
05:42 AM Ruby Feature #20205: Enable `frozen_string_literal` by default
Hi, can we please make a concrete plan to get this done?
Perhaps we can get major app maintainers like Shopify switching on `RUBYOPT="--enable-frozen-string-literal"` throughout their ecosystem? And a push to add `frozen_string_literal:...
johnnyshields (Johnny Shields)
09:49 AM Ruby Revision cfec60d4 (git): dir.c: cache and revalidate working directory
`rb_dir_getwd_ospath()` is called quite frequently, but
the overwhelming majority of the time, the current directory
didn't change.
We can also assume that most of the time, `PATH_MAX` is enough
for `getcwd`, hence we can first attempt ...
byroot (Jean Boussier)
09:23 AM Ruby Feature #21987: Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
> Is this still the case? I removed some of this in
My bad. My first prototype of that change was months ago, this is indeed no longer the case.
> ...
Yes, that was my backup plan from the start. The problem is that on macOS, `open(2)...
byroot (Jean Boussier)
07:56 AM Ruby Feature #21987: Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
byroot (Jean Boussier) wrote:
> For some implementations, allocating a `T_DATA` to avoid leaks in case of failure.
Is this still the case? I removed some of this in https://github.com/ruby/ruby/commit/126b657bd103a1abf4b572ade557ffdc...
jhawthorn (John Hawthorn)
06:36 AM Ruby Feature #21987: Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
Hum, that's a case i didn't think of indeed... Might be a deal breaker. byroot (Jean Boussier)
02:26 AM Ruby Feature #21987: Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
byroot (Jean Boussier) wrote:
> This however assumes that C extensions or other native libraries never call `chdir(2)` after executing Ruby, or at least always reset it before yielding back to Ruby.
And no other process renames the d...
nobu (Nobuyoshi Nakada)
07:56 AM Ruby Revision b154cfa9 (git): Add a fastpath for `rb_str_normalize_ospath`
This extra check is a hotspot for path operations on
macOS.
It was added in 9962aad7b0184e385b40c26c5a109bff7abbe43c
because of a limitation of HFS+.
But all the invalid characters are outside of ASCII range,
and most paths are ASCII, ...
byroot (Jean Boussier)
06:37 AM Ruby Revision 36b0ae02 (git): Add single byte fast path to `File.expand_path`
Similar to previous changes to `File.join` & al.
```
compare-ruby: ruby 4.1.0dev (2026-04-09T12:24:09Z master c919778017) +PRISM [arm64-darwin25]
built-ruby: ruby 4.1.0dev (2026-04-09T17:42:24Z expand-path-mbenc 4fd047f73c) +PRISM [arm6...
byroot (Jean Boussier)
03:02 AM Ruby Revision 84412ffa (git): Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [actions/github-script](https://github.com/actions/github-script) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `actions/github-script...
dependabot[bot]
12:39 AM Ruby Revision 4c2ae6e2 (git): Always ensure room in rb_obj_embedded_size
Although the issue only occurred on debug builds, we should always be
requesting a size large enough to fit the object when it expands to the
heap, rather than just hoping the GC provides enough room.
jhawthorn (John Hawthorn)

04/09/2026

11:26 PM Ruby Revision 0c1ce03b (git): ZJIT: Make `hir::types::Class` not final and have it include metaclasses
Every class boots with a metaclass, and all metaclasses are subclasses
of Class, so `types::Class` has no business in `ExactBitsAndClass`.
In fact, we should never see an object whose RBasic::class is exactly
rb_cClass because classes ge...
alanwu (Alan Wu)
08:55 PM Ruby Revision 8aa2322b (git): Add slot size assertion to ar_force_convert_table
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
Co-authored-by: Matt Valentine-House <matt@eightbitraptor.com>
jhawthorn (John Hawthorn)
08:55 PM Ruby Revision 0b5862f4 (git): Don't use fixed-size hashes for cdhash
This caused out of bounds writes because of converting to a st_table.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
Co-authored-by: Matt Valentine-House <matt@eightbitraptor.com>
jhawthorn (John Hawthorn)
06:52 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
So, what you are doing is code-generation at compile time using ERB templates, which is cool! But, I find it a stretch to call it meta-programming, since the C code isn't writing C code at runtime, everything is happening at compile time... ufuk (Ufuk Kayserilioglu)
06:21 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
Let me try to elaborate as much as I can.
Rust is not as fast as C; it is as fast as the equivalent C. However, C allows us to use some valid memory management techniques that are impossible in Rust unless you use considerable amount...
fredlinhares (Frederico Linhares)
12:50 PM Ruby Bug #21984: RubyVM::AST can't tell if an array is passed to break/next/return
The honest answer is, not really. It's probably fine to stay as is, and I would be okay with closing this.
For context, I've been building a translation layer from RubyVM::AbstractSyntaxTree to Prism, hoping it might help with a migra...
kddnewton (Kevin Newton)
10:16 AM Ruby Bug #21984: RubyVM::AST can't tell if an array is passed to break/next/return
The same thing can be also said to `a=[1,2]` and `a=1,2`.
In Prism, these are both parsed as ArrayNode with/without opening and closing.
In AbstractSyntaxTree, the non-abstract parts (bracket) are dropped. I think it's just a restricti...
tompng (tomoya ishida)
12:24 PM Ruby Revision c9197780 (git): Remove extra sentinel from shape capacities
This isn't a 0 terminated list anymore because we iterate over
heaps_count directly. So we don't need to allocate an extra byte for the
sentinel
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 3c28bb53 (git): Make it obvious that field count guard is for debug
This is because when `RVALUE_OVERHEAD` is positive, ie. when
`RACTOR_CHECK_MODE` is enabled and we need to store the pointer to the
owning ractor, we need to make sure there is enough space to store it.
With the previous size pools the ...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 5381f0fa (git): Replace sweeping_heaps map with a counter
We implemented some bit twiddling logic with an unsigned int to have a
neat way of tracking which heaps were currently sweeping, but we
actually don't need to care which heap is sweeping right now, just
whether some are or not, so we can...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 2fd891f2 (git): Use the pre-processor to generate slot sizes and reciprocals
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 80e3a8d2 (git): Fix zjit hir tests
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision a8009c98 (git): Allow flex in heap growth threshold
Add a 7/8 multiplier to the min_free_slots checks in
gc_sweep_finish_heap and gc_marks_finish, allowing heaps to be up to
~12.5% below the free slots target without triggering a major GC or
forced growth.
With 12 heaps instead of 5, eac...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 5c968c50 (git): Cache has_sweeping_pages as a bitfield
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision aa5f1922 (git): Update tests for new pool layout
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision b6658c1e (git): Introduce RVALUE_SIZE GC constant
Add GC::INTERNAL_CONSTANTS[:RVALUE_SIZE] to store the usable size
(excluding debug overhead) of the smallest pool that can hold a standard
RVALUE.
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision c9b70883 (git): Introduce power-of-two size pools
Replace the RVALUE_SLOT_SIZE-multiplier based pool sizes with explicit
power-of-two (and near-power-of-two) slot sizes. On 64-bit this gives
12 heaps (32, 40, 64, 80, 96, 128, 160, 256, 512, 640, 768, 1024)
instead of 5, providing finer ...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 2567e76e (git): Handle small pools in shape capacity calculation
When pool slot sizes can be smaller than sizeof(struct RBasic) (e.g. a
32-byte pool on 64-bit where RBasic is 16 bytes), the capacity
calculation would underflow. Guard against this by setting capacity to
0 for pools too small to hold fi...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 93710423 (git): Guard rb_obj_embedded_size for zero fields
With smaller pool sizes (e.g. 32 bytes), an RObject with 0 embedded
fields would request a size smaller than the minimum meaningful object.
Ensure at least 1 field worth of space so the embedded size is always
large enough for a valid RO...
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision 772bde30 (git): Use sizeof(VALUE) for pointer alignment checks
eightbitraptor (Matt V-H)
12:24 PM Ruby Revision ce9d6c89 (git): Rename SIZE_POOL_COUNT to HEAP_COUNT in tests
eightbitraptor (Matt V-H)
11:48 AM Ruby Bug #21988 (Closed): `return a, &b` should be syntax error
Applied in changeset commit:git|51a3f0847782095340df5dbc8fb87450dbc1fbe7.
----------
[ruby/prism] Reject `return` and similar with block pass argument
Same handling as for `yield`. Fixes [Bug #21988]
https://github.com/ruby/prism/comm...
Earlopain (Earlopain _)
11:12 AM Ruby Bug #21988: `return a, &b` should be syntax error
https://github.com/ruby/prism/pull/4072 Earlopain (Earlopain _)
10:11 AM Ruby Bug #21988 (Closed): `return a, &b` should be syntax error
`return a, &b` is syntax error in parse.y, but accepted in Prism
~~~ruby
Prism.parse_success?('return a, &b')
#=> true
RubyVM::AbstractSyntaxTree.parse('return a, &b')
#=> block argument should not be given (SyntaxError)
~~~
W...
tompng (tomoya ishida)
11:48 AM Ruby Revision 51a3f084 (git): [ruby/prism] Reject `return` and similar with block pass argument
Same handling as for `yield`. Fixes [Bug #21988]
https://github.com/ruby/prism/commit/2dd20183ad
Earlopain (Earlopain _)
10:45 AM Ruby Bug #21989 (Open): Fiber initialization failure on WASI/ruby.wasm raises TypeError instead of FiberError
## Summary
When building Ruby for WASM and using it via `ruby.wasm`, if Fiber initialization fails, the following error may occur:
```text
TypeError: wrong argument type false (expected Class)
```
instead of the expected `Fibe...
ledsun (shigeru nakajima)
09:13 AM Ruby Feature #21987 (Open): Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
### Context
I'm looking at optimizing Ruby applications boot time, and one very common operation that seems wasteful is that when interpreting relative paths
we keep calling `ruby_getcwd()`, even though its result almost never change...
byroot (Jean Boussier)
08:34 AM Ruby Revision 03757030 (git): mkmf: check for C++ compiler
It may be set to "false" if usable compiler is not found. nobu (Nobuyoshi Nakada)
06:10 AM Ruby Revision b94a7ec7 (git): Suppress rev-parse error message when out-of-place build
nobu (Nobuyoshi Nakada)
05:19 AM Ruby Revision c091c186 (git): Fix thread leaks
Wait for terminated threads to finish. nobu (Nobuyoshi Nakada)
05:13 AM Ruby Revision 4b6a467a (git): mkmf: skip if C++ compiler not found
nobu (Nobuyoshi Nakada)
05:05 AM Ruby Bug #21986 (Closed): RubyVM::AST incorrect location for literals followed by modifier `if`
Applied in changeset commit:git|4644e4f2fafe45e2c49f18bc9712d0f5fff3d341.
----------
[Bug #21986] Fix location of numeric literal
When checking for suffixes, do not flush the numeric literal token
even if no suffix is found.
nobu (Nobuyoshi Nakada)
04:32 AM Ruby Revision 4644e4f2 (git): [Bug #21986] Fix location of numeric literal
When checking for suffixes, do not flush the numeric literal token
even if no suffix is found.
nobu (Nobuyoshi Nakada)
03:18 AM Ruby Revision f4b5566d (git): mkmf: grep all occurrences in cpp output
Apple clang aborts if cpp output is closed in middle, and leaves the
preprocessed source and reproduction shell script.
nobu (Nobuyoshi Nakada)
03:18 AM Ruby Revision aaa27ee0 (git): mkmf: Redirect egrep command input
nobu (Nobuyoshi Nakada)
03:18 AM Ruby Revision f104525c (git): mkmf: cpp_command in C++ mode
nobu (Nobuyoshi Nakada)
02:25 AM Ruby Revision a4fa75ee (git): Bump taiki-e/install-action
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.75.0 to 2.75.1
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]

04/08/2026

10:49 PM Ruby Revision 949bee21 (git): Add ruby_version_is guard to CVE-2019-8322 spec for changing displayed message
hsbt (Hiroshi SHIBATA)
10:49 PM Ruby Revision 4edfd93c (git): Merge RubyGems/Bundler 4.0.10
hsbt (Hiroshi SHIBATA)
10:49 PM Ruby Revision dc13b5ad (git): Merge RubyGems/Bundler 4.0.9
hsbt (Hiroshi SHIBATA)
10:49 PM Ruby Revision 36084c24 (git): Merge RubyGems/Bundler 4.0.8
hsbt (Hiroshi SHIBATA)
10:49 PM Ruby Revision f13b3911 (git): Merge RubyGems/Bundler 4.0.7
hsbt (Hiroshi SHIBATA)
10:49 PM Ruby Revision 019c261c (git): Merge RubyGems/Bundler 4.0.6
hsbt (Hiroshi SHIBATA)
10:18 PM Ruby Revision 6ccabf1e (git): ZJIT: Guard an array is not frozen before popping from it
Max Bernstein
10:18 PM Ruby Revision ddb60fe3 (git): ZJIT: Guard that an array is not frozen before modifying it
ArrayPush calls out to the fast-path, not checking for frozen-ness. In
debug mode, this leads to crashes. In release mode, silent erroneous
modifications.
Max Bernstein
10:18 PM Ruby Revision 9b6066c4 (git): ZJIT: Suggest correct command in bisect script
Max Bernstein
10:18 PM Ruby Revision 64a49051 (git): ZJIT: Detect bad configuration in make command in bisect script
Max Bernstein
10:18 PM Ruby Revision b2432095 (git): ZJIT: Require Ruby 3.4+ in bisect script
Max Bernstein
09:45 PM Ruby Revision b53186a4 (git): ZJIT: Load immediate into register before masking (#16677)
This otherwise causes a crash on e.g. https://github.com/ruby/ruby/pull/15220:
thread '<unnamed>' (18071) panicked at zjit/src/codegen.rs:2511:21:
internal error: entered unreachable code: with_num_bits should not be used for: V...
Max Bernstein
09:44 PM Ruby Revision aa7e671c (git): ZJIT: [DOC] induce_breakpoint! behaves differently when ZJIT is on
alanwu (Alan Wu)
09:05 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
fredlinhares (Frederico Linhares) wrote in #note-5:
> Sorry for the delay. I was busy until very recently, but I will be more active from now on. Here is the repository: https://gitlab.com/fredlinhares/pre_c
There is hardly any cod...
ufuk (Ufuk Kayserilioglu)
05:42 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
Sorry for the delay. I was busy until very recently, but I will be more active from now on. Here is the repository: https://gitlab.com/fredlinhares/pre_c fredlinhares (Frederico Linhares)
08:24 PM Ruby Revision 82470d8b (git): Allow fixed size hashes to be allocated in smaller slots
When we allocate a RHash using `rb_hash_new_capa()`, if `capa` is
larger than `8` it's directly allocated as an `st_stable` in a `80B`
slot.
However if the requested size if lesser or equal to 8, we allocate
it as an `ar_table` in a `16...
byroot (Jean Boussier)
07:52 PM Ruby Revision d6528d63 (git): compile.c: avoid needless rehash
These were introduced in 165e10b6cf73f723c2f6af676b70aeb2d8cf85c9
when these hashes were allocated with `rb_hash_new()`.
But since 4fb1438b9d7f617c7a8dc37935a960a24219e697 they are allocated
with the right size, making the rehashing pur...
byroot (Jean Boussier)
07:00 PM Ruby Revision 5cf6c842 (git): rb_gc_obj_needs_cleanup_p: skip sweep for most imemo/fields
There is only two rare cases where they need to be sweeped:
- If they are so large that they're heap allocated.
- If they have an object_id (and id2ref_tbl exist but
we can't check that here)
byroot (Jean Boussier)
06:26 PM Ruby Revision 30e31488 (git): ZJIT: Fix land race (#16686)
Just update some HIR tests. Max Bernstein
05:50 PM Ruby Bug #21986 (Closed): RubyVM::AST incorrect location for literals followed by modifier `if`
```
irb(main):001> RubyVM::AbstractSyntaxTree.parse("1.0if true")
=> (SCOPE@1:0-1:10 tbl: [] args: nil body: (IF@1:0-1:10 (TRUE@1:6-1:10) (FLOAT@1:3-1:3 1.0) nil))
irb(main):002> RubyVM::AbstractSyntaxTree.parse("1if true")
=> (SCOPE...
kddnewton (Kevin Newton)
05:34 PM Ruby Revision 6d6f927d (git): ZJIT: Merge reduce_send_without_block_to_ccall and reduce_send_to_ccall (#16675)
Thread through special handling of the potential block argument. Max Bernstein
05:34 PM Ruby Revision d3f7d2c7 (git): ZJIT: Pull load out of IsBlockParamModified (#16673)
This makes IsBlockParamModified pure and the loads more understandable
to load-store forwarding.
Max Bernstein
04:45 PM Ruby Revision 8886990a (git): ZJIT: Add polymorphic support for getblockparamproxy (#16636)
Nozomi Hijikata
02:34 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
Oh, gotcha. Yeah we would not be able to optimize C code. Maybe one day it will motivate a pure Ruby impl but today is not that day. tekknolagi (Maxwell Bernstein)
07:06 AM Ruby Feature #21982: Add `Decimal` as a core numeric class
> ZJIT will be able to "see through" and even elide general Ruby object allocations when possible.
I assume this will remain limited to objects and methods defined in Ruby? `BigDecimal` is implemented in C, and I don't think it could...
byroot (Jean Boussier)
02:17 PM Ruby Bug #21984: RubyVM::AST can't tell if an array is passed to break/next/return
I don't think that fix works:
```
$ ./ruby -e 'pp RubyVM::AbstractSyntaxTree.parse("tap { break 1, 2 }")'
(SCOPE@1:0-1:18 tbl: [] args: nil body: (ITER@1:0-1:18 (FCALL@1:0-1:3 :tap nil) (SCOPE@1:4-1:18 tbl: [] args: nil body: (BREAK...
kddnewton (Kevin Newton)
04:53 AM Ruby Bug #21984: RubyVM::AST can't tell if an array is passed to break/next/return
Changing this causes the rbs tests to fail.
https://github.com/ruby/ruby/actions/runs/24117591586/job/70364654030?pr=16678#step:14:828
``` diff
class Hello
- def with_return: () -> (1 | "2" | :x)
? ^
+ ...
nobu (Nobuyoshi Nakada)
02:02 AM Ruby Bug #21984 (Open): RubyVM::AST can't tell if an array is passed to break/next/return
```
irb(main):005> RubyVM::AbstractSyntaxTree.parse("tap { break [1, 2, 3] }")
=> (SCOPE@1:0-1:23 tbl: [] args: nil body: (ITER@1:0-1:23 (FCALL@1:0-1:3 :tap nil) (SCOPE@1:4-1:23 tbl: [] args: nil body: (BREAK@1:6-1:21 (LIST@1:12-1:21 (...
kddnewton (Kevin Newton)
01:00 PM Ruby Revision 7209523f (git): [ruby/openssl] kdf: fix wrong OPENSSL_cleanse() calls
Embarrassingly, the previous commits introduced OPENSSL_cleanse() calls
against the temporary struct instead of the buffer content. Thanks to
nagachika for noticing.
https://github.com/ruby/openssl/commit/8eca3efad4
rhenium (Kazuki Yamaguchi)
11:08 AM Ruby Revision a5c9e840 (git): [ruby/openssl] kdf: release GVL in OpenSSL::KDF.scrypt
scrypt is another password hashing algorithm, so releasing the GVL is
useful.
https://github.com/ruby/openssl/commit/dd2f6ba892
rhenium (Kazuki Yamaguchi)
11:08 AM Ruby Revision 5c7e3c20 (git): [ruby/openssl] kdf: release GVL in OpenSSL::KDF.pbkdf2_hmac
Since PBKDF2 runs single-threaded and is typically configured to take
several hundred milliseconds or longer, it is a perfect candidate to be
run without the GVL.
https://github.com/ruby/openssl/commit/2a24966414
rhenium (Kazuki Yamaguchi)
10:59 AM Ruby Revision ad82b727 (git): Skip `imemo_tmpbuf` sweeping when the buffer was eagerly freed.
`imemo_tmpbuf` can be skipped if `ptr` is `NULL` which is often
the case if `RB_ALLOCV_END` was used.
byroot (Jean Boussier)
08:25 AM Ruby Revision 1fb0aca3 (git): imemo.h: Extract rb_imemo_needs_cleanup_p
byroot (Jean Boussier)
05:50 AM Ruby Bug #21985 (Closed): RubyVM::AST negative numbers do not include - in location
Applied in changeset commit:git|24a2ba09af13b7c969733ea9370ad59d2442f4c9.
----------
[Bug #21985] Include the `-` in the negative numbers location
nobu (Nobuyoshi Nakada)
02:30 AM Ruby Bug #21985 (Closed): RubyVM::AST negative numbers do not include - in location
```
irb(main):007> RubyVM::AbstractSyntaxTree.parse("-1")
=> (SCOPE@1:0-1:2 tbl: [] args: nil body: (INTEGER@1:1-1:2 -1))
irb(main):008>
```
kddnewton (Kevin Newton)
05:50 AM Ruby Revision 24a2ba09 (git): [Bug #21985] Include the `-` in the negative numbers location
nobu (Nobuyoshi Nakada)
05:43 AM Ruby Revision 0cebedd0 (git): Fix the order of `assert_equal` arguments
The expected value should be first, second the actual value. nobu (Nobuyoshi Nakada)
05:39 AM Ruby Revision c8c0af3c (git): [ruby/rubygems] Fix grammar in gem installer cache comment
Change "and lock the mutex" to "and to lock the mutex" for correct
parallel infinitive structure.
https://github.com/ruby/rubygems/commit/94f9267b72
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
05:39 AM Ruby Revision 539cb5e1 (git): [ruby/rubygems] Use eq matcher instead of be for string comparison in newgem template
be checks object identity which will fail for newly-allocated strings.
eq checks value equality and is the correct matcher here.
https://github.com/ruby/rubygems/commit/828440937b
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@a...
hsbt (Hiroshi SHIBATA)
05:39 AM Ruby Revision f5ad01ea (git): [ruby/rubygems] Fix wrong expected value in Rust extension test templates
The Rust function hello("world") returns "Hello world, from Rust!" but
the Ruby test templates expected "Hello earth, from Rust!", causing
generated tests to fail immediately after bundle gem --ext=rust.
https://github.com/ruby/rubygems...
hsbt (Hiroshi SHIBATA)
05:39 AM Ruby Revision 42b74bdb (git): [ruby/rubygems] Fix typos in comments and documentation
https://github.com/ruby/rubygems/commit/72bdf54b6d
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
05:05 AM Ruby Revision b11091ca (git): [ruby/rubygems] Use distinct gemspec filenames in stub_with_version and stub_without_version helpers
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/4028db0e-e050-48af-9704-4219653a4753
https://github.com/ruby/rubygems/commit/951ef62f76
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
05:05 AM Ruby Revision fdc2a611 (git): [ruby/rubygems] Fix gemspec filename inconsistencies in stub_with_version and stub_without_version
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/8de78edb-b0d3-4fd3-bdad-898184561abd
https://github.com/ruby/rubygems/commit/5a87b86515
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
04:27 AM Ruby Revision 3f850711 (git): [ruby/rubygems] Fix typo in test description: 'to' -> 'do'
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/9cf2fa2e-02a9-4dde-a833-8ad11974e1eb
https://github.com/ruby/rubygems/commit/5ac4c8400b
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
04:24 AM Ruby Revision a0092d2a (git): [ruby/rubygems] Fix test_execute_allowed_push_host response message to match freebird gem
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/61efd9ab-67d3-4ce2-b81d-4b6e8ef07f99
https://github.com/ruby/rubygems/commit/bf73b51866
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
04:24 AM Ruby Revision 6d4e0064 (git): [ruby/rubygems] Fix lockfile DEPENDENCIES section to use 'rubocop' instead of 'parallel_tests'
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/dd120552-e56f-4a0e-9143-ec483aa07bfc
https://github.com/ruby/rubygems/commit/56a98274c3
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
03:52 AM Ruby Revision 76eb974b (git): [ruby/rubygems] Fix inconsistent indentation at line 481 in git_spec.rb
Agent-Logs-Url: https://github.com/ruby/rubygems/sessions/a9efe3b4-99c9-4af2-9954-a65a2859edfc
https://github.com/ruby/rubygems/commit/3d4e90a355
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
02:41 AM Ruby Revision 9232d14a (git): [DOC] Fill missing stars
nobu (Nobuyoshi Nakada)
02:24 AM Ruby Revision 3e299ba8 (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.74.0 to 2.75.0
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]

04/07/2026

10:11 PM Ruby Bug #21640: Core Pathname is missing 3 methods / is partially-defined
This should be solved with https://github.com/ruby/ruby/pull/16358, great! Eregon (Benoit Daloze)
07:01 PM Ruby Revision f62bec1b (git): Fix sync for `syntax_suggest`
It is a bit special in that is uses `spec` for tests. Since https://github.com/ruby/ruby/pull/15015 those did not
get synced anymore.
This fixes the mapping to what is was before and pulls in missing changes
Earlopain (Earlopain _)
06:57 PM Ruby Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
I am curious about this gem and will give it a read over if you post the link here. tekknolagi (Maxwell Bernstein)
06:48 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
I am hopeful that in the medium-long term, ZJIT will be able to "see through" and even elide general Ruby object allocations when possible. We have some more cleanup and feature work before that becomes possible (for example, a function ... tekknolagi (Maxwell Bernstein)
05:03 PM Ruby Revision d7da1987 (git): [ruby/syntax_suggest] Rename lex to token where appropriate
I had a bit of trouble following what is going on.
Lexing produces tokens, this renames to reflect that.
https://github.com/ruby/syntax_suggest/commit/d3386ab6f4
Earlopain (Earlopain _)
04:28 PM Ruby Revision 3a5bb48c (git): Fix "attrest" typo (#16672)
Alexander Momchilov
04:19 PM Ruby Revision 406c2fa6 (git): [ruby/syntax_suggest] Fix typo for %I delimiter check
Also add tests for the other types which currently don't have one
https://github.com/ruby/syntax_suggest/commit/db2dca2def
Earlopain (Earlopain _)
04:10 PM Ruby Revision 17e77473 (git): [ruby/syntax_suggest] Remove now unnecessary `core_ext` fallback
https://github.com/ruby/syntax_suggest/commit/c6bd4b53e6 Earlopain (Earlopain _)
04:10 PM Ruby Revision 27d32327 (git): [ruby/syntax_suggest] Remove workaround for ripper not lexing the entire source
Maybe ripper fixed it since then. But prism also doesn't have this problem.
https://github.com/ruby/syntax_suggest/commit/8bc383b2a4
Earlopain (Earlopain _)
04:10 PM Ruby Revision 63a90d20 (git): [ruby/syntax_suggest] Prism is always present on Ruby 3.3
Allows to remove some compatibility code with ripper
https://github.com/ruby/syntax_suggest/commit/3f2e9a7657
Earlopain (Earlopain _)
04:10 PM Ruby Revision 76016cc3 (git): [ruby/syntax_suggest] Raise minimum supported ruby version to 3.3
I want to start porting this to prism without the translation layer.
https://github.com/ruby/syntax_suggest/commit/540d4840ab
Earlopain (Earlopain _)
10:24 AM Ruby Revision 2fda295c (git): [DOC] Doc for File::Stat
burdettelamar (Burdette Lamar)
08:26 AM Ruby Revision fcd21008 (git): Allow sharing middlesubstring if the terminator is present
Sharing middle substrings have been behind a compilation flags for
a very long time, and it's unclear if we'll ever make it the default.
However, we can still share middle substrings without breaking the
zero-terminated contract if the ...
byroot (Jean Boussier)
08:25 AM Ruby Bug #21983 (Closed): RubyVM::AST no way to find &nil
Applied in changeset commit:git|13926009ba829f42037719b9a163a41a8d67abed.
----------
[Bug #21983] Make `&nil` distinguishable from nonexistent block arg
nobu (Nobuyoshi Nakada)
08:23 AM Ruby Revision 13926009 (git): [Bug #21983] Make `&nil` distinguishable from nonexistent block arg
nobu (Nobuyoshi Nakada)
08:15 AM Ruby Revision 42e0660b (git): string.c: str_subseq propagate coderange when it is 7bit
Any substring of a 7bit string will be 7bit. byroot (Jean Boussier)
05:10 AM Ruby Revision 4c659a98 (git): [ruby/rubygems] Address review feedback on tmp directory path resolution
Use source_root.parent instead of hardcoded relative path to derive the
repository root, so the code remains correct if the support file is ever
moved. Also fix the example Gemfile source path in DEBUGGING.md to
reflect the new top-level...
hsbt (Hiroshi SHIBATA)
05:10 AM Ruby Revision 7b77603c (git): [ruby/rubygems] Move bundler test tmp directory from bundler/tmp to top-level tmp
The bundler tests were writing temporary files to bundler/tmp, but this
moves them to the repository's top-level tmp directory instead, which is
already covered by .gitignore. All references in CI workflows, SimpleCov
filters, rubocop ex...
hsbt (Hiroshi SHIBATA)
02:25 AM Ruby Revision 90924bc3 (git): Bump the github-actions group across 1 directory with 3 updates
Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) and [taiki-e/install-action](https:/... dependabot[bot]
12:17 AM Ruby Revision fa8c9194 (git): ZJIT: Profiling: Separate bits for T_CLASS and T_MODULE
So I don't need to use is_subclass_of(). We already have two branches
for the two types during profiling anyways.
alanwu (Alan Wu)
12:17 AM Ruby Revision 158c1fdb (git): ZJIT: Print the Cptr, not a pointer to the pointer
Previously, we had none-sensical lines such as:
```
v15:CPtr[CPtr(0x1008)] = Const CPtr(0x1010)
```
Which was a contradiction as the pointer in the type specialization
should match the pointer on the right hand side.
alanwu (Alan Wu)
12:17 AM Ruby Revision 35346add (git): ZJIT: Print CUInt64 in hex when sign bit is set
It's likely some sort of mask or flags. Hexadecimal is more compact. alanwu (Alan Wu)
12:17 AM Ruby Revision d2653493 (git): ZJIT: Guard `T_*` in addition to shape in polymorphic getivar
This is a8f3c34556 ("ZJIT: Add missing guard on ivar access on
T_{DATA,CLASS,MODULE}") but for the polymorphic implementation in HIR
build.
alanwu (Alan Wu)

04/06/2026

10:36 PM Ruby Revision a2a69b42 (git): Add assertion to rb_class_alloc
We should only ever call rb_class_alloc with a T_CLASS. Adding this
assert/assumption allows us to elide later checks for T_CLASS>
jhawthorn (John Hawthorn)
10:36 PM Ruby Revision 20211460 (git): Use RB_BUILTIN_TYPE in RCLASS_SINGLETON_P
This should avoid us emitting the check for a special constant. jhawthorn (John Hawthorn)
10:33 PM Ruby Revision 3e851ea7 (git): Avoid box st_lookup in rb_class_real
jhawthorn (John Hawthorn)
09:38 PM Ruby Revision 7687c4d6 (git): ZJIT: Trace compile events and invalidation events (#16666)
Trace compiles with `--zjit-trace-compiles` and invalidation events with `--zjit-trace-invalidation`. See [sample trace](https://ui.perfetto.dev/#!/?url=https://bernsteinbear.com/tmp-perfetto/perfetto-24803.fxt) (in a moment, when the fi... Max Bernstein
08:42 PM Ruby Revision 8dd73008 (git): ZJIT: Replace Option<i32> with Recompile enum for side exit recompilation (#16665)
k0kubun (Takashi Kokubun)
06:42 PM Ruby Revision 70e8654b (git): Update to ruby/spec@9ccd716
Eregon (Benoit Daloze)
06:42 PM Ruby Revision 8d6c676f (git): Update to ruby/mspec@e1e5d4b
Eregon (Benoit Daloze)
05:53 PM Ruby Revision 16da5f23 (git): Revert "Double sweep byte budget to preserve heap 1 behavior"
This reverts commit c617c5ec85ff69a5a8b13c56d51fcd234c00e1e2. eightbitraptor (Matt V-H)
05:53 PM Ruby Revision 7ddcaa40 (git): Double sweep byte budget to preserve heap 1 behavior
Anchors the historical 2048/1024 slot counts on the 80-byte
heap instead of the 40-byte heap. This isolates whether the
major GC elimination seen in railsbench was caused by heap 1's
halved budget in the previous commit.
eightbitraptor (Matt V-H)
05:53 PM Ruby Revision 39381957 (git): Convert incremental sweep budget from slots to bytes
Larger slot pools are less heavily used, so a fixed slot count
over-services them relative to allocation pressure. Divide a
byte budget by heap->slot_size so the effective per-step slot
count tapers inversely with slot size.
eightbitraptor (Matt V-H)
04:47 PM Ruby Bug #21983: RubyVM::AST no way to find &nil
I am guessing that the `&nil` case should read `block: false` by comparing it to the `**nil` case:
```shell
❯ ruby -e 'pp RubyVM::AbstractSyntaxTree.parse("def foo(**nil); end")'
(SCOPE@1:0-1:19
tbl: []
args: nil
body:
(DEFN...
ufuk (Ufuk Kayserilioglu)
03:41 PM Ruby Bug #21983 (Closed): RubyVM::AST no way to find &nil
```
$ ./ruby -e 'pp RubyVM::AbstractSyntaxTree.parse("def foo(&nil); end")'
(SCOPE@1:0-1:18
tbl: []
args: nil
body: (DEFN@1:0-1:18 mid: :foo body: (SCOPE@1:0-1:18 tbl: [] args: (ARGS@1:8-1:12 pre_num: 0 pre_init: nil opt: nil fir...
kddnewton (Kevin Newton)
01:03 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
I don't have a particular opinion on this feature, but if the main concern is performance, I think `bigdecimal` could likely be optimized first. Of course having to allocate an object will always be slower than an immediate, but as menti... byroot (Jean Boussier)
05:59 AM Ruby Feature #21982: Add `Decimal` as a core numeric class
What version of bigdecimal did you use for the benchmark?
We've released [bigdecimal v4.1.1](https://github.com/ruby/bigdecimal/releases/tag/v4.1.1) 2 days ago.
The calculation performance is improved in this version by supporting an e...
mrkn (Kenta Murata)
12:40 PM Ruby Revision 0e94ca39 (git): [ruby/prism] Implement `on_op` for ripper
Mostly the same as for `on_kw`.
Stop comparing order for a handful of events. They are emitted by ripper in a order that is
not easy for prism to replicate. For example in`foo, bar, baz = 123`, `op` for `=` is emitted
before the last ma...
Earlopain (Earlopain _)
09:49 AM Ruby Revision a371a207 (git): [ruby/resolv] Refine `Resolv::LOC::Alt#to_s`
Extract the first element instead of `join.to_i` (`String#unpack1` is
available since ruby 2.4.0, but this gem still supports 2.3).
https://github.com/ruby/resolv/commit/f518da95ae
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision 380f9477 (git): [ruby/resolv] Tighten argument check in `Resolv::LOC::Alt.create`
Limit the range from -100 km to the upper limit of the 32-bit
representation.
https://github.com/ruby/resolv/commit/e6dfbe7cb0
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision 38411cad (git): [ruby/resolv] Fix centimeters representation in `Resolv::LOC::Size#to_s`
`Size` smaller than 1m was represented as rational.
```ruby
Resolv::LOC::Size.create("0.01m").to_s #=> "1/100m"
```
Fix to represent in the proper form for `create`.
https://github.com/ruby/resolv/commit/2ff9e0585d
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision b59ae161 (git): [ruby/resolv] Tighten argument check in `Resolv::LOC::Size.create`
Limit the size to between 0cm and less than 100,000km.
https://github.com/ruby/resolv/commit/9d9e0c3044
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision d6518b19 (git): [ruby/resolv] Fix subsecond representation in `Resolv::LOC::Coord#to_s`
- Leading zeros in fractional part are significant, must not be
suppressed.
- Use `Integer#divmod` to calculate division and module at once.
- Use simple comparison for exact match than regexp.
https://github.com/ruby/resolv/commit/0e...
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision 6527727c (git): [ruby/resolv] Tighten argument check in `Resolv::LOC::Coord.create`
Limit the east-west direction to 180 degrees or less and the
north-south direction to 90 degrees or less, respectively.
https://github.com/ruby/resolv/commit/8075a1fe76
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision 90e2253d (git): [ruby/resolv] Fix `Resolv::LOC::Coord` hemisphere calculation
Fix `Resolv::LOC::Coord.create` hemisphere handling for LOC
coordinates. `hemi` was always `1` because `m[4]` matched `([NESW])`.
https://github.com/ruby/resolv/commit/043b5bf624
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision 53b5f9ea (git): [ruby/resolv] Use `Regexp#match` to achieve matched data
This method is available since ruby 1.9.0.
https://github.com/ruby/resolv/commit/1e05d06fbd
nobu (Nobuyoshi Nakada)
09:49 AM Ruby Revision eebd2f7d (git): [ruby/resolv] Use early return and remove useless assignments
https://github.com/ruby/resolv/commit/451d3f367c nobu (Nobuyoshi Nakada)
09:34 AM Ruby Revision 9dab3c51 (git): [DOC] Mention `Hash#default_proc=` affects Proc object from `Hash#to_proc`
```ruby
h = {foo: 0, bar: 1, baz: 2}
proc = h.to_proc
proc.call(:nosuch) # => nil
h.default_proc = proc {'wow!'} # This affects `proc` immediately
proc.call(:nosuch) # => 'wow!'
```
This behavior is a bit of surprise to me, and I could ...
okuramasafumi (Masafumi OKURA)
09:23 AM Ruby Revision e0a7dad9 (git): Update bundled gems list as of 2026-04-06
git[bot]
09:22 AM Ruby Revision ed6e7006 (git): Pin RBS to avoid bigdecimal validation failure (#16664)
soutaro (Soutaro Matsumoto)
08:28 AM Ruby Revision 995eba76 (git): Fix pinned gems being removed from bundled_gems by update script
Using `next` in `-p` mode skips the implicit `print $_`, causing
pinned gem lines (e.g. rbs) to be silently dropped from the output.
Replace `next` with an `unless` guard so the line is always printed.
Co-Authored-By: Claude Opus 4.6 (1...
hsbt (Hiroshi SHIBATA)
02:30 AM Ruby Revision 3ef41a52 (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.71.2 to 2.73.0
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]
01:53 AM Ruby Revision 5b00c057 (git): Manually cherry pick from https://github.com/ruby/rubygems/pull/9416/changes/7cd3b9a08a4e1ad47170eafe026932d1492fdfa1
hsbt (Hiroshi SHIBATA)

04/05/2026

07:39 PM Ruby Feature #21869: Add receive_all Method to Ractor API for Message Batching
This is my first pr and issue. I’m unsure about the current status — is the request rejected, or are there any actions required from my side? synacker (Mikhail Milovidov)
01:58 PM Ruby Revision a3c372a6 (git): Fix error when `lsof` did not work
nobu (Nobuyoshi Nakada)
01:51 PM Ruby Feature #21795: Methods for retrieving ASTs
The implications of that are, assuming this proposal is implemented based on start line/column + end line/column (or equivalently, start & end offsets):
* No need for `node_id` to implement this feature
* This feature works with both `...
Eregon (Benoit Daloze)
01:46 PM Ruby Feature #21795: Methods for retrieving ASTs
I thought more about `node_id` and I found at least one case where it is problematic with different versions of Prism.
The problem is the `node_id` from the bytecode is computed by the builtin Prism parser used by `prism_compile.c`, whil...
Eregon (Benoit Daloze)
01:37 PM Ruby Revision 13ebc536 (git): [DOC] Fill missing stars
nobu (Nobuyoshi Nakada)
01:37 PM Ruby Revision 21d36098 (git): Fix error when `lsof` did not work
nobu (Nobuyoshi Nakada)
01:21 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
naruse (Yui NARUSE) wrote in #note-2:
> Combining two different precision decimals doesn't sound reasonable.
> ...
I think that's probably fair. I was thinking Fixnum/Flonum and their heap counterparts, but that's backing the same prec...
shan (Shannon Skipper)
01:17 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
Eregon (Benoit Daloze) wrote in #note-1:
> For context, how much of this is AI-generated?
I implemented the i128 fixed-point arithmetic by porting Roc's Dec, then used AI to explore Ruby-specific optimizations (interpreter fast paths, Y...
shan (Shannon Skipper)
01:00 PM Ruby Feature #21982: Add `Decimal` as a core numeric class
Combining two different precision decimals doesn't sound reasonable.
It should use a single precision to ease to understand how it works.
We long discussed about decimal including introducing based on C _Decimal128, but I don't under...
naruse (Yui NARUSE)
11:44 AM Ruby Feature #21982: Add `Decimal` as a core numeric class
For context, how much of this is AI-generated?
Is it necessary to be faster than BigDecimal, for which realistic use cases?
Could BigDecimal be improved instead?
I think the bar for a new numeric core type is very high, and this w...
Eregon (Benoit Daloze)
10:28 AM Ruby Revision 661344b1 (git): [ruby/prism] Adapt `ParametersNode#signature` to `ErrorRecoveryNode`
No need to list them all out anymore, it's just a single possibility now
https://github.com/ruby/prism/commit/893f2734cb
Earlopain (Earlopain _)
10:27 AM Ruby Revision 79b5c50b (git): [ruby/prism] Fix type for `ArrayPatternNode#rest`
It can only ever be one of these two
https://github.com/ruby/prism/commit/f871ce0260
Earlopain (Earlopain _)
09:03 AM Ruby Revision fbea5f0f (git): Fix error when `lsof` is not found
nobu (Nobuyoshi Nakada)
05:13 AM Ruby Feature #21704: Expose rb_process_status_new to C extensions
@akr
> Why Process::Status object is created in such situations?
Because `Process::Status` represents either "the result of waitpid" or "errno of waitpid" and is used to transfer this information until it's finally consumed by the end ...
ioquatix (Samuel Williams)
 

Also available in: Atom