Project

General

Profile

Activity

From 12/13/2025 to 12/19/2025

Today

10:14 PM Revision 8274c5e1 (git): [ruby/mmtk] Extract max object size to MMTK_MAX_OBJ_SIZE
https://github.com/ruby/mmtk/commit/ed9036c295 peterzhu2118 (Peter Zhu)
10:13 PM Revision ed0fae5b (git): [ruby/mmtk] Extract heap count to MMTK_HEAP_COUNT macro
https://github.com/ruby/mmtk/commit/4e789e118b peterzhu2118 (Peter Zhu)
10:09 PM Revision 42c4df9a (git): [DOC] Harmonize String#<=>
burdettelamar (Burdette Lamar)
10:09 PM Revision d540903e (git): [DOC] Harmonize <= methods
burdettelamar (Burdette Lamar)
08:06 PM Revision d9c0d4c7 (git): Don't copy invalidated CME in rb_vm_cc_table_dup
The cc_entries list associated with the invalidated CME can be deleted
from the table during GC, so it isn't safe to copy (and we shouldn't
copy it anyways, it's stale data).
jhawthorn (John Hawthorn)
07:57 PM Feature #21796: unpack variant that returns the final offset
> Why a new parameter?
because I misread the ticket, I didn't notice the `o`.
I do think `^` for offset is pure genius though.
byroot (Jean Boussier)
05:22 PM Feature #21796: unpack variant that returns the final offset
I really like this idea. @jhawthorn suggested `^` instead of `o` though, and I really like it.
```ruby
bytes = "\x01\x02\x03"
offset = 0
leb128_value1, offset = bytes.unpack("R^", offset: offset) #=> 1
leb128_value2, offset = byt...
tenderlovemaking (Aaron Patterson)
08:10 AM Feature #21796: unpack variant that returns the final offset
It would be useful indeed, but I'm not sure a new method is the best way?
I think the simplest would be a new keyword parameter:
```ruby
offset, *values = bytes.unpack("Ro", offset: offset, return_offset:true)
```
Another poss...
byroot (Jean Boussier)
03:56 AM Feature #21796 (Open): unpack variant that returns the final offset
mame (Yusuke Endoh) wrote in [#note-4](https://bugs.ruby-lang.org/issues/21785#note-4):
> It's a shame `unpack` doesn't tell you how many bytes it read. You'd probably want a `unpack` variant that returns the final offset too, or a spec...
nobu (Nobuyoshi Nakada)
07:04 PM Bug #21266: YJIT GC safety crash with proc objects as block argument
Backport PR for 3.3: https://github.com/ruby/ruby/pull/15657 rwstauner (Randy Stauner)
06:49 PM Revision 04e90fe2 (git): skip TestFiberScheduler#test_io_write_on_flush because it makes GC.stat test fragile
ko1 (Koichi Sasada)
05:32 PM Bug #21792: 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
> > I don't think the installation script works with no extensions because it loads rubygems that require monitor
> ...
Ah, I see, is this because logger relies on monitor, and logger is no longer part of the stdlib (it is a bundled gem...
mdalessio (Mike Dalessio)
05:16 PM Bug #21792: 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
> I don't think the installation script works with no extensions because it loads rubygems that require monitor
@nobu Is this something that changed since Ruby 3.4? `rake-compiler` has been using the `--with-ext=` (empty) option since...
mdalessio (Mike Dalessio)
12:54 AM Bug #21792: 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
I don't think the installation script works with no extensions because it loads rubygems that require `monitor`. nobu (Nobuyoshi Nakada)
12:58 PM Revision 8c7e6f24 (git): Update bundled gems list as of 2025-12-19
git[bot]
11:02 AM Revision e23a918a (git): Update NEWS.md for Fiber Scheduler (#15629)
ciconia (Sharon Rosner)
10:58 AM Revision 9ee2243b (git): Fiber scheduler: invoke `#io_write` hook on IO flush (#15609)
Previously, calling IO#flush or closing an IO with unflushed buffered
writes would just invoke `#blocking_operation_wait` and flush the write
buffer using a `write` syscall. This change adds flushing through the
fiber scheduler by invoki...
ciconia (Sharon Rosner)
10:49 AM Bug #21794 (Closed): O_CLOEXEC is not available on Solaris 10
Applied in changeset commit:git|dd2f7d6ae6ab53bea7a179338378e1d32c306747.
----------
[Bug #21794] Fix for platforms where O_CLOEXEC is not available
nobu (Nobuyoshi Nakada)
10:44 AM Bug #21794: O_CLOEXEC is not available on Solaris 10
Yes, with the patch, it is successfully compiled without errors, and make test-all completed without any additional errors/failures. ngoto (Naohisa Goto)
06:33 AM Bug #21794: O_CLOEXEC is not available on Solaris 10
Can [GH-15650](https://github.com/ruby/ruby/pull/15650) fix it? nobu (Nobuyoshi Nakada)
10:48 AM Revision dd2f7d6a (git): [Bug #21794] Fix for platforms where O_CLOEXEC is not available
nobu (Nobuyoshi Nakada)
10:20 AM Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2
@luke-gru FWIW 4.0.0-preview3 performs normally. easydwh (Ivo Herweijer)
09:52 AM Feature #21795: Methods for retrieving ASTs
I anticipated that we would consider this eventually, but incorporating it into the core presents significant challenges.
Here are two major issues regarding feasibility.
(Based on chats with @ko1, @tompng, and @yui-knk, though the...
mame (Yusuke Endoh)
02:09 AM Feature #21795 (Open): Methods for retrieving ASTs
I would like to propose a handful of methods for retrieving ASTs from various objects that correspond to locations in code. This includes:
* Proc#ast
* Method#ast
* UnboundMethod#ast
* Thread::Backtrace::Location#ast
* TracePoint#...
kddnewton (Kevin Newton)
09:13 AM Feature #21797: Make Etc.nprocessors cgroup-aware on Linux
It'd be nice if `RUBY_MAX_CPU` would be autoconfigured based on this, just like Go 1.25 `GOMAXPROCS`.
Its default value is currently fixed to 8, but not many cloud containers have 8 cores worth of processors.
https://github.com/ruby/...
osyoyu (Daisuke Aritomo)
08:38 AM Feature #21797: Make Etc.nprocessors cgroup-aware on Linux
RubyGems 4.0.x support -j option for building C extension gem. But It causes in container environment like Circle CI.
https://github.com/ruby/rubygems/issues/9170
If cgroup provides the correct number of CPU for Cicle CI or others...
hsbt (Hiroshi SHIBATA)
08:12 AM Feature #21797 (Open): Make Etc.nprocessors cgroup-aware on Linux
Currently, `Etc.nprocessors` ignores cgroup CPU quotas. This causes issues in containers where CPU limits differ from the host CPU count.
I have written a gem for this purpose (https://github.com/moznion/maxprocs-ruby), but it would be ...
moznion (Taiki Kawakami)
08:47 AM Feature #21767: Consider procs which `self` is Ractor-shareable as Ractor shareable
@eregon I'm not sure I fully understand your point, but conceptually your code should raise an `Ractor::IsolationError` by accessing a unshareable, mutable variable `a`. My proposal's intent was to preserve `self` while making the proc s... osyoyu (Daisuke Aritomo)
08:16 AM Revision f0472f2d (git): [Feature #21785] [DOC] LEB128 support
nobu (Nobuyoshi Nakada)
08:15 AM Feature #21791: Implement Set#compact/Set#compact!, these should return Set instead of Array
Since `Set#delete` is O(1) performance and return self, why not just:
```ruby
>> Set[1, 2, nil, 3].delete(nil)
=> Set[1, 2, 3]
```
byroot (Jean Boussier)
07:36 AM Revision 7b19f1a1 (git): Skip RBS Ractor test on Windows
It seems hunging up. nobu (Nobuyoshi Nakada)
06:55 AM Revision 8efaf5e6 (git): Adjust Stdlib section with 4.0.0 and added reference of RubyGems release notes.
hsbt (Hiroshi SHIBATA)
06:44 AM Revision 47244b0f (git): Fix: Specifying 0 should cause an immediate timeout (#15641)
This change fixes a bug in which specifying 0 for timeout-related options (such as the `timeout` option of `Addrinfo.getaddrinfo`) incorrectly results in an infinite wait.
(This change overwrites https://github.com/ruby/ruby/pull/15626 .)
Misaki Shioi
05:39 AM Revision f81c62be (git): Terminate `args_tail_basic` rule with a semicolon
Semicolon is optional however it clarifies the end of the rule. yui-knk (Kaneko Yuichiro)
04:36 AM Revision 6f6ea70d (git): Just passing FDs does not need to create IO objects
nobu (Nobuyoshi Nakada)
04:36 AM Revision bfba65d8 (git): Extract `Test::JobServer` module
A placeholder to handle GNU make jobserver option.
spec/default.mspec didn't handle the jobserver using a FIFO.
nobu (Nobuyoshi Nakada)
03:12 AM Revision 42d66b89 (git): Fix: Do not check open_timeout twice (#15626)
Misaki Shioi
02:58 AM Revision 305f0421 (git): NEWS.md: Sort items in alphabetical order
mame (Yusuke Endoh)
02:44 AM Revision b90d3a6b (git): Update bundled gems list as of 2025-12-19
git[bot]
02:43 AM Revision 81ad4074 (git): Fix rbs test failure caused by minitest-6 (#15643)
* Fix rbs test failure caused by minitest6
* Bundle minitest-6.0.0
soutaro (Soutaro Matsumoto)
01:57 AM Revision 68a900e3 (git): add news for pack / unpack directives
tenderlovemaking (Aaron Patterson)
12:59 AM Revision fec5363b (git): Update default gems list at 5c0c0dd8737c8225f0ebcf0eaf3fb8 [ci skip]
git[bot]
12:58 AM Revision 5c0c0dd8 (git): [ruby/prism] Bump to v1.7.0
https://github.com/ruby/prism/commit/21c499d6e4 kddnewton (Kevin Newton)
12:58 AM Revision e2c886dd (git): [ruby/prism] Reject `p(p a, &block => value)` and similar
Redo of https://github.com/ruby/prism/pull/3669 with more tests
https://github.com/ruby/prism/commit/48b403ea79
Earlopain (Earlopain _)
12:58 AM Revision 76248400 (git): [ruby/prism] Add Ruby 4.1 as a version specifier
https://github.com/ruby/prism/commit/138db9ccc4 Earlopain (Earlopain _)
12:58 AM Revision d9b03c93 (git): [ruby/prism] Fix assertions in location_test.rb
* assert_raise's 2nd argument is the failure message,
shown when the expected exception is not raised.
It's not the expected message.
See https://github.com/test-unit/test-unit/issues/347
https://github.com/ruby/prism/commit/e3df9...
Eregon (Benoit Daloze)
12:47 AM Revision 0c4fcdff (git): Update ArgumentError message for Ractor.select
jhawthorn (John Hawthorn)
12:21 AM Revision b14f2f01 (git): [DOC] Harmonize lt methods
burdettelamar (Burdette Lamar)
12:00 AM Revision 084b916a (git): [DOC] Update NEWS for implementation improvements
jhawthorn (John Hawthorn)
12:00 AM Revision 805f53a9 (git): [DOC] Various improvements to NEWS
jhawthorn (John Hawthorn)

12/18/2025

11:59 PM Revision 535233c6 (git): [DOC] Update ractor.rb docs
jhawthorn (John Hawthorn)
11:59 PM Revision 3c6a6afa (git): [DOC] Update ractor.c docs
jhawthorn (John Hawthorn)
10:47 PM Revision 99b91594 (git): [DOC] Russian strings should look Russian
burdettelamar (Burdette Lamar)
10:43 PM Feature #21785 (Closed): Add signed and unsigned LEB128 support to pack / unpack
Applied in changeset commit:git|d0b72429a93e54f1f956b4aedfc25c57dc7001aa.
----------
Add support for signed and unsigned LEB128 to pack/unpack.
This commit adds a new pack format command `R` and `r` for unsigned and
signed LEB128 encod...
tenderlovemaking (Aaron Patterson)
05:24 PM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
mame (Yusuke Endoh) wrote in #note-6:
> That apparoach is unreliable because LEB128 is redundant. For example, both `"\x03"` and `"\x83\x00"` are valid LEB128 encodings of the value 3.
Ah of course. I didn't think about that. 🤦‍♀️
tenderlovemaking (Aaron Patterson)
01:47 AM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
> You could tell how many bytes you read based on the size of the leb128_value returned.
That apparoach is unreliable because LEB128 is redundant. For example, both `"\x03"` and `"\x83\x00"` are valid LEB128 encodings of the value 3.
...
mame (Yusuke Endoh)
10:42 PM Revision d0b72429 (git): Add support for signed and unsigned LEB128 to pack/unpack.
This commit adds a new pack format command `R` and `r` for unsigned and
signed LEB128 encoding. The "r" mnemonic is because this is a
"vaRiable" length encoding scheme.
LEB128 is used in various formats including DWARF, WebAssembly, MQ...
tenderlovemaking (Aaron Patterson)
09:43 PM Revision 73e930f9 (git): JIT: Move EC offsets to jit_bindgen_constants
Co-authored-by: Alan Wu <alanwu@ruby-lang.org> jhawthorn (John Hawthorn)
09:43 PM Revision b1c3060b (git): Co-authored-by: Luke Gruber <luke.gru@gmail.com>
Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
YJIT: Support calling bmethods in Ractors
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
Suggestion from Alan
jhawthorn (John Hawthorn)
09:43 PM Revision 345ea0c8 (git): YJIT: Support calling bmethods in Ractors
Co-authored-by: Luke Gruber <luke.gru@gmail.com> jhawthorn (John Hawthorn)
09:43 PM Revision 63b082cf (git): Store ractor_id directly on EC
This is easier to access as ec->ractor_id instead of pointer-chasing through
ec->thread->ractor->ractor_id
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)
08:42 PM Revision aace29d4 (git): Check for NULL fields in TYPEDDATA memsize functions (#15633)
Some TYPEDDATA objects allocate struct fields using the GC right after
they get created, and in that case the VM can try to perform a GC and join
a barrier if another ractor started one. If we're dumping the heap in another
ractor, this ...
Luke Gruber
08:08 PM Revision a7eb1879 (git): [DOC] small improvements to ractor class docs (#15584)
* Ractor.yield no longer exists
* Ractor.shareable_proc returns a copy of the given proc
* Improve wording for monitoring/unmonitoring ports
Luke Gruber
08:08 PM Bug #21793 (Closed): function name conflict of "mutex_trylock" on Solaris
Applied in changeset commit:git|fb1dd92d30a8df93f6fe2746aacc097f4c3ea62b.
----------
thread_sync.c: rename mutex_trylock internal function
[Bug #21793]
To fix a naming conflict on solaris.
byroot (Jean Boussier)
05:58 PM Bug #21793 (Closed): function name conflict of "mutex_trylock" on Solaris
On Solaris, with GCC 7.5.0, failed to compile thread.c with "error: conflicting types for 'mutex_trylock'".
On Solaris, the function name mutex_trylock(3C) is already used by the OS.
https://docs.oracle.com/cd/E88353_01/html/E37843...
ngoto (Naohisa Goto)
08:07 PM Revision fb1dd92d (git): thread_sync.c: rename mutex_trylock internal function
[Bug #21793]
To fix a naming conflict on solaris.
byroot (Jean Boussier)
07:57 PM Revision 8cf4f373 (git): thread_sync.c: declare queue_data_type as parent of szqueue_data_type.
Allows to remove some duplicated code like szqueue_length, etc. byroot (Jean Boussier)
07:57 PM Revision bbc684d8 (git): thread_sync.c: simplify `check_array`
If the queue was allocated without calling initialize,
`ary` will be `0`.
byroot (Jean Boussier)
07:57 PM Revision 57c4cd9a (git): thread_sync.c: eliminate GET_EC() from queue_do_pop
We receive the ec as argument, it's much cheaper to pass it
around that to look it up again.
byroot (Jean Boussier)
07:03 PM Revision 28c2a5b2 (git): Fix env debug assertion failure w/ Ractors+JITs
Previously when using a JIT and Ractors at the same time with debug
assertions turned on this could rarely fail with:
vm_core.h:1448: Assertion Failed: VM_ENV_FLAGS:FIXNUM_P(flags)
When using Ractors, any time the VM lock is acquir...
jhawthorn (John Hawthorn)
06:51 PM Revision 74bfb160 (git): Remove assertion in encoded_iseq_trace_instrument (#15616)
`encoded_iseq_trace_instrument` is safe to call in a ractor if the iseq
is new. In that case, the VM lock is not taken. This assertion was added in
4fb537b1ee28bb37dbe551ac65c279d436c756bc.
Luke Gruber
06:39 PM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
Ah my earlier Python script had a bug.
My initial Python test incorrectly reported success. The script used `os.WEXITSTATUS()` to check the child's exit status, but this function only works for processes that exit normally. When a pro...
adamoffat (Adam Moffat)
06:18 PM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
Thank you. This looks like the same issue reported multiple times in the past, but we were previously stuck without a way to investigate.
https://bugs.ruby-lang.org/issues/15490
https://bugs.ruby-lang.org/issues/15794
https://github...
mame (Yusuke Endoh)
03:44 PM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
mame (Yusuke Endoh) wrote in #note-3:
> Thank you for the report.
> ...
Ah yes, sorry I should have clarified this in my post. I tested this in 3.2.6 but it manifests differently in that version.
When I ran the same reproduction script ...
adamoffat (Adam Moffat)
07:13 AM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
Thank you for the report.
Since I don't have access to Tahoe, I cannot test this in my own environment. However, I have a few questions to clarify the situation.
The change to perform DNS lookups in a dedicated background thread wa...
mame (Yusuke Endoh)
06:37 PM Revision 0e719239 (git): thread_sync: Mutex keep `rb_thread_t *` instead of `VALUE`
We never need the actual thread object and this avoid any issue
if the thread object is ever moved.
byroot (Jean Boussier)
06:24 PM Bug #21794 (Closed): O_CLOEXEC is not available on Solaris 10
Because O_CLOEXEC is not available on Solaris 10, an error occurs when compiling box.c: "'O_CLOEXEC' undeclared (first use in this function)"
```
gcc -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O3 -fno-fast-math ...
ngoto (Naohisa Goto)
05:37 PM Revision bfd28d58 (git): make rb_singleton_class ractor safe (#15591)
Since singleton classes are created lazily, we need to make sure that
we lock around their creation. Unfortunately, that means we need to
lock around every shareable object's call to `singleton_class`,
including classes and modules.
Luke Gruber
04:12 PM Revision f133ebb2 (git): Bump RDoc to 7.0.1 (#15628)
This improves several enhancements to the Aliki theme. And since Aliki
also became the default theme, we don't need to specify the generator name
anymore.
st0012 (Stan Lo)
01:28 PM Bug #20699: On Windows, the `__dir__` keyword is garbled in paths containing Japanese characters, and `require_relative` fails as well
There is a fix available since one year, but no feedback at all. That makes it difficult to contribute anything: https://github.com/ruby/ruby/pull/12377
larskanis (Lars Kanis)
11:01 AM Bug #21049: Reconsider handling of the numbered parameters and "it" parameter in `Binding#local_variables`
Thank you for the new methods! daniel.domjan (Dániel Domján)
09:48 AM Bug #21324: Namespace loads RubyGems in root Namespace but it should not
I have tried for curiosity with `ruby 4.0.0preview3` and it is still unfixed:
```
$ RUBY_BOX=1 ruby -ve 'ns = Ruby::Box.new; p ns::Gem.equal?(Gem)'
ruby 4.0.0preview3 (2025-12-18 master cfa3e7cf75) +PRISM [x86_64-linux]
ruby: warning...
Eregon (Benoit Daloze)
07:47 AM Revision 9f266ae6 (git): Update default gems list at 0e85881e0cded6ec82ef105b5ff2d0 [ci skip]
git[bot]
07:46 AM Revision 0e85881e (git): [ruby/delegate] v0.6.1
https://github.com/ruby/delegate/commit/90ffceb6d6 hsbt (Hiroshi SHIBATA)
07:46 AM Revision 00065914 (git): Reapply "Merge pull request #52 from ruby/revert-49"
This reverts commit 02e4b58b615d0dd83a6af5cd7c2b8861724011ee. hsbt (Hiroshi SHIBATA)
07:46 AM Revision 2fcad967 (git): Revert "Allow use of DelegateClass in ractor"
This reverts commit 6e0f2b31f0f4a2a942f3c1daad1bb64852fe6815. hsbt (Hiroshi SHIBATA)
07:46 AM Revision 1e69d688 (git): [ruby/delegate] v0.6.0
https://github.com/ruby/delegate/commit/aef34e8c8b hsbt (Hiroshi SHIBATA)
07:46 AM Revision e6ca8908 (git): Allow use of DelegateClass in ractor
Use `eval` instead of `define_method` when defining delegate methods for
`DelegateClass`.
Luke Gruber
07:46 AM Revision a21fe2ad (git): [ruby/delegate] Reapply "Merge pull request #46 from byroot/use-forward-send"
This reverts commit https://github.com/ruby/delegate/commit/fc2bd0498af0.
https://github.com/ruby/delegate/commit/7d5c1e0842
Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
hsbt (Hiroshi SHIBATA)
07:46 AM Revision bdf99bf0 (git): [ruby/delegate] v0.5.0
https://github.com/ruby/delegate/commit/fa35b20eca hsbt (Hiroshi SHIBATA)
07:46 AM Revision 01e9f95c (git): [ruby/delegate] Allow use of DelegateClass in ractors
Tempfile uses DelegateClass and Tempfile should be able to be used
by different ractors.
https://github.com/ruby/delegate/commit/cad194260b
Luke Gruber
07:42 AM Revision 85ff21c9 (git): RBOOL is unnecessary in C boolean context
Fix a `-Wint-in-bool-context` warning.
```
proc.c:688:33: warning: '?:' using integer constants in boolean context [-Wint-in-bool-context]
688 | if (RBOOL(get_local_variable_ptr(&env, idItImplicit, FALSE))) {
```
nobu (Nobuyoshi Nakada)
07:39 AM Revision 74b18b53 (git): Bump github.com/microsoft/vcpkg from master to 2025.12.12
Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from master to 2025.12.12. This release includes the previously tagged commit.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](https://gith...
dependabot[bot]
05:22 AM Revision 769c6a1c (git): [DOC] Use Arrays in examples for Array#find
etienne (Étienne Barrié)
02:27 AM Revision b816f7ba (git): [DOC] Fix documents of `rb_intern_str` and so on
* `rb_intern_str`: the argument must be `T_STRING`, no conversion.
* `rb_intern_str`, `rb_check_id`, `rb_to_id`, `rb_check_symbol`: raise
`EncodingError` unless the "name" argument is a valid string in its
encoding.
nobu (Nobuyoshi Nakada)
01:14 AM Revision f2d2a757 (git): [DOC] Re-fill the paragraph
nobu (Nobuyoshi Nakada)
12:34 AM Revision cfa3e7cf (git): [DOC] Fix double-word typos in comments
Found via `grep` for repeated words.
* set.c: Fix "or or"
* include/ruby/internal/symbol.h: Fix "is is"
* include/ruby/internal/ctype.h: Fix "in in"
Augustin Gottlieb

12/17/2025

11:35 PM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
I saw that this was added in 3.4.0: https://github.com/ruby/ruby/pull/10864
Seen here: (https://github.com/ruby/ruby/releases/tag/v3_4_0_preview2)
But I also tested this using 3.4.1 and it was still an issue.
adamoffat (Adam Moffat)
11:08 PM Bug #21790: `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
To confirm: MacOS Sequoia also did not have this issue. adamoffat (Adam Moffat)
06:03 PM Bug #21790 (Open): `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
Ruby's `Socket.getaddrinfo` hangs indefinitely in forked child processes on macOS 26.1 (Tahoe) when resolving IPv4-only hostnames. This is a regression that does not occur on macOS 15.x (Sonoma) or earlier.
**Ruby version:**
ruby 3.3...
adamoffat (Adam Moffat)
10:34 PM Bug #21792: 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
I've proposed a potential fix at https://github.com/ruby/ruby/pull/15617 mdalessio (Mike Dalessio)
10:14 PM Bug #21792: 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
Note that this also reproduces in the source tree for 656de67d / 4.0.0-preview3. mdalessio (Mike Dalessio)
10:09 PM Bug #21792 (Open): 4.0.0-preview3: Build fails with `--with-ext=` when ENABLE_SHARED=yes: ruby/digest.h not found for rubyspec CAPI extensions
When building Ruby with `--enable-shared` and `--with-ext=` (empty, to disable all extensions), the build fails because spec/ruby/optional/capi/ext/digest_spec.c cannot find ruby/digest.h.
This affects cross-compilation tooling like `...
mdalessio (Mike Dalessio)
10:26 PM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
mame (Yusuke Endoh) wrote in #note-4:
> It's a shame `unpack` doesn't tell you how many bytes it read. You'd probably want a `unpack` variant that returns the final offset too, or a specifier that returns the current offset (like `o`?)....
tenderlovemaking (Aaron Patterson)
05:47 PM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
It's a shame `unpack` doesn't tell you how many bytes it read. You'd probably want a `unpack` variant that returns the final offset too, or a specifier that returns the current offset (like `o`?).
```ruby
bytes = "\x01\x02\x03"
offs...
mame (Yusuke Endoh)
03:08 AM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
matz (Yukihiro Matsumoto) wrote in #note-2:
> I am positive about the addition of LEB128. But I don't really like K/k because it doesn't remind me of LEB128 at all (though I know we've used L, E, B already).
> ...
Thanks for the feedba...
tenderlovemaking (Aaron Patterson)
01:22 AM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
I am positive about the addition of LEB128. But I don't really like K/k because it doesn't remind me of LEB128 at all (though I know we've used L, E, B already).
Given that the only case pairs not yet used are k, r, and y, either R (v...
matz (Yukihiro Matsumoto)
07:56 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
And here are some docs adjustments: https://github.com/ruby/ruby/pull/15615 zverok (Victor Shepelev)
09:56 AM Bug #21780 (Closed): Change the default size of Enumerator.produce back to infinity
Applied in changeset commit:git|c99670d6683fec770271d35c2ae082514b1abce3.
----------
Revert the default size of Enumerator::Producer to infinity
[Bug #21780]
Anonymous
09:55 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
The choice of the default is a design decision, with valid arguments for both options. That said, with limited time before release, I'll err on the safe side and prioritize compatibility by reverting to the original default of infinity. knu (Akinori MUSHA)
08:32 AM Bug #21780 (Open): Change the default size of Enumerator.produce back to infinity
knu (Akinori MUSHA)
08:31 AM Bug #21780 (Closed): Change the default size of Enumerator.produce back to infinity
Applied in changeset commit:git|79f36c544a0431d9b76c3c11a5f622383eaca7bd.
----------
Revert the override of Enumerator#to_set that performed size checks
[Bug #21780]
Anonymous
08:11 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
I'll revert Enumerator#to_set right away as a first step. knu (Akinori MUSHA)
08:06 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
mame (Yusuke Endoh) wrote in #note-26:
> If we do so, I believe `Enumerator#size` should be deprecated and renamed to something like `Enumerator#size_hint` or `Enumerator#size_estimate`.
> ...
I think size is and will always be an esti...
knu (Akinori MUSHA)
07:13 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
@knu, do you plan to work on the behavior adjustments, or should I do it? (I am totally OK with that, just don't want to duplicate effort) zverok (Victor Shepelev)
07:12 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> Why revert to a buggy state?
I don't believe "buggy" is a fair description. I believe that Ruby users are intelligent enough to understand the "theoretically infinite, but might break at some point if done intently." And I believe ...
zverok (Victor Shepelev)
07:01 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> * Removing the Enumerator#to\_set override that refuses to work against an infinite enumerator as a safeguard
This is fine to me. I don't think this safeguard is necessary.
> ...
Why revert to a buggy state? Even though no real...
mame (Yusuke Endoh)
06:02 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
OK, if @knu is OK, I accept this proposal.
Matz.
matz (Yukihiro Matsumoto)
07:49 PM Revision 656de67d (git): JITs: Pass down GNU make jobserver resources when appropriate
To fix warnings from rustc on e.g. Make 4.3, which is in Ubuntu 24.04:
> warning: failed to connect to jobserver from environment variable
alanwu (Alan Wu)
07:26 PM Feature #21791: Implement Set#compact/Set#compact!, these should return Set instead of Array
I wrote the rubyspecs for this change as well, they now check for version 4.0, but since we're very late into the 4.0 release cycle, it might be better to bump this to 4.1. herwin (Herwin W)
07:25 PM Feature #21791 (Open): Implement Set#compact/Set#compact!, these should return Set instead of Array
I recently had to remove a nil value from a Set, and ended up with an Array:
```
irb(main):001> Set[1, 2, nil, 3].compact
=> [1, 2, 3]
irb(main):002> Set[1, 2, nil, 3].compact.class
=> Array
```
Since there is no dedicated `Set#co...
herwin (Herwin W)
07:22 PM Revision ef3ac3e6 (git): Adjust Set documentation (#15547)
zverok (Victor Shepelev)
07:12 PM Revision 839410f0 (git): Fix heap dump with ractor barrier
When a ractor was being initialized and it would join the heap dump barrier when
allocating its queue or its ports, the heap dump code calls `rb_obj_memsize` on
the ractor and this function assumed `ports` was never NULL. We need to chec...
Luke Gruber
07:00 PM Revision 601ac78c (git): [DOC] Small changes to docs for ObjectSpace#each_object (#15564)
Change example to use user-defined class instead of `Numeric`. Luke Gruber
06:45 PM Revision f7120860 (git): test_sync_default_gems.rb: Omit if git is v2.43 or older
k0kubun (Takashi Kokubun)
06:22 PM Revision dc2a62e1 (git): test_commit_email.rb: Ensure #teardown doesn't fail
if test is omitted.
Follow up c4e090def134f9b109991b74c027648564963763
k0kubun (Takashi Kokubun)
06:05 PM Revision a9526ab5 (git): Update bundled gems list as of 2025-12-17
git[bot]
06:04 PM Revision 7e13fbc0 (git): Update bundled bigdecimal and rbs (#15611)
* Bundle rbs-3.10.0.pre.1
* Update rbs gem entry with commit hash
Updated rbs entry to include commit hash.
* Fix rbs entry in bundled_gems
* Update rbs gem to version 3.10.0.pre.2
Updated rbs gem version from 3.10.0.pre.1 to 3.10.0...
tompng (tomoya ishida)
05:17 PM Revision 56b67f16 (git): ObjectSpace.{dump,dump_all,dump_shapes} needs vm barrier. (#15569)
This allows these methods to be called from ractors.
Add new exported function `rb_vm_lock_with_barrier()` that requires
users to include "vm_sync.h"
Luke Gruber
04:34 PM Bug #21789 (Open): IO#flush doesn't invoke fiber scheduler io_write hook
When calling `IO#flush` or closing an IO with unflushed writes, the flushing is done by calling `rb_io_blocking_region_wait` and eventually doing a `write` system call. When done in a non-blocking fiber with an active fiber scheduler, th... noteflakes (Sharon Rosner)
01:43 PM Feature #21788: Promote Thread::Monitor to a core class
+1
I think `MonitorMixin` and `MonitorMixin::ConditionVariable` are small enough that it would be good to have them in core too.
BTW `wait_while`/`wait_until` are good patterns and maybe something `Thread::ConditionVariable` should have...
Eregon (Benoit Daloze)
07:38 AM Feature #21788 (Open): Promote Thread::Monitor to a core class
`Monitor` is about as useful as `Mutex` and yet one is a core class and the other is a "stdlib" extension.
I propose to promote `Thread::Monitor` as a core class convenience.
### The rest of `monitor.rb`
The `monitor` stdlib als...
byroot (Jean Boussier)
01:24 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
mame (Yusuke Endoh) wrote in #note-22:
> `source_location` does not uniquely identify a node.
> ...
True but that's not a problem for `Prism.node_for(Method | UnboundMethod | Proc)` because it returns `DefNode | LambdaNode | CallNode |...
Eregon (Benoit Daloze)
01:36 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Eregon (Benoit Daloze) wrote in #note-20:
> FWIW I also consider the concept of `node_id` CRuby-specific, at least currently.
Since `Prism::Node#node_id` exists, I don't think it's CRuby-specific anymore.
It's true that the part retriev...
mame (Yusuke Endoh)
01:06 PM Revision 41e24aeb (git): Improve NEWS.md for Socket (#15610)
Misaki Shioi
12:39 PM Bug #21702: `UNIXSocket` on Windows: suprising results in `#recvfrom` and `#remote_address`
@nobu The `char place_holder[2048]` is something in Ruby not Windows though.
Why does CRuby not stop at the first `\0`? This is path, so it's defined as `\0`-terminated, no?
Eregon (Benoit Daloze)
12:11 PM Revision aee4b248 (git): [ruby/error_highlight] Show no message when failing to get caller/callee snippets
Even with Ruby 4.0, snippets is not always available, such as in irb by
default. It would be better to just say nothing than to show a confusing
message.
https://github.com/ruby/error_highlight/commit/ef80ce73a1
mame (Yusuke Endoh)
09:56 AM Revision c99670d6 (git): Revert the default size of Enumerator::Producer to infinity
[Bug #21780] Akinori MUSHA
09:53 AM Revision f45b1e3a (git): Update NEWS.md for Socket (#15608)
Misaki Shioi
09:32 AM Bug #21174: Range#max called with an argument on a beginless Integer Range raises RangeError
I confirmed @matz and he said that the current behavior is OK. He prioritizes practicality over consistency in this case. mame (Yusuke Endoh)
08:38 AM Revision bd4353ba (git): CI: Assume all C source files are UTF-8 now
nobu (Nobuyoshi Nakada)
08:38 AM Revision f286e700 (git): win32: Set the source code charset to UTF-8
nobu (Nobuyoshi Nakada)
08:35 AM Revision 61bab188 (git): Rename to `struct rbimpl_size_overflow_tag`
This struct is used for addition not only for multiplication, so
remove the word `mul`, and make the member names more descriptive.
nobu (Nobuyoshi Nakada)
08:30 AM Revision 79f36c54 (git): Revert the override of Enumerator#to_set that performed size checks
[Bug #21780] Akinori MUSHA
07:16 AM Revision 54d3945e (git): Add host information to timeout error messages in `TCPSocket.new` and `Socket.tcp` (#15582)
This change adds host information to the error messages shown when a timeout occurs while passing timeout options to `TCPSocket.new` or `Socket.tcp`, for improved usability.
(When the `fast_fallback option` is enabled, there may be multi...
Misaki Shioi
07:12 AM Revision 1506c489 (git): Update NEWS.md for improvements of error backtrace
mame (Yusuke Endoh)
07:09 AM Feature #20953: Array#fetch_values vs #values_at protocols
> Can I be of any help?
I rebased the PR, you can review the spec to see if the behavior make sense.
As for merging I'm afraid it's a bit late now, but that's @hsbt's call I think.
byroot (Jean Boussier)
06:48 AM Revision 38310fe7 (git): Update default gems list at 26447b3597ab95af7cc220c641a1bd [ci skip]
git[bot]
06:47 AM Revision 26447b35 (git): [ruby/net-http] v0.9.1
https://github.com/ruby/net-http/commit/8cee86e939 hsbt (Hiroshi SHIBATA)
06:47 AM Revision b80fc8bd (git): [ruby/net-http] Freeze more constants for Ractor compatibility
Freeze Net::HTTP::SSL_ATTRIBUTES and IDEMPOTENT_METHODS_. Both constants
have been marked as :nodoc:.
Together with https://github.com/ruby/openssl/issues/521, this enables
HTTPS clients in non-main Ractors on Ruby 4.0.
https://github....
rhenium (Kazuki Yamaguchi)
06:47 AM Revision fedafec7 (git): [ruby/net-http] v0.9.0
https://github.com/ruby/net-http/commit/3ccf0c8e6a hsbt (Hiroshi SHIBATA)
06:47 AM Revision df18f3ba (git): Bundle strscan-3.1.6
hsbt (Hiroshi SHIBATA)
06:47 AM Revision d5257bea (git): Bundle stringio-3.2.0
hsbt (Hiroshi SHIBATA)
06:47 AM Revision 8e258121 (git): [ruby/timeout] v0.6.0
https://github.com/ruby/timeout/commit/ab79dfff47 hsbt (Hiroshi SHIBATA)
06:47 AM Revision 01624492 (git): [ruby/time] v0.4.2
https://github.com/ruby/time/commit/387292f5d2 hsbt (Hiroshi SHIBATA)
06:47 AM Revision 8850807e (git): [ruby/psych] v5.3.1
https://github.com/ruby/psych/commit/8345af9ffb hsbt (Hiroshi SHIBATA)
06:02 AM Revision 7b5691c3 (git): `Socket.tcp` and `TCPSocket.new` raises `IO::TiemoutError` with user specified timeout (#15602)
* `Socket.tcp` and `TCPSocket.new` raises `IO::TiemoutError` with user specified timeout
In https://github.com/ruby/ruby/pull/11880, `rsock_connect()` was changed to raise `IO::TimeoutError` when a user-specified timeout occurs.
However...
Misaki Shioi
05:20 AM Revision 4c38419e (git): Update default gems list at 0e2962f917db1b20a6d34b6105b376 [ci skip]
git[bot]
05:16 AM Revision 0e2962f9 (git): [ruby/io-wait] bump up to 0.4.0
https://github.com/ruby/io-wait/commit/ae676c9d6d nobu (Nobuyoshi Nakada)
03:37 AM Revision e354e9ba (git): refactor: utilize a predefined macro
mame (Yusuke Endoh)
03:35 AM Bug #21787 (Closed): `IO::Buffer` Integer Overflow in Range Validation Leads to Out-of-Bounds Memory Access
Applied in changeset commit:git|c353b625297162024b5a80480664e599dd49a294.
----------
[Bug #21787] IO::Buffer: Check addition overflows
https://hackerone.com/reports/3437743
nobu (Nobuyoshi Nakada)
02:57 AM Bug #21787 (Closed): `IO::Buffer` Integer Overflow in Range Validation Leads to Out-of-Bounds Memory Access
From: https://hackerone.com/reports/3437743
The `IO::Buffer` implementation in Ruby contains a critical integer overflow vulnerability in its range validation logic. The `io_buffer_validate_range` function assumes that `offset+length`...
nobu (Nobuyoshi Nakada)
03:35 AM Revision 7c402d2c (git): IO::Buffer: Warn as experimental at allocation
Previously, warned only in `new` and `map`, but not `for` and
`string`.
nobu (Nobuyoshi Nakada)
03:35 AM Revision c353b625 (git): [Bug #21787] IO::Buffer: Check addition overflows
https://hackerone.com/reports/3437743 nobu (Nobuyoshi Nakada)
03:35 AM Revision 9519d163 (git): IO::Buffer: Guard arguments from GC
At least, `string` in `io_buffer_set_string` can be different from
`argv[0]` after `rb_str_to_str` call. The other cases may not be
necessary.
nobu (Nobuyoshi Nakada)
03:35 AM Revision f430fbbf (git): IO::Buffer: Fill the test for `IO::Buffer#clear`
nobu (Nobuyoshi Nakada)
03:13 AM Revision 87274c72 (git): Update default gems list at 3b66efda523fc33070aee6097898db [ci skip]
git[bot]
03:12 AM Revision 3b66efda (git): Bundle RubyGems 4.0.2 and Bundler 4.0.2
hsbt (Hiroshi SHIBATA)
02:11 AM Revision 2117e612 (git): Disabled gem sync for Ruby 4.0 release
hsbt (Hiroshi SHIBATA)
02:11 AM Revision 74a36531 (git): Fix: Recalculate the timeout duration considering `open_timeout` (#15596)
This change updates the behavior so that, when there is only a single destination and `open_timeout` is specified, the remaining `open_timeout` duration is used as the connection timeout. Misaki Shioi
02:03 AM Revision f483484f (git): [DOC] Fix call-seq of Method#box
peterzhu2118 (Peter Zhu)
01:19 AM Bug #21786 (Open): Net::HTTP::Response#read_body crashes on nil body when response_body_encoding is a String
When response_body_encoding is set to a String value (e.g., 'UTF-8'), and the HTTP response body is nil due to network failures, read_body attempts to call force_encoding on nil at line 360, raising NoMethodError. The issue occurs becaus... karinamendez132@gmail.com (Karina Mendez)
01:16 AM Bug #21782 (Closed): Ractor::IsolationError reports incorrect path for constants found through upwards search
Applied in changeset commit:git|cbcbbb2fbe57fb17b3bd6b93244c4f37f3626c7e.
----------
Let Ractor::IsolationError report correct constant path
Before this patch, Ractor::IsolationError reported an incorrect constant
path when constant wa...
Anonymous
01:15 AM Revision 0fe111ca (git): Respect encoding of ID in exception messages
Daisuke Aritomo
01:15 AM Revision cbcbbb2f (git): Let Ractor::IsolationError report correct constant path
Before this patch, Ractor::IsolationError reported an incorrect constant
path when constant was found through `rb_const_get_0()`.
In this code, Ractor::IsolationError reported illegal access against
`M::TOPLEVEL`, where it should be `Ob...
Daisuke Aritomo
12:36 AM Revision 2bf88ac1 (git): make-snapshot: Fix Psych::DisallowedClass with newer psych
```
$ tool/format-release ../www.ruby-lang.org 4.0.0-preview2 .
/opt/rubies/3.4.6/lib/ruby/3.4.0/psych/class_loader.rb:99:in 'Psych::ClassLoader::Restricted#find': Tried to load unspecified class: Date (Psych::DisallowedClass)
fr...
k0kubun (Takashi Kokubun)

12/16/2025

11:56 PM Revision 995b59f6 (git): v3.4.8
k0kubun (Takashi Kokubun)
11:53 PM Bug #21266: YJIT GC safety crash with proc objects as block argument
ruby_3_4 commit:d8f087b581735ec250b8671c3574fa4d5b16ae54 merged revision(s) commit:9168cad4d63a5d281d443bde4edea6be213b0b25. k0kubun (Takashi Kokubun)
04:05 AM Bug #21266 (Closed): YJIT GC safety crash with proc objects as block argument
Applied in changeset commit:git|9168cad4d63a5d281d443bde4edea6be213b0b25.
----------
YJIT: Bail out if proc would be stored above stack top
Fixes [Bug #21266].
rwstauner (Randy Stauner)
11:53 PM Revision d8f087b5 (git): merge revision(s) 9168cad4d63a5d281d443bde4edea6be213b0b25: [Backport #21266]
[PATCH] YJIT: Bail out if proc would be stored above stack top
Fixes [Bug #21266].
k0kubun (Takashi Kokubun)
11:53 PM Bug #21779: Do not export functions from statically linked extensions
ruby_3_4 commit:252b718582baf5760a6db2efdb58b84a0bf3f47f merged revision(s) commit:bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e, commit:c26057ebafb23b063190d31d5b4d19a0e0a1306c. k0kubun (Takashi Kokubun)
11:53 PM Revision 252b7185 (git): merge revision(s) bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e, c26057ebafb23b063190d31d5b4d19a0e0a1306c: [Backport #21779]
[PATCH] [Bug #21779] Uniquify `InitVM` functions as well as `Init`
Avoid possible name conflict when `--with-static-linked-ext`.
[PATCH] [Bug #21779] Do not export InitVM functions
Fix ruby/io-console#105.
k0kubun (Takashi Kokubun)
11:52 PM Bug #21772: ruby: YJIT has panicked StackOpnd(1) should be a heap object, but was ImmSymbol for VALUE(137647867319760)
ruby_3_4 commit:628a94104768b294ae8068c7bb39ab9e495fdd94. k0kubun (Takashi Kokubun)
11:51 PM Bug #21446: StackOverflow when changing visibility in reopened refinement
ruby_3_4 commit:7edff469e14541a480a6156efc1cc6e3b526e7bd merged revision(s) commit:1e7cf7b2bc1f9b356b2e980e1e18548618da6363. k0kubun (Takashi Kokubun)
11:51 PM Revision 7edff469 (git): merge revision(s) 1e7cf7b2bc1f9b356b2e980e1e18548618da6363: [Backport #21446]
[PATCH] Fix refinement modification of method visibility in superclass
Previously, this didn't work correctly, resulting in a
SystemStackError. This fixes the issue by finding the related
superclass method entry,...
k0kubun (Takashi Kokubun)
11:35 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
knu (Akinori MUSHA) wrote in #note-14:
> I'm leaning toward doing these:
> ...
+1 I think this is clearly better.
> - Reverting the default size of Enumerator.produce from nil to infinity
I think that change on its own is not wor...
Eregon (Benoit Daloze)
04:10 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
> However, since that functionality actually exists, I think #size has no choice but to return nil.
Respectfully, I disagree. I think it is much easier _and more useful_ to explain it along the lines of...
**It is infinite by impl...
zverok (Victor Shepelev)
03:45 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I understand zverok's feeling. In fact, I thought `Enumerator.produce` always returned an infinite Enumerator. I'm surprised it can be stopped by `StopIteration`. However, since that functionality actually exists, I think `#size` has no ... mame (Yusuke Endoh)
03:26 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
@mame My thinking (already outlined above) goes this way:
* while `Enumerator#size`, I believe, is not used extensively, it might in the future (this very change of `Enumerator.produce` call-sequence brings some attention to it)
* `Enu...
zverok (Victor Shepelev)
03:00 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
Yes, all bug fixes could be incompatibilities. What I am interested in is whether this incompatibility is actually causing a real problem, and if so, what kind of applications or libraries was affected. mame (Yusuke Endoh)
02:54 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
The point of this discussion is that fixing the "bug" broke compatibility, and we are comparing the impacts. That "bug" can or should be properly fixed by changing the code to `Enumerator.produce(1, size: nil) { raise StopIteration }.la... knu (Akinori MUSHA)
02:41 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
With Ruby 3.4:
```ruby
Enumerator.produce(1) { raise StopIteration }.lazy.take(5).size #=> 5
Enumerator.produce(1) { raise StopIteration }.lazy.take(5).to_a.size #=> 1
```
I believe it is fair to call this behavior a bug.
mame (Yusuke Endoh)
02:36 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
mame (Yusuke Endoh) wrote in #note-16:
> What problem do you have if the size is `nil`?
Among others, `Enumerator.produce(1) { it+1 }.lazy.take(5)` now returns nil, which returned 5 previously.
https://github.com/ruby/ruby/blob/6b...
knu (Akinori MUSHA)
02:17 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I couldn't find any cases where `Enumerator#size` returns `Float::INFINITY` for a finite-length Enumerator, except `Enumerator.produce` and when explicitly creating a fake-sized enumerator with `Enumerator.new(Float::INFINITY)`. Am I mis... mame (Yusuke Endoh)
01:15 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
knu (Akinori MUSHA) wrote in #note-14:
> I'm leaning toward doing these:
> ...
IMO, this seems like a great compromise!
zverok (Victor Shepelev)
01:12 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I'm leaning toward doing these:
- Removing the Enumerator#to_set override that refuses to work against an infinite enumerator as a safeguard
- Reverting the default size of Enumerator.produce from nil to infinity
This way we can g...
knu (Akinori MUSHA)
01:00 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
zverok (Victor Shepelev) wrote in #note-7:
> 2) Somebody uses `Enumerator.produce` alongside other types of enumerators. In some branch of their code, they do `raise "Can't do this operation" if enum.size == Float::INFINITY`. The compati...
knu (Akinori MUSHA)
12:34 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
It's good points about compatibility, I agree losing the `size` on `.take` is not good.
IMO trying to detect "infinite loop" (in https://bugs.ruby-lang.org/issues/21654) is kinda pointless, it's the halting problem, for the vast majorit...
Eregon (Benoit Daloze)
12:13 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
> This is where you are mistaken.
No, that's exactly what I've meant:
```ruby
# case 1:
e = Enumerator.produce(1, size: Float::INFINITY) {it>=3 ? raise(StopIteration) : it+1}
p e.to_set
# ruby 3.4: #<Set: {1, 2, 3}>
# master...
zverok (Victor Shepelev)
12:12 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
I may have misread your comment. Let me review again. knu (Akinori MUSHA)
11:53 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
zverok (Victor Shepelev) wrote in #note-7:
> TBH, I don't see the compatibility argument applied with any consistency here.
> ...
This is where you are mistaken.
- Ruby 3.4.7
```shellsession
% ruby -ve 'e=Enumerator.produce(1) {it>...
knu (Akinori MUSHA)
06:26 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> However, the change that made Enumerator#to_set refuse to operate when the size returns infinity introduced a compatibility issue
TBH, I don't see the compatibility argument applied with any consistency here.
Let's imagine severa...
zverok (Victor Shepelev)
04:59 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
The argument that Enumerator.produce is infinite by nature is certainly valid. However, the change that made Enumerator#to_set refuse to operate when the size returns infinity introduced a compatibility issue: it breaks existing code th... knu (Akinori MUSHA)
11:16 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Indeed, `power_assert` is broken with 2 blocks on the same line:
```ruby
require 'test/unit'
class FooTest < Test::Unit::TestCase
def test_foo
assert { 3.times.to_a.include?(2) }; assert { 3.times.to_a.include?(3) }
end
end
```
...
Eregon (Benoit Daloze)
11:05 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
mame (Yusuke Endoh) wrote in #note-17:
> Huh? `Proc` already has its `node_id` (via its ISeq), so `Prism.node_for` is implementable without `source_location`.
> ...
No, `node_id` is CRuby-specific and this code to extract it is a hack.
`...
Eregon (Benoit Daloze)
02:29 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I have the following hypothesis: When people want column information, what they really need is an AST. #21005 was precisely such an example.
In some cases, column information alone may suffice, but obtaining the AST inevitably yields co...
mame (Yusuke Endoh)
02:09 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
> Regarding to power_assert
So it's great power_assert has much more advanced parsing capabilities, but I for one would use the column information for things like Rails' `assert_difference -> { User.count }, +1`, as it would be quite ...
byroot (Jean Boussier)
02:01 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
> And also to be able to use `Prism.node_for` one of course needs `Proc#source_location`.
Huh? `Proc` already has its `node_id` (via its ISeq), so `Prism.node_for` is implementable without `source_location`.
In fact, by doing the follo...
mame (Yusuke Endoh)
12:14 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Yes, it'd be useful for e.g. `assert_raise(SomeException) { ... }` in test-unit, `expect { ... }.to` in RSpec, `-> { ... }.should raise_error(...)` in MSpec, etc.
For example `-> { 13 - "10" }.should raise_error(ArgumentError)` in MSp...
Eregon (Benoit Daloze)
11:21 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Isn't `Proc.source_location` very useful for things akin to `power_assert`?
If it was easy to extract a proc's source code I'd certainly integrate it in testing framework to improve failure rendering.
byroot (Jean Boussier)
09:56 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
mame (Yusuke Endoh) wrote in #note-13:
> I agree. But then, when would `Proc#source_location` be useful?
There are cases where it's useful to show just the block, i.e. `{ block body }`.
And also to be able to use `Prism.node_for` on...
Eregon (Benoit Daloze)
09:51 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Eregon (Benoit Daloze) wrote in #note-12:
> And I suspect many of these cases would likely use `Prism` and specifically [Prism.node_for](https://github.com/ruby/prism/pull/3808) to get more information, such as showing the method call t...
mame (Yusuke Endoh)
09:36 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
byroot (Jean Boussier) wrote in #note-10:
> Maybe I'm totally off, but I expect this data to be used to extract the source code, e.g show a snippet of code in an error message, or something akin to that, hence byte offsets seem actually...
Eregon (Benoit Daloze)
09:31 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I made a PR to re-add `{Method,UnboundMethod,Proc}#source_location` and fix all known issues: https://github.com/ruby/ruby/pull/15580
@matz Would it be OK to merge it? 🙏
For context I opened this issue because I was surprised at the sem...
Eregon (Benoit Daloze)
09:26 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Maybe I'm totally off, but I expect this data to be used to extract the source code, e.g show a snippet of code in an error message, or something akin to that, hence byte offsets seem actually more convenient? (and performant).
But ye...
byroot (Jean Boussier)
08:41 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
matz (Yukihiro Matsumoto) wrote in #note-8:
> I'd like to cancel `source_location` to have column information in 4.0, due to this concern.
> ...
Thank you for the quick reply, I think that would be the worst outcome though, https://bug...
Eregon (Benoit Daloze)
02:46 AM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I'd like to cancel `source_location` to have column information in 4.0, due to this concern. In my personal opinion, I am leaning toward byte index, though.
Matz.
matz (Yukihiro Matsumoto)
10:47 PM Revision 2d014066 (git): [DOC] Harmonize rb_div methods
burdettelamar (Burdette Lamar)
09:46 PM Feature #21785: Add signed and unsigned LEB128 support to pack / unpack
Sorry, I probably should have put an example in the original post. Here is a sample of the usage:
```
irb(main):003> [0xFFF].pack("K")
=> "\xFF\x1F"
irb(main):004> [0xFFF].pack("K").unpack1("K")
=> 4095
irb(main):005> [-123].pac...
tenderlovemaking (Aaron Patterson)
07:59 PM Feature #21785 (Closed): Add signed and unsigned LEB128 support to pack / unpack
Hi,
I'd like to add signed and unsigned LEB128 support to the pack and unpack methods. LEB128 is a variable length encoding scheme for integers. You can read the wikipedia entry about it here: https://en.wikipedia.org/wiki/LEB128
...
tenderlovemaking (Aaron Patterson)
08:00 PM Revision 5e27581c (git): ZJIT: Use rb_zjit_writebarrier_check_immediate() instead of rb_gc_writebarrier() in gen_write_barrier()
* To avoid calling rb_gc_writebarrier() with an immediate value in gen_write_barrier(),
and avoid the LIR jump issue.
Eregon (Benoit Daloze)
08:00 PM Revision 04edf3d9 (git): ZJIT: Add a VALUE#write_barrier helper method to deduplicate logic
Eregon (Benoit Daloze)
08:00 PM Revision 49cecd36 (git): ZJIT: Guard other calls to rb_gc_writebarrier() with a !special_const_p() check
Eregon (Benoit Daloze)
08:00 PM Revision 68174c31 (git): ZJIT: Do not call rb_gc_writebarrier() with an immediate value in gen_write_barrier()
Eregon (Benoit Daloze)
08:00 PM Revision 4d4f414a (git): Use RBIMPL_ASSERT_OR_ASSUME instead of ASSUME for better errors when it does not hold
Eregon (Benoit Daloze)
08:00 PM Revision 094418a6 (git): gc.h: Reintroduce immediate guard in `rb_obj_written`
This guard was removed in https://github.com/ruby/ruby/pull/13497
on the justification that some GC may need to be notified even for
immediate.
But the two currently available GCs don't, and there are plenty
of assumtions GCs don't ever...
byroot (Jean Boussier)
08:00 PM Revision cc048f75 (git): Revert "ZJIT: Do not call rb_gc_writebarrier() with an immediate value in gen_write_barrier()"
* This reverts commit 623559faa3dd0927b4034a752226a30ae8821604.
* There is an issue with the jump in LIR, see https://github.com/ruby/ruby/pull/15542.
Eregon (Benoit Daloze)
07:56 PM Revision eaa952b5 (git): YJIT: Print `Rc` strong and weak count on assert failure
For <https://bugs.ruby-lang.org/issues/21716>, the panic is looking like
some sort of third party memory corruption, with YJIT taking the fall.
At the point of this assert, the assembler has dropped, so there's
nothing in YJIT's code oth...
alanwu (Alan Wu)
07:55 PM Revision 70a7c551 (git): YJIT: Print `Rc` strong and weak count on assert failure
For <https://bugs.ruby-lang.org/issues/21716>, the panic is looking like
some sort of third party memory corruption, with YJIT taking the fall.
At the point of this assert, the assembler has dropped, so there's
nothing in YJIT's code oth...
alanwu (Alan Wu)
07:53 PM Revision f3d1557d (git): Revert "ZJIT: Allow ccalls above 7 arguments"
This reverts commit 2f151e76b5dc578026706b31f054d5caf5374b05.
The SP decrement (push) before the call do not match up with
the pops after the call, so registers were restored incorrectly.
Code from:
./miniruby --zjit-call-threshol...
alanwu (Alan Wu)
07:50 PM Bug #21565 (Closed): YJIT has panicked in rails
alanwu (Alan Wu)
07:42 PM Misc #15487 (Closed): Clarify default gems maintanance policy
zverok (Victor Shepelev)
07:42 PM Feature #12790 (Closed): Better inspect for stdlib classes
zverok (Victor Shepelev)
07:39 PM Feature #20953: Array#fetch_values vs #values_at protocols
Ugh, for some reason this was forgotten.
Any chance it can be updated/merged before 4.0, or is it too late already? Not a big issue, I'd guess, but would be good to wrap it up some time.
@byroot Can I be of any help?
zverok (Victor Shepelev)
07:07 PM Bug #19112 (Closed): Ractor garbage collection breaks/disables all active tracepoints
Applied in changeset commit:git|4fb537b1ee28bb37dbe551ac65c279d436c756bc.
----------
Make tracepoints with set_trace_func or TracePoint.new ractor local (#15468)
Before this change, GC'ing any Ractor object caused you to lose all
enabl...
Anonymous
07:06 PM Revision 4fb537b1 (git): Make tracepoints with set_trace_func or TracePoint.new ractor local (#15468)
Before this change, GC'ing any Ractor object caused you to lose all
enabled tracepoints across all ractors (even main). Now tracepoints are
ractor-local and this doesn't happen. Internal events are still global.
Fixes [Bug #19112]
Luke Gruber
06:06 PM Bug #21715 (Closed): Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
Applied in changeset commit:git|d209e6f1c0a93ad3ce1cc64dd165a6b67672614d.
----------
search_nonascii(): Replace UB pointer cast with memcpy
Casting a pointer to create an unaligned one is undefined behavior in C
standards. Use memcpy t...
alanwu (Alan Wu)
06:06 PM Revision d209e6f1 (git): search_nonascii(): Replace UB pointer cast with memcpy
Casting a pointer to create an unaligned one is undefined behavior in C
standards. Use memcpy to express the unaligned load instead to play by
the rules.
Practically, this yields the same binary output in many situations
while fixing th...
alanwu (Alan Wu)
05:44 PM Revision a8ba2b29 (git): add 21254 to the feature list
tenderlovemaking (Aaron Patterson)
04:47 PM Revision aab4f628 (git): Add the instance variable name and the module in Ractor::IsolationError (#15563)
etienne (Étienne Barrié)
04:06 PM Revision 09a29e13 (git): Add the class variable and the class itself in Ractor::IsolationError (#15562)
etienne (Étienne Barrié)
01:23 PM Revision 6b35f074 (git): Box: [DOC] Add RUBY_BOX in Environment
Satoshi Tagomori
12:39 PM Bug #21654: Set#new calls extra methods compared to previous versions
knu (Akinori MUSHA) wrote in #note-17:
> Adding Range#to\_set and Enumerator#to\_set overrides that perform size checks would help users avoid most common pitfalls.
I think it's actually very rare to call `.to_set` on something else ...
Eregon (Benoit Daloze)
12:20 PM Feature #6012: Proc#source_location also return the column
Right, I thought about that too but forgot to write it.
Several gems have already adapted to this feature and their functionality and/or tests might rely on having the extra information, so it's definitely not great to remove this last ...
Eregon (Benoit Daloze)
11:26 AM Feature #6012: Proc#source_location also return the column
And RSpec were also adjusted to the new behavior AFAICT:
https://github.com/rspec/rspec/pull/282/commits/1c20fa80772ca7a1ed0512056ce7cd6a94f8e68d
vo.x (Vit Ondruch)
11:25 AM Feature #6012: Proc#source_location also return the column
Just FTR, not sure how the revert is supposed to look like, but at least Pry was adjusted for the new behavior:
https://github.com/pry/pry/pull/2357
It does not benefit from columns, but I suspect the revert would somehow influence...
vo.x (Vit Ondruch)
10:16 AM Feature #6012: Proc#source_location also return the column
mame (Yusuke Endoh) wrote in #note-32:
> I record the summary of the discussion regarding Matz's decision to revert this for now. The decision was based on a combination of several reasons:
Thank you for documenting that.
It feels t...
Eregon (Benoit Daloze)
09:42 AM Feature #6012 (Open): Proc#source_location also return the column
I record the summary of the discussion regarding Matz's decision to revert this for now. The decision was based on a combination of several reasons:
* Unclear use cases
* The description of #6012 lacked a use case.
* The use cas...
mame (Yusuke Endoh)
02:43 AM Feature #6012: Proc#source_location also return the column
Although last minute, we will cancel this feature in 4.0 because of design ambiguities such as whether to return column positions in bytes or characters as in #21783.
Matz.
matz (Yukihiro Matsumoto)
10:52 AM Revision 2b1a9afb (git): Fix: Do not pass negative timeout to Addrinfo#connect_internal (#15578)
This change fixes a bug where, with `Socket.tcp`’s `fast_fallback option` disabled, specifying `open_timeout` could unintentionally pass a negative value to `Addrinfo#connect_internal`, `causing an ArgumentError`.
```
❯ ruby -rsocket -e...
Misaki Shioi
08:51 AM Revision e42bcd7c (git): Rename fiber_serial into ec_serial
Since it now live in the EC. byroot (Jean Boussier)
08:51 AM Revision 28b195fc (git): Store the fiber_serial in the EC to allow inlining
Mutexes spend a significant amount of time in `rb_fiber_serial`
because it can't be inlined (except with LTO).
The fiber struct is opaque the so function can't be defined as inlineable.
Ideally the while fiber struct would not be opaque...
byroot (Jean Boussier)
07:53 AM Revision 85b40c5e (git): Box: fix the class name in tests
nobu (Nobuyoshi Nakada)
07:53 AM Revision 5f09e1f0 (git): Box: [DOC] fix the class name in rdoc
Also remove a stale TODO. nobu (Nobuyoshi Nakada)
07:53 AM Revision 8db3642a (git): Box: fix the class name in inspect
nobu (Nobuyoshi Nakada)
07:53 AM Revision 7780d3b6 (git): Box: fix the environment variable name
nobu (Nobuyoshi Nakada)
07:53 AM Revision f4c48505 (git): Box: move extensions from namespace to box
nobu (Nobuyoshi Nakada)
07:13 AM Revision 065c48cd (git): Revert "[Feature #6012] Extend `source_location` for end position
and columns"
This reverts commit 073c4e1cc712064e626914fa4a5a8061f903a637.
https://bugs.ruby-lang.org/issues/6012#note-31
> we will cancel this feature in 4.0 because of design ambiguities
> ...
[#21783]: https://bugs.ruby-lang.org/iss...
nobu (Nobuyoshi Nakada)
06:28 AM Revision 5b0fefef (git): [ruby/rubygems] Added assertion for Windows and nmake
https://github.com/ruby/rubygems/commit/be5c4e27d9 hsbt (Hiroshi SHIBATA)
05:18 AM Revision e4797e93 (git): [ruby/rubygems] Reset MAKEFLAGS option for build jobs tests
https://github.com/ruby/rubygems/commit/09e6031a11 hsbt (Hiroshi SHIBATA)
04:21 AM Revision 080bf30c (git): [ruby/rubygems] Allow to specify the number of `make` jobs when installing gems:
- Added a new `-j` option to `gem install` and `gem update`.
This option allows to specify the number of jobs we pass to `make`
when compiling gem with native extensions.
By default its the number of processors, but users may want...
Edouard CHIN
04:21 AM Revision 9f593156 (git): [ruby/rubygems] Pass down value of `BUNDLE_JOBS` to RubyGems before compiling:
- ### Problem
Since https://github.com/ruby/rubygems/pull/9131, we are now
compiling make rules simultaneously. The number of jobs
is equal to the number of processors.
This may be problematic for some users as they want to cont...
Edouard CHIN
04:05 AM Revision 9168cad4 (git): YJIT: Bail out if proc would be stored above stack top
Fixes [Bug #21266]. rwstauner (Randy Stauner)
03:56 AM Revision f3b9509b (git): [ruby/rubygems] Fix quote handling in mise format ruby version parsing
The previous regex didn't properly match quoted strings
it would capture the opening quote as part of the version
if quotes were mismatched.
This change properly parses double-quoted, single-quoted,
and unquoted version strings separatel...
hituzi no sippo
03:56 AM Revision 3b50f4ba (git): [ruby/rubygems] Support single quotes in mise format ruby version
https://github.com/ruby/rubygems/commit/a7d7ab39dd hituzi no sippo
03:18 AM Revision 3b3ab338 (git): ZJIT: Fix test failures from line number of `Primitive` shifting
This can happen with documentation updates and we don't want
those to trip on ZJIT tests.
Redact the whole name since names like "_bi342" aren't that helpful
anyways.
alanwu (Alan Wu)
02:52 AM Bug #21784: Proc#source_location start column seems strange for -> {}
The column information from `source_location` will be canceled in 4.0. Let us discuss for the future. I think it's a matter of taste. I don't really care much.
Matz.
matz (Yukihiro Matsumoto)
02:36 AM Revision 06019991 (git): [ruby/rubygems] Allow to show cli_help with bundler executable
https://github.com/ruby/rubygems/commit/a091e3fd10 hsbt (Hiroshi SHIBATA)
12:56 AM Revision 38d67986 (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
12:25 AM Revision b6d4562e (git): [DOC] Remove copyright from Set class docs
peterzhu2118 (Peter Zhu)
12:16 AM Revision ff1b8ffa (git): [ruby/rubygems] Tweak the Bundler's "X gems now installed message":
- Fix https://github.com/ruby/rubygems/pull/9188
- This message is a bit misleading because it always outputs one extra
specs, which is Bundler itself.
This is now fixed when the message is about to be output.
https://github.com/ru...
Edouard CHIN
12:15 AM Revision f88e7970 (git): [ruby/rubygems] Allow bundle pristine to work for git gems in the same repo:
- Fix https://github.com/ruby/rubygems/pull/9186
- ### Problem
Running `bundle pristine` in a Gemfile where there is many git gem
pointing to the same repository will result in a error
"Another git process seems to be running in t...
Edouard CHIN
12:10 AM Revision 98cac1a7 (git): Point people to redmine on ZJIT docs (#15499)
Fix https://github.com/Shopify/ruby/issues/900 tekknolagi (Maxwell Bernstein)

12/15/2025

10:48 PM Revision abefd3e8 (git): [ruby/psych] Check that Data members match exactly
* Fixes https://github.com/ruby/psych/issues/760
https://github.com/ruby/psych/commit/952008c898
Eregon (Benoit Daloze)
10:48 PM Revision b3f0fb56 (git): [ruby/psych] Replace C extension with Data#initialize bind_call
https://github.com/ruby/psych/commit/6a826693ba nick evans
10:28 PM Revision cfd41cbf (git): [DOC] Harmonize #-@ methods
burdettelamar (Burdette Lamar)
10:27 PM Revision acbf55f4 (git): [DOC] Harmonize #- methods
burdettelamar (Burdette Lamar)
10:27 PM Revision 7fbf321d (git): [DOC] Harmonize #** methods
burdettelamar (Burdette Lamar)
10:07 PM Revision 98ab418f (git): Revert "Fix Socket.tcp cleanup after Thread#kill (#15131)" (#15565)
This reverts commit 3038286a4bf7832f1c42c8cc9774ee6ff19876fc.
The following CI failure scared me:
https://github.com/ruby/ruby/actions/runs/20241051861/job/58108997049
```
1) Timeout:
TestResolvDNS#test_multiple_servers_with_timeou...
Luke Gruber
08:52 PM Bug #21784: Proc#source_location start column seems strange for -> {}
I made a PR to fix this: https://github.com/ruby/ruby/pull/15568
Looking at https://github.com/ruby/ruby/pull/9872/files it's clear in Prism it was just done to be compatible with parse.y.
And in parse.y it's probably not intentional...
Eregon (Benoit Daloze)
04:40 PM Bug #21784: Proc#source_location start column seems strange for -> {}
I too, would expect the whole expression to be covered. This would be also consistent with `Method#source_location` which includes `def` (and not starts from the argument, or from the beginning of the body). zverok (Victor Shepelev)
04:32 PM Bug #21784: Proc#source_location start column seems strange for -> {}
Interesting.
The arguments (parameters) between `->` and `{` are AFAIK integral part of the stabby lambda syntax, so I think it should be either:
* All cases start at the `{`:
* consistent with non-stabby-lambda Procs
* but does ...
Eregon (Benoit Daloze)
03:35 PM Bug #21784: Proc#source_location start column seems strange for -> {}
Except the problematic case `-> { }`, start position consistently excludes whitespaces just after `->`.
So I think `-> { }`'s source location should be `{ }`.
~~~ruby
-> ( ) { }.source_location # ["(irb)", 1, 3, 1, 10]
^^^^^^^
->...
tompng (tomoya ishida)
10:53 AM Bug #21784 (Open): Proc#source_location start column seems strange for -> {}
```
$ ruby -e 'p -> { a }.source_location'
["-e", 1, 4, 1, 10]
```
So it considers the stabby lambda to be at:
```ruby
p -> { a }.source_location
^^^^^^
```
Note it starts at a whitespace after the `->`.
I think it should ...
Eregon (Benoit Daloze)
08:27 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Honestly if we're interpreting column as something visual like you're implying, we're also going to run into issues with grapheme clusters and east asian width and all the other implications for whatever "character" actually means. I thi... kddnewton (Kevin Newton)
07:55 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
From https://bugs.ruby-lang.org/issues/6012#note-25 @matz said adding column was OK, but not byte offsets.
I'm not sure what were his reasons, but maybe it's that byte offsets are too low-level for `source_location`?
If so, I would thi...
Eregon (Benoit Daloze)
06:29 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
Updating the docs is one solution, so at least it's consistent between docs and behavior.
I think as a Ruby-facing API it's weird that it operates in terms of bytes (and `source_location` does not have a `byte` prefix to indicate that...
Eregon (Benoit Daloze)
03:13 PM Bug #21783: {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
I think this is a documentation issue, as both parsers/compilers operate in terms of bytes. Changing this to characters would likely be a noticeable difference in speed, and quite a bit of code change. (Either both parsers/compilers woul... kddnewton (Kevin Newton)
10:40 AM Bug #21783 (Open): {Method,UnboundMethod,Proc}#source_location returns columns in bytes and not in characters
The documentation says:
```
= Proc.source_location
(from ruby core)
------------------------------------------------------------------------
prc.source_location -> [String, Integer, Integer, Integer, Integer]
---------------...
Eregon (Benoit Daloze)
05:16 PM Revision 74b24e09 (git): Update default gems list at adf676c530b5da2822aa3b03ee43e5 [ci skip]
git[bot]
05:15 PM Revision adf676c5 (git): [ruby/erb] Version 6.0.1
https://github.com/ruby/erb/commit/bbde68fcd5 k0kubun (Takashi Kokubun)
05:14 PM Revision fdd8bdea (git): [ruby/erb] Freeze ERB::Compiler::TrimScanner::ERB_STAG
(https://github.com/ruby/erb/pull/100)
For Ractor compatibility.
https://github.com/ruby/erb/commit/43f0876595
osyoyu (Daisuke Aritomo)
04:52 PM Revision 9581d6c8 (git): ZJIT: Add iongraph-generating Ruby script (#15466)
Run like so:
$ ../tool/zjit_iongraph.rb ../build-dev/miniruby --zjit-call-threshold=2 tmp/ghbug.rb
false
false
tmp/ghbug.rb:3:in 'Object#doit': this shouldnt ever be nil (RuntimeError)
from tmp/ghbug.rb:10:in...
tekknolagi (Maxwell Bernstein)
04:48 PM Revision 3038286a (git): Fix Socket.tcp cleanup after Thread#kill (#15131)
Socket.tcp launches ruby threads to resolve hostnames, and those threads
communicate through a queue implemented with `IO.pipe`. When the thread
that called `Socket.tcp` is killed, the resolver threads still try to
communicate through th...
Luke Gruber
04:28 PM Revision 6b63b0cb (git): [DOC] Update Set#inspect description in NEWS
jeremyevans (Jeremy Evans)
03:52 PM Revision bb0e42c5 (git): Define Array#detect as an alias for Array#find
Otherwise Array#detect is Enumerable#detect while Array#find uses a
different more performant implementation.
[Feature #21678]
etienne (Étienne Barrié)
03:10 PM Feature #21678: Enumerable#rfind
Is this an issue where you could have defined `Enumerable#find` and now it won't have overwritten `Array#find`? Should I revert that part of this patch? kddnewton (Kevin Newton)
11:14 AM Feature #21678: Enumerable#rfind
@etienne Yes, that seems clearly a good fix, could you do it?
(I personally don't like `detect` but we should keep aliases consistent in performance and behavior)
Eregon (Benoit Daloze)
10:35 AM Feature #21678: Enumerable#rfind
Should we alias `detect` to also use that Array-specific faster implementation?
```console
>> [].method :detect
=> #<Method: Array(Enumerable)#detect(*)>
> ...
=> #<Method: Array#find(*)>
```
Edit: https://github.com/ruby/ruby/pull/15558
etienne (Étienne Barrié)
01:43 PM Revision ac946e07 (git): [ruby/prism] Unreference before destroying in call node in pattern
https://github.com/ruby/prism/commit/609c80c91e kddnewton (Kevin Newton)
11:49 AM Bug #21709: Regexp interpolation is inconsistent with String interpolation
Right, I think Regexp interpolation should be closer to String interpolation, currently it's its own separate thing with rather weird rules.
It reminds me of some other issues related to Regexp interpolation like #20407 and linked issues.
Eregon (Benoit Daloze)
11:42 AM Feature #8948: Frozen regex
Right, it's too late for 4.0, OK.
> Frankly, I don't think freezing the Regexp objects is worth the effort/trouble.
I already did the implementation effort so that part is fine.
I think it's worth it for consistency and clean sema...
Eregon (Benoit Daloze)
11:38 AM Revision eceab2f4 (git): [ruby/prism] Escape error location is incorrect for some regex
When you have a regular expression that has a named capture that
has an escape sequence in the named capture, and that escape
sequence is a unicode escape sequence with an invalid surrogate
pair, the error was attached to the owned strin...
kddnewton (Kevin Newton)
11:11 AM Revision bbc10ed0 (git): Add NEWS entry for Array#rfind and Array#find
Eregon (Benoit Daloze)
10:40 AM Bug #21174: Range#max called with an argument on a beginless Integer Range raises RangeError
It's a bit late to mention this, but I find this new behavior quite strange.
Range is used to represent both discrete sequences and continuous ranges, and when performing iterative operations, the begin value distinguishes between them....
mame (Yusuke Endoh)
10:21 AM Bug #21723: `binding.irb` raises a LoadError under `bundle exec` when Gemfile contains `path:` or `git:`
I have discovered that this issue reproduces when Gemfile contains a gem referred by `path:` or `git:`.
Such Gemfiles are pretty much common in real-world applications including Rails, which use in-house Gems and libraries, like this:
...
osyoyu (Daisuke Aritomo)
09:59 AM Bug #21782: Ractor::IsolationError reports incorrect path for constants found through upwards search
Patch submitted: https://github.com/ruby/ruby/pull/15556 osyoyu (Daisuke Aritomo)
09:20 AM Bug #21782 (Closed): Ractor::IsolationError reports incorrect path for constants found through upwards search
Ractor::IsolationError is raised when non-main Ractors attempt access to non-shareable constants. The message contains the path to the constant which triggered the violation.
However, the path is incorrect when the constant was resolved...
osyoyu (Daisuke Aritomo)
09:51 AM Revision 35209cae (git): Update default gems list at f0793731853c0e130f798e9dc5c736 [ci skip]
git[bot]
09:50 AM Revision f0793731 (git): [ruby/openssl] Ruby/OpenSSL 4.0.0
https://github.com/ruby/openssl/commit/5af1edab18 rhenium (Kazuki Yamaguchi)
09:09 AM Revision f06eb756 (git): [ruby/openssl] ossl.c: improve docs for constants and methods under ::OpenSSL
https://github.com/ruby/openssl/commit/b0de8ba9bd rhenium (Kazuki Yamaguchi)
09:09 AM Revision ee6ba41b (git): [ruby/openssl] Freeze more constants for Ractor compatibility
https://github.com/ruby/openssl/commit/695126f582 rhenium (Kazuki Yamaguchi)
08:44 AM Bug #21715: Miscompilation on x86-64-v2 due to undefined behavior in search_nonascii in string.c
I investigated further and I understand Alan's patch is the best at this time.
auto vectorization for this kind of loop is implemented only by GCC 15, it's too early.
@Alan, could you commit it?
naruse (Yui NARUSE)
08:38 AM Revision 10876c27 (git): Skip test_crash_report_pipe with macOS 15
hsbt (Hiroshi SHIBATA)
08:38 AM Revision d69dff1d (git): macOS 15 is the stable version today
hsbt (Hiroshi SHIBATA)
08:38 AM Revision 3563a0db (git): Add predicates for platforms
nobu (Nobuyoshi Nakada)
08:38 AM Revision c98aa977 (git): Pend some tests because these are not working with macOS 15 beta and Xcode 16 beta
hsbt (Hiroshi SHIBATA)
08:38 AM Revision b3e1d82f (git): Remove macos-13 and add macos-15.
hsbt (Hiroshi SHIBATA)
07:05 AM Revision 5a4faaae (git): Merge `root_box_data` into `root_box`
* Make invariant `root_box` an array consist of only `root_box_data`.
* Remove the unnecessary initializer list that is just overwritten in
`initialize_root_box()` and missing `classext_cow_classes`.
* Shrink the scope using another lo...
nobu (Nobuyoshi Nakada)
06:08 AM Revision 700487ce (git): [ruby/net-http] Refactor HTTPS tests
This contains various improvements in tests for openssl integration:
- Remove DHE parameters from test servers. OpenSSL is almost always
compiled with ECC support nowadays and will prefer ECDHE over DHE.
- Remove an outdated omi...
rhenium (Kazuki Yamaguchi)
03:11 AM Revision a2dc4d7f (git): Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v...
dependabot[bot]
02:33 AM Revision 76f30030 (git): Bump msys2/setup-msys2 from 2.29.0 to 2.30.0
Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits...
dependabot[bot]
02:31 AM Revision dd25fdcd (git): Bump actions/cache from 5.0.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
02:01 AM Revision 1e76b1f8 (git): [DOC] Remove doc/reline
Reline has been moved to a bundled gem, so we don't need the docs anymore. peterzhu2118 (Peter Zhu)
01:15 AM Revision 58940377 (git): [ruby/rubygems] Write gem files atomically
This change updates `write_binary` to use a new class,
`AtomicFileWriter.open` to write the gem's files. This implementation
is borrowed from Active Support's [`atomic_write`](https://github.com/rails/rails/blob/main/activesupport/lib/ac...
eileencodes (Eileen Uchitelle)

12/14/2025

10:35 PM Revision e7cf07ba (git): [DOC] Fix link in MakeMakefile
burdettelamar (Burdette Lamar)
09:11 PM Revision 490a03ba (git): [ruby/prism] Fix `sexp_processor` gem reference
It's https://rubygems.org/gems/sexp_processor, not https://rubygems.org/gems/sexp
https://github.com/ruby/prism/commit/b8a00a5f15
Earlopain (Earlopain _)
07:17 PM Bug #21780: Change the default size of Enumerator.produce back to infinity
There are, by the way, other effects of the current default that are, even if minor, still annoying:
```ruby
Enumerator.produce(1, &:succ).lazy.take(6).size
# Ruby 3.4: => 6 -- which is correct and useful
# Ruby 4.0: => nil -- ...
zverok (Victor Shepelev)
10:19 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
> I think `Enumerator#size` should only be non-nil when it is known to be the exact size.
> ...
I would argue that it is _known_ to be infinite: that's how `produce` works: loops infinitely, unless explicitly stopped by an _exception_, t...
zverok (Victor Shepelev)
10:10 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
Actually for Enumerator.new, it's trivial to not be infinite and does not even need StopIteration, e.g.:
```ruby
Enumerator.new { |y| y << 1 }.count # => 1
```
So I guess you meant to use `Enumerator.produce` instead in your exampl...
Eregon (Benoit Daloze)
10:08 AM Bug #21780: Change the default size of Enumerator.produce back to infinity
I disagree on this one, as written on https://bugs.ruby-lang.org/issues/21701#note-3
I think `Enumerator#size` should only be non-nil when it is known to be the exact size.
In this case it is not known if it is infinite, so returning `F...
Eregon (Benoit Daloze)
08:46 AM Bug #21780 (Closed): Change the default size of Enumerator.produce back to infinity
In #21701 a new argument `size:` was introduced, and its default value is `nil` (unknown).
While I support the new argument, I'd argue that the default should be `Float::INFINITY`.
**Reasoning:** By _design_, `Enumerator.produce` ...
zverok (Victor Shepelev)
06:37 PM Revision 3e5c4ebe (git): [DOC] Fix backticks in Numeric#ceil
peterzhu2118 (Peter Zhu)
06:37 PM Revision cd27337d (git): [DOC] Fix backticks in Numeric#floor
peterzhu2118 (Peter Zhu)
06:33 PM Feature #21781 (Open): Add `fetch_values` method on `ENV`
In https://bugs.ruby-lang.org/issues/10017, `fetch_values` was introduced for `Hash`. `ENV` is hash-like but is missing the method. Here are the differences between hash and env right now:
```rb
irb(main):006> Hash.instance_methods -...
Earlopain (Earlopain _)
05:14 PM Revision 529b4914 (git): [ruby/prism] Only set location end when it is larger
https://github.com/ruby/prism/commit/65595d6c2c kddnewton (Kevin Newton)
05:14 PM Revision ca083515 (git): [ruby/prism] Unreference the block node before destroying it
https://github.com/ruby/prism/commit/fc150b1588 kddnewton (Kevin Newton)
04:42 PM Revision 4a84fa1b (git): [ruby/prism] Define RubyParser::SyntaxError directly and drop require for ruby_parser.
Had to add a require of sexp since that came in indirectly via ruby_parser.
https://github.com/ruby/prism/commit/df677c324f
Ryan Davis
02:13 PM Feature #21005: Update the source location method to include line start/stop and column start/stop details
Here is my PR to add `Prism.node_for` as first suggested by @mame in https://bugs.ruby-lang.org/issues/21005#note-5:
https://github.com/ruby/prism/pull/3808
Eregon (Benoit Daloze)
10:46 AM Revision 674c3d73 (git): [ruby/openssl] pkcs7: raise OpenSSL::PKCS7::PKCS7Error in #initialize
When d2i_PKCS7_bio() and PEM_read_bio_PKCS7() fail to decode the input,
OpenSSL::PKCS7.new currently raises ArgumentError. The usual practice
in ruby/openssl where an error originates from the underlying OpenSSL
library is to raise OpenS...
rhenium (Kazuki Yamaguchi)
10:46 AM Revision 7969b654 (git): [ruby/openssl] x509cert: update doc for OpenSSL::X509::Certificate#==
Mention the underlying OpenSSL function. Add a note about the unreliable
comparison when called on an incomplete object.
Fixes https://github.com/ruby/openssl/issues/844
https://github.com/ruby/openssl/commit/736af5b3c7
rhenium (Kazuki Yamaguchi)
08:54 AM Feature #21389: Simplify Set#inspect output
@jeremyevans0 Thank you for the clarification. I'll try to consider adjusting the docs to reflect the design. zverok (Victor Shepelev)
02:46 AM Feature #21389 (Closed): Simplify Set#inspect output
zverok (Victor Shepelev) wrote in #note-5:
> Just noticed that on the latest `master` subclasses `#inspect` didn't change (unlike what @matz suggests here: https://bugs.ruby-lang.org/issues/21389#note-3):
> ...
Yes, this is deliberate ...
jeremyevans0 (Jeremy Evans)
08:53 AM Bug #21778: Binding#eval vs implicit parameters
@mame Thank you for the clarification! zverok (Victor Shepelev)
02:39 AM Bug #21778 (Rejected): Binding#eval vs implicit parameters
This was pointed by @ko1 at the dev meeting in the discussion of #21049, and we agreed not to implement it. Implementing it would require the parser to accept more detailed outer context, and that effort was not worth. Sorry it wasn't cl... mame (Yusuke Endoh)
08:50 AM Misc #21777: DevMeeting-2026-01-14
* [Bug #21780] Change the default size of `Enumerator.produce` back to infinity (zverok)
* While the new argument is a good addition to the API, I argue that `Float::INFINITY` would be a more friendly default, corresponding to the mos...
zverok (Victor Shepelev)
07:11 AM Revision 711d1499 (git): Adjust indents [ci skip]
nobu (Nobuyoshi Nakada)
02:59 AM Revision ab95abd4 (git): Update default gems list at 9e22037eb50d7abe6385901c9b0293 [ci skip]
git[bot]
02:59 AM Revision 9e22037e (git): [ruby/io-console] bump up to 0.8.2
https://github.com/ruby/io-console/commit/fbc7e1f31f nobu (Nobuyoshi Nakada)
02:45 AM Revision f6ef4efa (git): ZJIT: Add a test for `--zjit-stats=<path>` option
Fix up ruby/ruby#15414, 29c29c2b7e972359ab83038c5dc27a7e53ae65c7 nobu (Nobuyoshi Nakada)
02:45 AM Revision 3a4d534b (git): ZJIT: Fix tests about `--zjit-stats-quiet` option
The `--zjit-stats-quiet` and `--zjit-stats=quiet` options differ.
The latter option, `=quiet`, does print stats to the file "quiet", but
does not suppress output like yjit option `--yjit-stats=quiet`.
Fix up ruby/ruby#15414, 29c29c2b7e9...
nobu (Nobuyoshi Nakada)
02:43 AM Bug #21779 (Closed): Do not export functions from statically linked extensions
Applied in changeset commit:git|bc2a8a002a6c41fc1b28e02e15e2fb2b72d1b66e.
----------
[Bug #21779] Uniquify `InitVM` functions as well as `Init`
Avoid possible name conflict when `--with-static-linked-ext`.
nobu (Nobuyoshi Nakada)
02:10 AM Bug #21779 (Closed): Do not export functions from statically linked extensions
Reported at https://github.com/ruby/io-console/pull/105.
This is caused by `InitVM_console` exposed from the statically linked io/console is called from the loaded io-console gem.
The static `InitVM_console` initializes the ractor lo...
nobu (Nobuyoshi Nakada)
02:11 AM Revision c26057eb (git): [Bug #21779] Do not export InitVM functions
Fix ruby/io-console#105. nobu (Nobuyoshi Nakada)
02:11 AM Revision bc2a8a00 (git): [Bug #21779] Uniquify `InitVM` functions as well as `Init`
Avoid possible name conflict when `--with-static-linked-ext`. nobu (Nobuyoshi Nakada)
01:57 AM Revision 01db5d71 (git): Removed duplicate code
nobu (Nobuyoshi Nakada)
01:09 AM Revision c198436f (git): Run omnibus compilations without git
nobu (Nobuyoshi Nakada)

12/13/2025

08:30 PM Revision 0159a98b (git): [Feature #20925] Skip infinite loop test
nobu (Nobuyoshi Nakada)
08:09 PM Revision b423204c (git): Fix documentation of RB_PASS_CALLED_KEYWORDS in C API
Eregon (Benoit Daloze)
06:53 PM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
Oh, that's a very interesting trick @tompng byroot (Jean Boussier)
05:50 PM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
Maybe this is off-topic, but I think this stack that internally use queue can perform closer to Thread::Queue.
~~~ruby
def pop(timeout: nil)
if @dummy_resource_queue.deq(timeout:)
@real_resource_array.pop
end
end
def <<(...
tompng (tomoya ishida)
08:33 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
I'm +1 on making Monitor core.
(FWIW TruffleRuby already uses `Primitive` to define Monitor as basically core: https://github.com/truffleruby/truffleruby/blob/master/lib/mri/monitor.rb)
Eregon (Benoit Daloze)
07:10 AM Feature #21721: Allow `Queue` and `SizedQueue` to be used as LIFO queues
So, if Monitor was made a core class, it could benefit from some optimizations and be almost as fast as Mutex: https://github.com/ruby/ruby/pull/15538
```
ruby 4.0.0dev (2025-12-13T06:49:18Z core-monitor 6fabf389fd) +YJIT +PRISM [arm...
byroot (Jean Boussier)
06:50 PM Bug #21669: Thoroughly implement void value expression check
Yeah, sure. I compiled them in this gist: https://gist.github.com/Earlopain/79d49df05cca5b0c8c6cefc6f3284a4b. I missed one vendored file, so there are only 6 distinct cases.
In `ruby/prism` I added a script for this. You call it like ...
Earlopain (Earlopain _)
05:57 PM Bug #21669: Thoroughly implement void value expression check
Earlopain (Earlopain _) wrote in #note-12:
> I ran this change over code available on rubygems and it only impacts 37 files which go syntax invalid with this. If I take out duplicate vendorered files, it is down to just 7.
If it's no...
jeremyevans0 (Jeremy Evans)
02:05 PM Bug #21669: Thoroughly implement void value expression check
Yeah, it seems like I missed this case but @nobu already took care of it in his PR. I left a comment about something, however since this is in ruby/ruby now I can't actually push any changes anymore myself.
I ran this change over code...
Earlopain (Earlopain _)
06:31 PM Feature #21389 (Open): Simplify Set#inspect output
Just noticed that on the latest `master` subclasses `#inspect` didn't change (unlike what @matz suggests here: https://bugs.ruby-lang.org/issues/21389#note-3):
```ruby
class MySet < Set
end
p Set[1, 2, 3] #=> Set[1, 2, 3]
p My...
zverok (Victor Shepelev)
06:11 PM Bug #21778 (Rejected): Binding#eval vs implicit parameters
This works:
```ruby
proc { |x| binding.eval('x') }.call(1) #=> 1
```
This doesn't (neither with numbered parameters, nor with `it`):
```ruby
proc { _1; binding.eval('_1') }.call(1) # undefined local variable or method '_1' for ...
zverok (Victor Shepelev)
04:57 PM Revision e8d32ddd (git): [ruby/openssl] ossl.c: implement OpenSSL::OpenSSLError#detailed_message
An OpenSSL function sometimes puts more than one error entry into the
thread-local OpenSSL error queue. Currently, we use the highest-level
entry for generating the exception message and discard the rest.
Let ossl_make_error() capture a...
rhenium (Kazuki Yamaguchi)
03:43 PM Revision 6513cf90 (git): Export `GIT`
Propagate the value given with `--with-git` configure option to
tool/lib/vcs.rb.
nobu (Nobuyoshi Nakada)
02:33 PM Feature #21701 (Closed): Enumerator.produce accepts an optional `size` keyword argument
Applied in changeset commit:git|79a6ec74831cc47d022b86dfabe3c774eaaf91ca.
----------
Enumerator.produce accepts an optional `size` keyword argument
When not specified, the size is unknown (`nil`). Previously, the size was always `Floa...
Anonymous
02:33 PM Revision 79a6ec74 (git): Enumerator.produce accepts an optional `size` keyword argument
When not specified, the size is unknown (`nil`). Previously, the size was always `Float::INFINITY` and not specifiable.
[Feature #21701]
Akinori MUSHA
02:29 PM Revision 0561eb94 (git): [ruby/prism] Prevent an infinite loop parsing a capture name
Fixes https://github.com/ruby/prism/pull/3729.
https://github.com/ruby/prism/commit/6e5347803c
Steven Johnstone
12:37 PM Revision 8f2c479f (git): [ruby/io-console] strip trailing spaces [ci skip]
https://github.com/ruby/io-console/commit/379e7c17ed nobu (Nobuyoshi Nakada)
12:37 PM Revision 3a4ad76f (git): [ruby/io-console] console_cursor_pos respects scroll position on windows
https://github.com/ruby/io-console/commit/ae33785820 YO4 (Yoshinao Muramatsu)
12:37 PM Revision c8fd8405 (git): [ruby/io-console] console_goto respects scroll position on windows
https://github.com/ruby/io-console/commit/d2a6c69697 YO4 (Yoshinao Muramatsu)
12:37 PM Revision 29128258 (git): [ruby/io-console] avoid jumping scroll position when winsize changed
On windows, IO.console.winsize= now respects the current view area and screen buffer size.
https://github.com/ruby/io-console/commit/817aa65ea3
YO4 (Yoshinao Muramatsu)
12:10 PM Bug #21648: [prism] ruby crashes for `for * in [10]; end`
Thanks @k0kubun. Seems like I can, yeah. I'll do that in the future where I think it makes sense. Earlopain (Earlopain _)
11:34 AM Revision 9dbbdcc3 (git): [ruby/io-console] Remove useless rb_check_arity() call
https://github.com/ruby/io-console/commit/df444b93f1 nobu (Nobuyoshi Nakada)
04:52 AM Revision 71dd2725 (git): Remove useless rb_check_arity() calls
shugo (Shugo Maeda)
02:23 AM Revision e1f5e61d (git): YJIT: Fix panic from overly loose filtering in identity method inlining
Credits to @rwstauner for noticing this issue in GH-15533. alanwu (Alan Wu)
01:27 AM Revision 6ed5574b (git): Revert "ZJIT: Exclude failing ruby-bench benchmarks (#15479)"
This reverts commit 1eb10ca3cb6cff98bb8c0946ed905921586c7d52.
This should have been fixed by https://github.com/ruby/ruby/pull/15536.
k0kubun (Takashi Kokubun)
01:00 AM Revision eb7acd75 (git): ZJIT: Nil-fill locals in direct send (#15536)
Avoid garbage reads from locals in eval.
Before the fix the test fails with
<"[\"x\", \"x\", \"x\", \"x\"]"> expected but was
<"[\"x\", \"x\", \"x\", \"x286326928\"]">.
rwstauner (Randy Stauner)
 

Also available in: Atom