Activity
From 01/08/2026 to 01/14/2026
Today
-
05:27 PM Feature #13683: Add strict Enumerable#single
- `Enumerable#sole` is a method that should only be used when the Enumerable has only one element. Using it in other cases (0 or 2+ elements) is considered a bug, or literally "exceptional", so raising an exception makes perfect sense.
... -
05:03 PM Feature #13683: Add strict Enumerable#single
- @byroot it depends on the use case. Yes sometimes it's an assertion that should raise an error, but at other times we want to find the single element, and do something **only if** found, not raise an error.
@ufuk the same way you disamb... -
04:42 PM Feature #13683: Add strict Enumerable#single
- @Dan0042 If the proposed method isn't going to raise an exception, then how would one disambiguate between a `nil` result because the collection has a single entry which is `nil` and a `nil` result since the collection has (for example) ...
-
03:35 PM Feature #13683: Add strict Enumerable#single
- matz (Yukihiro Matsumoto) wrote in #note-41:
> One possible solution is providing our version of `sole` that raises `ArgumentError`, only if AcriveSupport would define `SoleItemExpectedEror = ArgumentError` or something similar.
My u... -
02:22 PM Feature #13683: Add strict Enumerable#single
- The exception here isn't meant to be used for control flow any more than `KeyError` is when you use `Hash#fetch`.
It's used as some sort of assertion, you wouldn't typically rescue it. -
02:13 PM Feature #13683: Add strict Enumerable#single
- Please consider a method that returns nil instead of raising an exception. Exceptions should not be used for control flow.
Which one is better?
```ruby
#method returning nil
val = collection.one{ ... } #match or ni... -
08:39 AM Feature #13683: Add strict Enumerable#single
- > if AcriveSupport would define SoleItemExpectedEror = ArgumentError or something similar.
We can do that, that's no problem.
If `Enumerable#sole` lands in Ruby, I'll take care of handling any backward compatibility issue in Rails/... -
07:42 AM Feature #13683: Add strict Enumerable#single
- I now agree with having a method with proposed behavior. We have to pick a name for it.
I don't like `single`. I have no strong opinion for/against `sole`. But I don't want to introduce a new exception class dedicated to this sole metho... -
05:26 PM Bug #21832: segfault with argument forwarding, when combined with splat & positional arg
- Backport PR's:
4.0: https://github.com/ruby/ruby/pull/15870
3.4: https://github.com/ruby/ruby/pull/15869 -
02:47 PM Bug #21816: iseq code_location of proc changed
- The change in `RubyVM::AST.of` seems to have been introduced in http://github.com/ruby/ruby/commit/2ccb2de677849732181224cb9fd1a831dbaac4c0. There is a test update where the source for the proc `Proc.new { 1 + 2 }` changes from `{ 1 + 2 ...
-
08:26 AM Bug #21816: iseq code_location of proc changed
- What is strange is we can see this in 4.0.0, while it should only be in master.
https://github.com/ruby/ruby/pull/15568 was not merged.
And https://github.com/ruby/ruby/pull/15580 was merged after 4.0.0. -
08:23 AM Bug #21816: iseq code_location of proc changed
- It is intentional change of #21784.
The source of the lambda in `...; -> { @object.num }; ...` is `-> { @object.num }`, isn't it?
I think the code should be adapted to handle that.
BTW https://github.com/rails/rails/blob/3d31d593e6cf0f8... -
11:22 AM Feature #21821: Add Stack and SizedStack classes
- Discussed at the dev meeting. No conclusion has been reached, but some opinions raised included:
* Instead of introducing separate classes for each algorithm, how about introducing a generic container class under a more use-case-drive... -
10:50 AM Feature #21800: `Dir.foreach` and `Dir.each_child` to optionally yield `File::Stat` object alongside the children name
- > The lazy File::Stat
My draft was just yielding a symbol: https://github.com/ruby/ruby/pull/15667, @nobu did the `File::Stat` version, I thought it was elegant, and degraded better on platforms where `d_type` is not supported.
> .... -
10:34 AM Feature #21800: `Dir.foreach` and `Dir.each_child` to optionally yield `File::Stat` object alongside the children name
- Discussed at the dev meeting, several points were raised.
* The lack of portability is concerning (as @matz already mentioned).
* The lazy `File::Stat` is concerning about the timing: the file type reflects information at the time of... -
08:00 AM Feature #21800: `Dir.foreach` and `Dir.each_child` to optionally yield `File::Stat` object alongside the children name
- @matz yes, but not we're not exposing `dirent.d_type` to users, but a lazily initialized `File::Stat`. This means that even on platform where `d_type` is missing, the Ruby level API is identical, just less performant.
-
05:03 AM Feature #21800: `Dir.foreach` and `Dir.each_child` to optionally yield `File::Stat` object alongside the children name
- The point is `dirent.d_type` is **not** defined in POSIX, so the API may be unreliable.
Matz.
-
09:42 AM Feature #21827: Deprecating Ripper
- Prism contains a compatiblity layer with ripper, which I think would be a good temporary solution. It's not quite there yet (irb, rdoc use undocumented APIs which it doesn't mirror yet), and there are some subtle compatibility issues (ir...
-
09:23 AM Misc #21804: Getting setup-ruby Earlier
- >In contrast, ruby-build is maintained by the rbenv organization and tends to become available shortly after a Ruby release. This makes it easier to start using new Ruby versions immediately.
This is by my effort. However, I don't thi... -
07:54 AM Feature #21788: Promote Thread::Monitor to a core class
- > Do you mean it is useful because of recursive mutex?
It's very often used as one.
In my case I'm interested in speeding it up, to help speedup synchronized constructs such as connection pools, so I need the condition variable. -
01:41 AM Feature #21788: 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.
Do you mean it is useful because of recursive mutex? If it is the reason, `Mutex.new(recursive: true)` or something similar is an... -
06:09 AM Feature #21813: Add [:forward, :...] symbol tuple to indicate forwarding arguments when calling `Method#parameters`
- @nobu Perhaps I came up with a contrived example, but I wanted to point out that there is a lack of symmetry when it comes to `...`
As of right now, there is no way to know from the `Method` reflection API alone whether a method is usin... -
04:44 AM Bug #21820: "vm_call_cfunc: cfp consistency error" occurs during rdoc generation when installing Ruby 4.0.0 via rbenv on Ubuntu 24.04
- I'm not sure what is related issue: https://github.com/ruby/rdoc/issues/1564
```
...
/home/user/.asdf/installs/ruby/4.0.0/bin/ruby -c lib/rubygems.rb
RDoc is not a full Ruby parser and will fail when fed invalid ruby programs.
... -
02:03 AM Feature #21822: Expose Return Value in the ensure Block
- Is the variable `nil` if an exception is raised, even for non-local variable?
By analogy with `rescue`, it feels natural for me that the variable is unchanged in that case. -
01:09 AM Feature #19107: Allow trailing comma in method signature
- Can we reconsider this? To Matz' question (see also: [DevMeeting-2022-12-01](https://github.com/ruby/dev-meeting-log/blob/master/2022/DevMeeting-2022-12-01.md#feature-19107-allow-trailing-comma-in-method-signature-byroot)):
> Is there...
01/13/2026
-
09:33 PM Feature #21837 (Open): Introduce socket hooks in Fiber Scheduler interface
- Currently the fiber scheduler interface does not support any socket operations. The stock Ruby socket implementation performs all operations in a non-blocking way, and invokes the `#io_wait` fiber scheduler hook in order to wait for read...
-
09:29 PM Bug #21836 (Open): RUBY_MN_THREADS deadlock and sleep issues
- I created a benchmark for the purpose of testing [a fix](https://github.com/ruby/ruby/pull/15840) for [Issue 21685](https://bugs.ruby-lang.org/issues/21685)
The benchmark is inline below and saved as 100usec.rb. It should always take ... -
07:41 PM Bug #21832 (Closed): segfault with argument forwarding, when combined with splat & positional arg
- Fixed with https://github.com/ruby/ruby/commit/1a0b356d4069d4f8f0a0b805c2a15e61e4ab0d08
-
09:03 AM Bug #21832: segfault with argument forwarding, when combined with splat & positional arg
- There is a PR: https://github.com/ruby/ruby/pull/15855. It's a prism-specific issue.
-
04:45 PM Bug #21820: "vm_call_cfunc: cfp consistency error" occurs during rdoc generation when installing Ruby 4.0.0 via rbenv on Ubuntu 24.04
- > I gave it a try but could not reproduce the issue on Ubuntu 24.04 running in Docker.
Umm...
I forgot to mention this earlier, but to be precise, the environment where I encountered the error is Ubuntu 24.04 on WSL (Windows 11).
... -
02:21 PM Bug #21820: "vm_call_cfunc: cfp consistency error" occurs during rdoc generation when installing Ruby 4.0.0 via rbenv on Ubuntu 24.04
- I gave it a try but could not reproduce the issue on Ubuntu 24.04 running in Docker. Can anyone reproduce this?
```
mame@e386a20b84fc:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_... -
01:48 PM Feature #21821: Add Stack and SizedStack classes
- Eregon (Benoit Daloze) wrote in #note-9:
> It reminds me when I once tried to replace the queue in Puma's [thread pool](https://github.com/puma/puma/blob/main/lib/puma/thread_pool.rb) with a SizedQueue to remove the extra ConditionVariab... -
12:34 PM Feature #21821: Add Stack and SizedStack classes
- > IOW, I think we should have performance numbers here and implemented use cases that pass the relevant test suites
Yes that's fair. I meant to re-implement the `redis-client` pool using `Thread::Queue` as a proof of concept, but didn... -
12:31 PM Feature #21821: Add Stack and SizedStack classes
- byroot (Jean Boussier) wrote in #note-8:
> About the second one, it's clever but not sure if ideal because it's no longer "atomic" on MRI, so is subject to `Thread#raise`. Looking at the `connection_pool` gem, one thing that slows it dow... -
11:08 AM Feature #21821: Add Stack and SizedStack classes
- > there are 2 reasonable alternatives
About the second one, it's clever but not sure if ideal because it's no longer "atomic" on MRI, so is subject to `Thread#raise`. Looking at the `connection_pool` gem, one thing that slows it down ... -
10:52 AM Feature #21821: Add Stack and SizedStack classes
- BTW `#num_waiting` is always tricky to implement so if we add new classes I would like to not have that, because it's always messy to implement and makes it e.g. impossible to reuse JDK classes for JRuby & TruffleRuby.
-
10:51 AM Feature #21821: Add Stack and SizedStack classes
- From a quick look the closest thing to a concurrent Stack in Java is [LinkedBlockingDeque](https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/LinkedBlockingDeque.html).
That implementation uses a single lo... -
10:33 AM Feature #21821: Add Stack and SizedStack classes
- ko1 (Koichi Sasada) wrote in #note-4:
> * If we assume the implementation of `Queue` is based on `Dequeu`, adding `pop_back()` (LIFO operation) seems reasonalbe, and easy to introduce than introducing new classes, and good aligned to Rub... -
10:07 AM Feature #21821: Add Stack and SizedStack classes
- I heard that C++ has deque: Double-Ended Queue https://en.cppreference.com/w/cpp/container/deque.html
* The sound of `Deque` is similar to `dequeue` or `deq` (operation names). so introducing `Dequeue` seems not good idea.
* If we as... -
12:50 PM Misc #21833: Switch default hash from SipHash13 to XXH3?
- [rapidhash](https://github.com/Nicoshev/rapidhash) is (mostly) faster than xxh3 on my M1 Macbook Air. The `large_hash_creation` has twice reported that xxhash is faster than rapidhash.
Note that rapidhash uses a single 64bit seed. xxh3 ... -
12:35 PM Bug #21790 (Third Party's Issue): `Socket.getaddrinfo` hangs after `fork()` on macOS 26.1 (Tahoe) for IPv4-only hosts
- Thank you for your confirmation. This is most likely a macOS bug, so I'd close this as a third-party issue.
It would be the best for macOS to fix the issue, but if someone finds a workaround, I'd consider importing it in the Ruby side. - 11:12 AM Revision b722d37f (git): [ruby/rubygems] Add a missing "require 'etc'" statement:
- - Ref https://github.com/ruby/rubygems/pull/9171#discussion_r2658056892
- Referencing the constant Etc may raise a `NameError` depending on
whether other Rubygems/Bundler codepath have evaluated a prior
"require 'etc'". This can be r... -
10:58 AM Bug #21702: `UNIXSocket` on Windows: suprising results in `#recvfrom` and `#remote_address`
- I see, how about we use `strlen()` then since clearly the length returned by winsock is incorrect and we know this is path so it must be \0-terminated?
-
06:18 AM Bug #21702: `UNIXSocket` on Windows: suprising results in `#recvfrom` and `#remote_address`
- The length is exactly what is returned by winsock.
-
07:48 AM Misc #21834 (Assigned): Extract `yaml/store` into it's own gem that depends on the `pstore` gem
-
07:23 AM Revision e8e2fe6b (git): Skip some broken tests with mingw platform
-
07:23 AM Revision c293be83 (git): Win32: OpenSSL 1.1 DLLs are no longer used
- We are already using OpenSSL 3.3 and have no possibility to use system
provided DLLs. -
07:23 AM Revision a5dcb5fd (git): mingw.yml - fixup to use ucrt, logging
-
07:23 AM Revision bbed9bf4 (git): Use macos-15-intel instead of macos-13
-
07:23 AM Revision 3254d2be (git): Use `IO.popen` instead of `IO.foreach` with pipe
- 07:23 AM Revision 8f8f8d12 (git): [win32] nm use full options
- Fix compilation error when using MSYS2 environment.
Credits to MSYS2 Ruby package using this patch. -
07:12 AM Revision b7dbdfe2 (git): [ruby/rubygems] Refactor atomic file write
- This refactoring is based off the changes in
test/rubygems/test_gem_remote_fetcher.rb. It no longer uses tempfile as
a result.
https://github.com/ruby/rubygems/commit/be6fd6550b -
06:11 AM Bug #21818 (Assigned): Thread backtraces cannot be communicated over Ractor ports
-
06:10 AM Feature #21788: Promote Thread::Monitor to a core class
- I am neutral on whether to make `monitor` built-in partially or fully, but backward compatibility for code that calls `require 'monitor'` should be maintained.
Speaking of MonitorMixin, it's just a shorthand form inspired by Java's `s... -
06:09 AM Feature #21813: Add [:forward, :...] symbol tuple to indicate forwarding arguments when calling `Method#parameters`
- `foo(a: 1)` doesn't print what you expect, I guess.
-
06:01 AM Bug #21809 (Assigned): Segmentation fault when running RUBY_BOX=1 gem update --system
-
05:09 AM Feature #21835 (Open): Unbundle bunled gems like net-ftp
- I would like to unundle the following bundled gems:
* net-ftp
* net-pop
* prime
The main purpose of bundled gems is to ensure their functionality by running tests with ruby head every time. However, the above gems for older pro... -
04:00 AM Bug #21824: performance regression in regexp matching after update to 4.0
- I've tested latest master on my machine and it seems to be fixed, thank you!
-
01:19 AM Bug #21824 (Closed): performance regression in regexp matching after update to 4.0
- Applied in changeset commit:git|5de4cc56086493689701e86aa0ccf6a4a4a87d75.
----------
Fix regexp performance regression for patterns starting with s/k
Commit 981ee02c7c ("Fix performance problem with /k/i and /s/i") was
merged for Ruby ... -
02:53 AM Revision 60cf8598 (git): [nit] refactor rename inline functions
- Pretty sure commit 0f64da9672d88921439f6fdb306d16fece9b9c90 didn't
intend to welcome extension libraries to use these functions. -
02:02 AM Revision e04267a1 (git): v4.0.1
-
02:02 AM Bug #21831: Prism doesn't count underscores in the fraction part of rational float
- backported it to ruby_4_0 at https://github.com/ruby/ruby/pull/15856
-
02:00 AM Revision ec8cc4e6 (git): Sync Prism to 1.8.0 (#15856)
-
01:59 AM Revision a10f7fac (git): Sync Prism to 1.8.0
- 01:53 AM Revision 9fb9bfab (git): Update default gems list at ead107f0d7bd3cf1f30428b7907b98 [ci skip]
-
01:52 AM Revision ead107f0 (git): [ruby/prism] Bump to v1.8.0
- https://github.com/ruby/prism/commit/9c12be6e6a
-
01:34 AM Revision 910fcfad (git): mk_builtin_loader: Count local variable definition lines
-
01:19 AM Revision 5de4cc56 (git): Fix regexp performance regression for patterns starting with s/k
- Commit 981ee02c7c ("Fix performance problem with /k/i and /s/i") was
merged for Ruby 4.0 to enable partial Boyer-Moore optimization for
patterns containing 's' or 'k' by using the prefix before those
characters.
However, when 's' or 'k'... -
01:15 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
- ruby_4_0 commit:8d764da35768073c2e21ffeffa27ff2f3ab589b0.
-
01:15 AM Bug #21812: Kernel#sleep without arguments returns immediately when subprocess exits in another thread (regression in Ruby 4.0)
- ruby_4_0 commit:ac596948d4008c6e117449786c62de4e45e434bf merged revision(s) commit:7e81bf5c0c8f43602e6d901f4253dca2f3d71745.
-
01:14 AM Revision ac596948 (git): merge revision(s) 7e81bf5c0c8f43602e6d901f4253dca2f3d71745: [Backport #21812]
- [PATCH] Fix sleep spurious wakeup from sigchld (#15802)
When sleeping with `sleep`, currently the main thread can get woken up from sigchld
from any thread (subprocess exited). The timer thread wakes up the main thread w... -
01:13 AM Bug #21819: A Data object should be frozen even if it has no members
- ruby_4_0 commit:6273c59a6e1f8587e549d5a5f44fd9363e6eb018 merged revision(s) commit:d7a6ff8224519005d2deeb3f4e98689a8a0835ad.
-
01:13 AM Revision 6273c59a (git): merge revision(s) d7a6ff8224519005d2deeb3f4e98689a8a0835ad: [Backport #21819]
- [PATCH] [Bug #21819] Data objects without members should also be frozen
-
01:11 AM Bug #21815: Skip test_write_binary(GemSingletonTest) at rbs tests
- ruby_4_0 commit:3601b6c2c1226482a001b98863fe6f79cd84ad35 merged revision(s) commit:9824724b2ffe583302e9318c6eff7a440478125f.
-
01:11 AM Revision 3601b6c2 (git): merge revision(s) 9824724b2ffe583302e9318c6eff7a440478125f: [Backport #21815]
- [PATCH] Skip test_write_binary(GemSingletonTest) at rbs tests
```
Errno::EACCES: Permission denied @ rb_file_s_rename
...
D:/a/ruby/ruby/src/lib/rubygems/util/atomic_file_writer.rb:42:in 'File.rename'
... -
01:05 AM Bug #21814: 0.pow(2,-9999999999999999990) should be zero
- ruby_4_0 commit:893dcb5f25cbb0574ae73aa8fc926fd26750a27f merged revision(s) commit:19e539c9ee1701b34189fa0c1feb942adeb0e326.
-
01:05 AM Revision 893dcb5f (git): merge revision(s) 19e539c9ee1701b34189fa0c1feb942adeb0e326: [Backport #21814]
- [PATCH] [Bug #21814] Fix negative bignum modulo
If modulo is zero, do not apply bias even if the divisor is zero.
`BIGNUM_POSITIVE_P` is true even on bignum zero. -
01:03 AM Bug #21811: Fix underflow in Array#pack
- ruby_4_0 commit:b170f02e0f2a7831b51a9279ee2d35a5e4ecace9 merged revision(s) commit:4e0bb58a0a374b40b7691e7b7aa88e759a0fc9f2.
-
01:02 AM Revision b170f02e (git): merge revision(s) 4e0bb58a0a374b40b7691e7b7aa88e759a0fc9f2: [Backport #21811]
- [PATCH] fix underflow
-
01:01 AM Revision cc4ce48f (git): Remove ruby-bench excludes
- These benchmarks should be working fine now.
-
12:59 AM Revision e52aee68 (git): redmine-backporter.rb: Check remote-tracking branch
- on `has_commit` check for the `backport` command.
I don't maintain local "master" branch on my ruby repository for stable
branch maintenance. I want just running `git fetch origin` to make it
work. It should work for those who pull orig... -
12:55 AM Revision 09cd1311 (git): redmine-backporter.rb: Check remote-tracking branch
- on `has_commit` check for the `backport` command.
I don't maintain local "master" branch on my ruby repository for stable
branch maintenance. I want just running `git fetch origin` to make it
work. It should work for those who pull orig...
01/12/2026
-
11:28 PM Revision 7c91db9e (git): ZJIT: Check arg limit before pushing SendWithoutBLockDirect insn (#15854)
- This reduces some processing and makes the HIR more accurate.
-
10:23 PM Revision 2daed3c0 (git): [ruby/mmtk] Clear slot when object is freed
- https://github.com/ruby/mmtk/commit/87290e45b2
- 10:11 PM Revision 32865563 (git): ZJIT: Optimize Integer#[]
- This is used a lot in optcarrot.
-
10:08 PM Revision ee1aa78b (git): [ruby/prism] Correctly expose ripper state
- It is for example used by `irb`, `rdoc`, `syntax_suggest`
https://github.com/ruby/prism/commit/255aeb2485 -
09:50 PM Revision d81a11d4 (git): ZJIT: Snapshot FrameState with reordered args before direct send
- You can see the reordered args in the new Snapshot right before the
DirectSend insn:
v14:Any = Snapshot FrameState { pc: 0x00, stack: [v6, v11, v13], locals: [] }
PatchPoint MethodRedefined(Object@0x00, a@0x00, cme:0x00)
... -
09:50 PM Revision 351616af (git): ZJIT: Add snapshot tests for direct send
- 09:43 PM Revision 41d9eb78 (git): ZJIT: Inline Array#empty?
-
09:43 PM Revision 5cec11f4 (git): ZJIT: Inline Array#length
-
09:39 PM Bug #19378: Windows: Use less syscalls for faster require of big gems
- Hello, thank you for your attention to this issue. We have a large Ruby project using windows and after upgrading from v2.1.4 to v3.4.7 we are noticing the slowness with `require`.
This is not an issue under v2.1.4. Looking at the sysca... -
08:20 PM Misc #21833: Switch default hash from SipHash13 to XXH3?
- bdewater (Bart de Water) wrote in #note-6:
> FWIW
> ...
I can give rapidhash a try. It's based on wyHash which Go uses (at least sometimes): https://github.com/golang/go/blob/cbe153806e67a16e362a1cdbbf1741d4ce82e98a/src/runtime/hash64.go -
08:10 PM Misc #21833: Switch default hash from SipHash13 to XXH3?
- FWIW
- https://github.com/Nicoshev/rapidhash claims to be even faster and passes the SMHasher tests
- Since Rust 1.36 they switched from SipHash13 to https://github.com/rust-lang/hashbrown for hashmaps -
03:09 PM Misc #21833: Switch default hash from SipHash13 to XXH3?
- byroot (Jean Boussier) wrote in #note-2:
> Well, the main concern is HashDOS, but looking at your branch, it seems you seed the hash function, so it's fine on that front.
I did note the HashDOS conversation on https://bugs.ruby-lang.... -
03:00 PM Misc #21833: Switch default hash from SipHash13 to XXH3?
- The same benchmarks on an M4 Pro:
```
benchmark-driver ~/Downloads/hash_strings.yml -e "ruby-master::~/.rubies/ruby-master/bin/ruby" -e "ruby-xxhash::~/.rubies/ruby-xxhash/bin/ruby"
<snip>
Comparison:
tiny_hash_crea... -
09:15 AM Misc #21833: Switch default hash from SipHash13 to XXH3?
- > Has there been any consideration switching to some other hash implementation?
There has been a few in the past, e.g. [Feature #16851]
> ...
Well, the main concern is HashDOS, but looking at your branch, it seems you seed the hash... -
03:34 AM Misc #21833 (Open): Switch default hash from SipHash13 to XXH3?
- Has there been any consideration switching to some other hash implementation?
I've searched through the issues and haven't found anything related to switching the default hash from SipHash13 to anything else.
I created a [branch](... -
04:22 PM Bug #21824: performance regression in regexp matching after update to 4.0
- Hey - see the two links to the git repo on tangled.org in the bug description, it includes a test script.
-
10:08 AM Bug #21824: performance regression in regexp matching after update to 4.0
- Could you share how you measured the performance?
-
04:13 PM Revision a1ba9f57 (git): [ruby/prism] Use one file for versioned `parser` classes
- One per version seems excessive.
Do note that `rubocop-ast` used to require individual parser files. I wouldn't consider that to be part of the API since everything is autoloaded.
From a GitHub code search, I didn't find anyone else doi... -
11:24 AM Revision f3429760 (git): Remove a direct call of `rb_raise` in Onigmo
-
11:24 AM Revision aaf47cca (git): Now onigenc_single_byte_code_to_mbclen checks out-of-bound
-
11:01 AM Revision 76b1d4a4 (git): [k-takata/Onigmo] Disable error message for capture history when not needed
- Add `#ifdef USE_CAPTURE_HISTORY`.
https://github.com/k-takata/Onigmo/commit/8217be2c3a -
11:01 AM Revision 81c13349 (git): [k-takata/Onigmo] Fix out-of-bounds read in parse_char_class()
- (Close
https://github.com/k-takata/Onigmo/pull/139)
/[\x{111111}]/ causes out-of-bounds read when encoding is a single byte
encoding. \x{111111} is an invalid codepoint for a single byte encoding.
Check if it is a valid codepoint.
http... -
11:01 AM Revision 16086128 (git): [k-takata/Onigmo] Suppress warning on 64-bit builds
- https://github.com/k-takata/Onigmo/commit/ced209d5e9
-
11:01 AM Revision ac379278 (git): [k-takata/Onigmo] Fix stack overflow with X+++++++++++++++++++…
- Imported the fix from:
https://github.com/kkos/oniguruma/commit/4097828d7cc87589864fecf452f2cd46c5f37180
https://github.com/k-takata/Onigmo/commit/786b4849c1 -
11:01 AM Revision f0b31a58 (git): [k-takata/Onigmo] Fix SEGV in onig_error_code_to_str() (Fix
- https://github.com/k-takata/Onigmo/pull/132)
When onig_new(ONIG_SYNTAX_PERL) fails with ONIGERR_INVALID_GROUP_NAME,
onig_error_code_to_str() crashes.
onig_scan_env_set_error_string() should have been used when returning
ONIGERR_INVALID_... -
11:01 AM Revision 496e74d0 (git): [k-takata/Onigmo] Fix that onig_new() may crash
- When onig_reg_init() returns an error, onig_free_body() which is called
via onig_new() may crash because some members are not properly
initialized. Fix it.
https://github.com/k-takata/Onigmo/commit/d2a090a57e -
11:01 AM Revision ad150e90 (git): [k-takata/Onigmo] Update version number (6.2.0)
- * Update the version number to 6.2.0
* Update LTVERSION to 6:5:0.
https://github.com/k-takata/Onigmo/commit/9e0f7ceee0 -
11:01 AM Revision a097878e (git): [k-takata/Onigmo] Comment out unused errors
- https://github.com/k-takata/Onigmo/commit/5555ee4c81
-
11:01 AM Revision 916fbf10 (git): [k-takata/Onigmo] Update copyright information
- * Update our copyright information.
* Import the latest information from oniguruma.
Related: #95
https://github.com/k-takata/Onigmo/commit/0d8662b500 -
11:01 AM Revision 85a7171b (git): [k-takata/Onigmo] Add USE_CASE_MAP_API config
- The case_map API is mainly (only?) used in Ruby.
Make it possible to disable the API.
https://github.com/k-takata/Onigmo/commit/80e289d6bb -
11:01 AM Revision f9131412 (git): [k-takata/Onigmo] Revise set_bm_skip()
- https://github.com/k-takata/Onigmo/commit/6875da50f7
-
11:01 AM Revision bbf9bf3f (git): [k-takata/Onigmo] Remove code for backward BM search
- The code has not been used for long.
(Oniguruma also removed this code.)
https://github.com/k-takata/Onigmo/commit/8796781fdd -
11:01 AM Revision fb7f344b (git): [k-takata/Onigmo] Remove code for reg->int_map
- https://github.com/k-takata/Onigmo/commit/6c58de82d2
-
11:01 AM Revision 6484a71a (git): Add Onigmo to sync_default_gems.rb
-
08:53 AM Misc #21834: Extract `yaml/store` into it's own gem that depends on the `pstore` gem
- Note, while `pstore` is still available in Ruby 4.0.0 as a bundled gem, Bundler will refuse to load it unless it is explicitly listed in the `Gemfile` or gemspec. This means that if one's project uses any other gem which requires `yaml/s...
-
08:44 AM Misc #21834 (Assigned): Extract `yaml/store` into it's own gem that depends on the `pstore` gem
- Ruby 4.0.0 removed the `pstore` gem from the set of default stdlib libraries. However, `yaml/store` is still available from the `yaml` library, but relies on the `pstore` gem which is now no longer part of stdlib. It is odd that a file w...
-
07:44 AM Revision bf36ad9c (git): ZJIT: remove unused rb_RSTRUCT_LEN()
-
07:44 AM Revision 916c0a81 (git): ZJIT: remove unused rb_RSTRUCT_SET()
-
02:28 AM Revision d57c3296 (git): Re-fix `VCS::GIT#branch_beginning`
- Count the last release date from the whole working directory, not
only the version headers. -
12:09 AM Bug #21832: segfault with argument forwarding, when combined with splat & positional arg
- Very likely related to the `VM_CALL_FORWARDING` optimization introduced in commit:cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce.
01/11/2026
-
10:01 PM Bug #21832: segfault with argument forwarding, when combined with splat & positional arg
- please ignore where the longer test case comment says "foo" instead of "--verbose" ;-)
-
09:51 PM Bug #21832 (Closed): segfault with argument forwarding, when combined with splat & positional arg
- A crash occurs when combining (...) arg forwarding, a positional argument, and an array splat. Found with 4.0.0 release, verified on 3.4.8 and 4.1.0dev, does not occur on 3.3.10. One-line crash test:
``` ruby
./ruby -e 'def target(*a... -
03:46 PM Revision 61c372a1 (git): [DOC] Improve docs for ObjectSpace.count_symbols
-
03:46 PM Revision 1267a3ab (git): [DOC] Improve docs for ObjectSpace.count_imemo_objects
-
03:46 PM Revision cf5c5abe (git): [DOC] Improve docs for ObjectSpace.count_tdata_objects
-
02:25 PM Bug #21831 (Closed): Prism doesn't count underscores in the fraction part of rational float
- Applied in changeset commit:git|8baaece6d9a64e8cc51d8d0c9839546e3d039eee.
----------
[ruby/prism] [Bug #21831] Fix denominator of rational float literal
Denominators can contain underscores in fraction part as well as other
numeric lit... -
01:30 PM Bug #21831 (Closed): Prism doesn't count underscores in the fraction part of rational float
- Good.
```console
$ ruby3.3 -e 'p 0.1_2r.to_f'
0.12
$ ruby3.4 --parser=parse.y -e 'p 0.1_2r.to_f'
0.12
```
Wrong.
```console
$ ruby3.4 -e 'p 0.1_2r.to_f'
0.012
``` -
01:53 PM Revision 8baaece6 (git): [ruby/prism] [Bug #21831] Fix denominator of rational float literal
- Denominators can contain underscores in fraction part as well as other
numeric literals.
[Bug #21831]: https://bugs.ruby-lang.org/issues/21831
https://github.com/ruby/prism/commit/e247cb58c7 -
12:42 PM Revision a071078e (git): pack.c: remove wasted allocation in BER integer packing
- The 'w' format (BER compressed integer) was allocating an empty
string with rb_str_new(0, 0) then immediately overwriting it with
the correctly-sized allocation. Remove the wasted first allocation.
~50% improvement on BER pack benchmarks. - 12:06 PM Revision 3363861a (git): Remove RUBY_API_VERSION check in cxxanyargs.hpp
- The version check used undefined macros, causing -Wundef warnings.
The conditional is no longer needed as Ruby is past version 3.1. -
12:03 PM Revision 73be9992 (git): Disambiguate private and public RSTRUCT_ helpers
- RSTRUCT_LEN / RSTRUCT_GET / RSTRUCT_SET all existing in two
versions, one public that does type and frozens checks
and one private that doesn't.
The problem is that this is error prone because the public version
is always accessible, bu... -
08:09 AM Revision 6a630d99 (git): Push the commits to the origin at `make matz` [ci skip]
-
06:12 AM Revision 463a806f (git): Fix `VCS::GIT#branch_beginning` to search since the last relase
- The ChangeLog in ruby-4.0.0 did not contain entries for 3.5.0.
-
05:51 AM Revision acd0c68a (git): Relax the flaky test threshold on RHEL 10.0 x86_64
01/10/2026
-
02:31 PM Revision 0d4538b5 (git): [DOC] Improve docs for Module#>=
-
02:31 PM Revision f0f4a683 (git): [DOC] Improve docs for Module#<=
-
02:31 PM Revision 0b83346f (git): [DOC] Improve docs for Module#<
-
02:31 PM Revision 98c414a6 (git): [DOC] Improve docs for Module#>
-
12:35 PM Misc #21777: DevMeeting-2026-01-14
- * [Misc #21804] Getting setup-ruby Earlier (eregon)
* To get it out earlier, we need release managers (@hsbt @nagachika @k0kubun) to also run the relevant steps for setup-ruby: https://github.com/ruby/setup-ruby/pull/848#issuecomment-3... -
11:32 AM Misc #21804: Getting setup-ruby Earlier
- You can add me as a ruby-setup releaser, if that helps. I did some PRs already and know roughly how it works for Windows releases.
But the RubyInstaller releases will not come out earlier. It's a project I care about, but it's still a... -
08:21 AM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
- I have a much better solution here: https://github.com/ruby/ruby/pull/15840
It's simpler than my original PR. It dispenses with the additional thread and the magic number (sleep time). And in addition to bringing multi-core perf into li... - 07:20 AM Revision 0b69f7fa (git): [ruby/openssl] Fix test_cipher.rb in FIPS.
- https://github.com/ruby/openssl/commit/11bd2efb2a
01/09/2026
-
11:05 PM Revision c3f6fcc4 (git): Skip ObjectSpaceTest#test_count_nodes for RBS
-
11:05 PM Revision e8c61f51 (git): Remove ObjectSpace.count_nodes
- ObjectSpace.count_nodes has been a no-op and returning an empty hash since
Ruby 2.5 because parser nodes are not GC managed. -
11:05 PM Revision ef488bff (git): [DOC] Doc for Enumerator.new
-
10:36 PM Revision 77cad87d (git): [DOC] Doc for Enumerator class
-
10:36 PM Revision 3d242a82 (git): [DOC] Harmonize #> methods
-
09:39 PM Feature #16848: Allow callables in $LOAD_PATH
- BTW, the contract could be to return a file handle (which could be a StringIO) or `nil`.
-
03:13 PM Feature #16848: Allow callables in $LOAD_PATH
- Hey, just saw this ticket.
I wanted to share as a curiosity that Perl has this: You can store coderefs in `@INC`. That gives you plenty of flexibility.
For example, the Perl Archive Toolkit provides a way to ship projects in one si... -
07:25 PM Revision e08f316f (git): YJIT: Add frozen guard for struct aset (#15835)
- We used to just skip this check (oops), but we should not allow
modifying frozen objects. -
04:31 PM Revision 51ab7b04 (git): YJIT: gen_struct_aset check for frozen status
-
04:31 PM Revision 7379b9ed (git): Optimize rb_mark_generic_ivar for T_DATA and T_STRUCT
- T_DATA and T_STRUCT could have ivars but might not use the generic_fields_tbl.
This commit skips lookup in the generic_fields_tbl for those cases. -
03:13 PM Misc #21804: Getting setup-ruby Earlier
- > > > #844 got merged the same day, what would you expect?
> ...
Of course not. I can see that you're feeling attacked here, and that was not my intention, and I apologize. I'm thankful for all the work that you do.
But the fact of... -
03:00 PM Feature #21826: Deprecating RubyVM::AbstractSyntaxTree
- Note that any usage of `RubyVM::AbstractSyntaxTree` in a gem is, by the documentation of that class and `RubyVM`, invalid (not debugging, prototyping, and research).
That doesn't mean we should break them carelessly, but I think that doe... -
02:55 PM Feature #6012: Proc#source_location also return the column
- mame (Yusuke Endoh) wrote in #note-50:
> Also, Ruby's grammar will certainly continue to change, and I have no doubt that the instances of overlapping Nodes, beyond just `StatementsNode` and `CallNode`, can increase accordingly.
Mayb... -
02:46 PM Feature #6012: Proc#source_location also return the column
- mame (Yusuke Endoh) wrote in #note-50:
> "I don't know exactly what users are using the `method_source` gem for, but since it's used so much, we should provide equivalent functionality as a built-in feature"
> ...
Of course there is nuan... -
02:07 PM Bug #21830: Ruby::Box and Kernel#require
- Just in case it matters, let me also add that it is assumed that `Module#autoload` invokes `Kernel#require` as introduced in [cd465d5](https://github.com/ruby/ruby/commit/cd465d552c3a00341f4cb7f1d7a793d0ebcb6cde).
Zeitwerk relies on thi... -
09:48 AM Bug #21830 (Open): Ruby::Box and Kernel#require
- If you enable `Ruby::Box`, decorations to `Kernel#require` do not work.
For example, given _foo.rb_:
```ruby
module M
def require(_path)
puts 'decorated'
super
end
end
Kernel.prepend(M)
p require 'tsort'
``... -
11:02 AM Revision c794a979 (git): Rename `alloca_overflow` to `stack_overflow`
- `alloca` is an implementation detail to raise a stack overflow.
-
08:16 AM Revision e01e13c2 (git): Use `assert_ruby_status` if no assertion
-
08:16 AM Revision fc0c67de (git): Make `assert_separately` to count assertions in forked processes
-
07:06 AM Revision 364e25b1 (git): Make `assert_separately` tolerant to core method redefinitions
- And split `TestRubyOptimization#test_objtostring` for each target
class. - 06:04 AM Revision 31857868 (git): Fix integer overflow checks in enumerator
-
02:36 AM Revision b61e18d7 (git): Win32: configure without an intermediate makefile
- This batch file used `nmake` on the old `command.com` to extract the
parent directory name of this file and to get around the command line
argument length limit. However, Windows 9X support as a build host
ended over a decade ago, and t... -
01:33 AM Revision e89db856 (git): [ruby/mmtk] Assert that objects are not T_NONE in the write barrier
- https://github.com/ruby/mmtk/commit/59d27203e2
-
01:33 AM Revision aa7eb97d (git): [ruby/mmtk] Add MMTK_ASSERT
- https://github.com/ruby/mmtk/commit/e34d5cf32f
-
12:33 AM Revision b3216bc1 (git): Fix Ripper::Lexer::State#[] for to_s
- The instance variable is called `to_s`, not `event`.
01/08/2026
-
11:07 PM Revision 50b71911 (git): Remove ruby-bench excludes (#15828)
- These benchmarks should be working fine now.
-
10:33 PM Revision c6f9a4d3 (git): Remove check for rb_obj_gen_fields_p in rb_hash_dup
- rb_copy_generic_ivar already checks for it, so we don't need to call
rb_obj_gen_fields_p twice. -
10:01 PM Feature #6012: Proc#source_location also return the column
- Eregon (Benoit Daloze) wrote in #note-49:
> In any case I don't think it's our place to judge whether each usage is "valid" or "correct" or not, it's definitely useful functionality since it's used so much.
"I don't know exactly what... -
07:59 PM Misc #21804: Getting setup-ruby Earlier
- mdalessio (Mike Dalessio) wrote in #note-4:
> A counter-example, though, is that the PR for windows support ([https://github.com/ruby/setup-ruby/pull/847](https://github.com/ruby/setup-ruby/pull/847)) took 3 days to get merged.
Windo... -
07:55 PM Misc #21804: Getting setup-ruby Earlier
- If people care about getting an answer from release maintainers, they can add this ticket to the dev meeting.
-
07:57 PM Revision 523857bf (git): ZJIT: Replace GuardShape with LoadField+GuardBitEquals (#15821)
- GuardShape is just load+guard, so use the existing HIR instructions for load+guard. Probably makes future analysis slightly easier.
-
06:35 PM Revision 16863f2e (git): [ruby/prism] Decouple ripper translator from ripper library
- Ripper exposes Ripper::Lexer:State in its output, which is a bit of a problem. To make this work, I basically copy-pasted the implementation.
I'm unsure if that is acceptable and added a test to make sure that these values never go out ... -
06:35 PM Revision fc66de3e (git): [ruby/prism] Remove unneeded `ripper` requires
- Ripper is either not used or loaded where it is actually needed
https://github.com/ruby/prism/commit/a73a4fb00c -
06:35 PM Revision 3bfc8655 (git): [ruby/prism] Move `LexRipper` into its own file
- It has a hard dependency on ripper that can't be removed.
This makes it so that ripper can be loaded only when the class is actually used.
https://github.com/ruby/prism/commit/3b5b4a8a6d -
05:08 PM Revision 8d764da3 (git): Fix incorrect bundled gems warning for hyphenated gem names
- When requiring a file like "benchmark/ips", the warning system would
incorrectly warn about the "benchmark" gem not being a default gem,
even when the user has "benchmark-ips" (a separate third-party gem)
in their Gemfile.
The fix check... -
09:49 AM Feature #21442 (Closed): Make tsort to bundled gems
- https://github.com/ruby/ruby/pull/15825
- 09:48 AM Revision dcfbbdc3 (git): Update bundled gems list as of 2026-01-08
-
09:48 AM Revision 19d3f2da (git): Skip collection install test
-
09:48 AM Revision eaa9902c (git): Exclude ruby-lsp benchmark because released version of rbs didn't have tsort dependency
-
09:48 AM Revision 4a988b7f (git): Inject tsort path before rdoc
-
09:48 AM Revision 9c49084a (git): Update tsort entries under the doc
-
09:48 AM Revision 9580c7d0 (git): Migrate tsort as bundled gems
-
08:58 AM Feature #21826: Deprecating RubyVM::AbstractSyntaxTree
- I reserve my opinion on the proposal itself, but just about `node_id_for_backtrace_location`:
Earlopain (Earlopain _) wrote in #note-2:
> But I don't know of something for `node_id_for_backtrace_location` (https://bugs.ruby-lang.org/... -
08:03 AM Feature #21826: Deprecating RubyVM::AbstractSyntaxTree
- `RubyVM::AbstractSyntaxTree` is not only used for parsing. I don't think there are proper replacements for `of` and `node_id_for_backtrace_location` yet. `error_highlight` for example uses both `of` (under parse.y) and `node_id_for_backt...
-
04:52 AM Bug #21634 (Assigned): Combining read(1) with eof? causes dropout of results unexpectedly on Windows.
-
04:51 AM Bug #21691 (Assigned): On Windows some of binary read functions of IO are not functional
-
04:51 AM Bug #21763 (Assigned): Windows: output IO pipe ignores crlf newline conversion specified by set_encoding
-
04:51 AM Bug #21765 (Assigned): stop using the C runtime _read() on Windows
-
04:41 AM Revision 946b1c1b (git): Move parentheses around macro arguments
-
04:30 AM Revision 1852ef43 (git): Fail if the Ruby specified with `--with-baseruby` is too old
- If the baseruby is explicitly specified, fail because the option is
not accepted if it does not meet the requirements. If the option is
not specified, just display the warning and continue, in the hope that
it is not needed.
Follow up ... -
04:29 AM Revision 725e3d0a (git): Fluent and/or is supported by Prism too now
-
04:19 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
- https://github.com/ruby/ruby/pull/15824
-
04:15 AM Bug #21828 (Closed): An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
- Applied in changeset commit:git|768862868472fb1800e556effb0e37be2fbaec52.
----------
Fix incorrect bundled gems warning for hyphenated gem names
When requiring a file like "benchmark/ips", the warning system would
incorrectly warn abou... -
12:22 AM Bug #21828 (Assigned): An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
-
04:15 AM Revision 76886286 (git): Fix incorrect bundled gems warning for hyphenated gem names
- When requiring a file like "benchmark/ips", the warning system would
incorrectly warn about the "benchmark" gem not being a default gem,
even when the user has "benchmark-ips" (a separate third-party gem)
in their Gemfile.
The fix check... -
03:02 AM Misc #17376 (Closed): Reduce number of GitHub Actions
- The current job number is 94 each commit and GitHub improved their UI of GitHub Actions.
I'm closing this. -
02:47 AM Feature #17210 (Closed): More readable and useful `Set#inspect`
- ```
❯ ruby -ve "puts Set[1,2,3]"
ruby 4.1.0dev (2026-01-06T23:05:30Z master b2ed4cdced) +YJIT +MN +PRISM [arm64-darwin25]
Set[1, 2, 3]
```
Ruby 4.0 introduced this feature request. -
02:42 AM Feature #16989 (Closed): Sets: need ♥️
- `Set` is promoted to Core class at Ruby 4.0.
- 12:41 AM Revision 080d66be (git): Avoid flaky test failures by retrying on local port conflicts (#15818)
- This test obtains an available port number by calling `TCPServer.new`,
then closes it and passes the same port number as `local_port` to `TCPSocket.new`.
However, `TCPSocket.new` could occasionally fail with `Errno::EADDRINUSE`
at the b...