Project

General

Profile

Activity

From 07/28/2026 to 08/03/2026

Today

07:48 AM Bug #19921: TestYJIT#test_bug_19316 test failure
> but I see that you carry ruby-2.7.0-Initialize-ABRT-hook.patch, which makes the VM use Kernel#require on boot. That might be the source of the interrupt.
I have investigated in depth due to another newer test that uses GC.stress in ...
jprokop (Jarek Prokop)
07:04 AM Revision 95b02c82 (git): gc/default: make stress GC honor gc_allowed in TRY_WITH_GC
TRY_WITH_GC guards its retry-GC branch with gc_allowed (which reflects
the current ractor's malloc_gc_disabled, set while a ractor lock is
held), but called objspace_malloc_gc_stress() unconditionally. Under
GC.stress, a malloc inside a...
ko1 (Koichi Sasada)
06:12 AM Misc #22221: DevMeeting-2026-08-06
- [Feature #22118] Introduce Basic Bit Operations into String (hasumikin)
- https://bugs.ruby-lang.org/issues/22118#note-6
- Is it OK to have a *temporary* asymmetry where `String#bit_count` doesn't take a bit-order keyword?
...
hasumikin (hitoshi hasumi)
05:00 AM Revision 1f48cf8a (git): [ruby/rubygems] Adapt the plugin index to Gem::YAMLSerializer semantics
The stub serializer dumped an empty hash as a bare "key:" line and loaded
such a line back as an empty hash. Gem::YAMLSerializer dumps it as
"key: {}" and correctly loads a bare key as nil, so index files written
by older Bundler version...
Hiroshi SHIBATA
05:00 AM Revision 3ad19fac (git): [ruby/rubygems] Drop Bundler's stub YAML serializer
Bundler::YAMLSerializer is no longer referenced anywhere now that Bundler
uses Gem::YAMLSerializer everywhere.
https://github.com/ruby/rubygems/commit/b74a1987db
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
05:00 AM Revision f71a863c (git): [ruby/rubygems] Port Bundler's YAML serializer specs to the RubyGems test suite
The RubyGems test suite already covers almost all of the Bundler
yaml_serializer spec through test_gem_safe_yaml.rb. Port the two missing
cases (URL mapping keys as used by mirror settings, and Psych
interoperability in both directions) ...
hsbt (Hiroshi SHIBATA)
05:00 AM Revision 9f7e05ce (git): [ruby/rubygems] Use RubyGems' YAML serializer in Bundler
Bundler now uses Gem::YAMLSerializer unconditionally for settings and the
plugin index instead of falling back to its own stub serializer. The
fallback is no longer reachable because the Bundler gem ships a copy of
Gem::YAMLSerializer fo...
hsbt (Hiroshi SHIBATA)
05:00 AM Revision 5f07e13d (git): [ruby/rubygems] Ship RubyGems' YAML serializer in the Bundler gem
Add lib/rubygems/yaml_serializer.rb to the gem's file list so the Bundler
gem carries its own copy of Gem::YAMLSerializer. This keeps Bundler
self-contained on RubyGems versions that predate it, the same way the
vendored URI and SecureRa...
hsbt (Hiroshi SHIBATA)
05:00 AM Revision 8d75afff (git): [ruby/rubygems] Guard RubyGems' YAML serializer against double loading
When the same Gem::YAMLSerializer copy is shipped in two gems (RubyGems and
Bundler) and required from different paths, the second load redefines its
constants and emits "already initialized constant" warnings. Add an
idempotent guard at...
hsbt (Hiroshi SHIBATA)
04:47 AM Revision 53b70874 (git): [ruby/rubygems] Remove #private? check from open_private_key and check in Gem::Security.sign
Remove the OpenSSL::PKey::{RSA,DSA,EC}#private? check in open_private_key. This
makes the code ML-DSA compatible since OpenSSL::PKey::PKey used for ML-DSA
doesn't have #private?.
According to the discussion on <https://github.com/ruby/o...
Jun Aruga
04:47 AM Revision 01a05971 (git): [ruby/rubygems] Remove hardcoded key-dependent values from tests
Because these hardcoded values make the tests fail when recreating the keys.
This is not convenient.
* Remove hardcoded subjectKeyIdentifier value assertions.
* In test_sign, replace assertion with hardcoded value with
PRIVATE_KEY.ver...
Jun Aruga
04:47 AM Revision f2740146 (git): [ruby/rubygems] Recreated testing .pem files.
As I modified logic related to output format in tool/create_certs.rb and
tool/create_encrypted_key.rb at the last commit, I ran these scripts to
recreate the testing .pem files as follows. Now the private .pem files are
PKCS #8 format.
...
Jun Aruga
04:47 AM Revision f241c03d (git): [ruby/rubygems] Replace OpenSSL::PKey::{RSA,DSA,EC}#to_pem
Replace OpenSSL::PKey::{RSA,DSA,EC}#to_pem with
OpenSSL::PKey::{RSA,DSA,EC}#private_to_pem or #public_to_pem.
Continue to use OpenSSL::X509::Certificate#to_pem.
This makes the code ML-DSA compatible since OpenSSL::PKey::PKey used for ML...
Jun Aruga
04:47 AM Revision 863175bc (git): [ruby/rubygems] Split Gem::Security.write into write_private_key and write_certificate
Gem::Security.write managed the following 2 cases.
* pemmable is RSA/DSA/EC private key, an instance of OpenSSL::PKey::{RSA,DSA,EC}
* pemmable is certificate, an instance of OpenSSL::X509::Certificate
There was no case that pemmable wa...
Jun Aruga
04:32 AM Revision 568dde7f (git): Add NEWS entry for net-ftp and net-pop removal [Feature #21835]
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
04:32 AM Revision f364e197 (git): Link the psych libfyaml NEWS entry to ruby/psych#805
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
04:32 AM Revision bc5ce159 (git): Add NEWS entry for experimental libfyaml backend of psych
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
04:32 AM Revision b5ae03c5 (git): Add NEWS entry for removed EOL platform support
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
04:32 AM Revision bcddad76 (git): Add NEWS entry for lazy loading of error decoration gems [Feature #21951]
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> hsbt (Hiroshi SHIBATA)
03:32 AM Revision dca45c25 (git): compile.c: pass the new operand ci to the write barrier, not the INSN
The splat rebuild in compile_massign_lhs passes the arena-allocated INSN
(iobj) to RB_OBJ_WRITTEN (since f2286925f0). iobj is not a heap object,
so the barrier touches the page it happens to land on, which is
undefined. It is harmless ...
ko1 (Koichi Sasada)
03:26 AM Revision e59558c4 (git): Fix operand in the update_global_event_hooks assertion
The assertion for change_c_events < 0 compares ruby_vm_c_events_enabled
against -change_iseq_events instead of -change_c_events, so it fires on
a normal case where the iseq-event decrement happens to exceed the
number of enabled C events...
ko1 (Koichi Sasada)
03:11 AM Revision f622e125 (git): Bump github.com/microsoft/vcpkg from 2026.06.24 to 2026.07.29
Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from 2026.06.24 to 2026.07.29.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](https://github.com/microsoft/vcpkg/compare/master...9e593bb1...
dependabot[bot]
03:08 AM Revision 6a9a387b (git): [ruby/io-console] [DOC] Prevent RDoc from referencing internal modules
https://github.com/ruby/io-console/commit/04e3f33df6 nobu (Nobuyoshi Nakada)
03:08 AM Revision dcf88474 (git): [ruby/io-console] `IO#tty?` extension is unsupported on Cygwin
`rb_w32_open_osfhandle` is defined only on mingw/mswin.
https://github.com/ruby/io-console/commit/3043df5241
nobu (Nobuyoshi Nakada)
01:12 AM Revision 60c82965 (git): [DOC] Improve docs for GC.start
peterzhu2118 (Peter Zhu)
01:00 AM Revision 18225b55 (git): [DOC] Doc for File::absolute_path?
burdettelamar (Burdette Lamar)
12:16 AM Revision 74c2a61a (git): [ruby/rubygems] Update SSL/TLS RSA test/rubygems/*.pem files generated by new create_certs.sh
Note that previous "openssl ca" commands did output human-readable text + PEM
format for the following files. With new openssl commands, the human readable
texts are removed. This is not a problem.
```
test/rubygems/ca_cert.pem
test/rub...
Jun Aruga

08/02/2026

07:18 PM Revision 7eeb5b63 (git): Remove dead DURING_GC_COULD_MALLOC_REGION_START/END in default.c
peterzhu2118 (Peter Zhu)
02:58 PM Revision af233106 (git): [ruby/time] Handle case insensitive match for Time.{iso8601,xmlschema,rfc3339}
The T and Z in the regular expressions are case insensitive, but
Time.new on Ruby 3.2+ does not support the lowercase versions.
Arguably, lower case t and z shouldn't be allowed, but they were
historically supported. Time.rfc3339 is a ne...
jeremyevans (Jeremy Evans)
02:57 PM Revision 67522f63 (git): [ruby/time] Make Time.rfc3339 require minutes in offset
This is required by RFC 3339 section 5.6, which does not allow for an
offset without a minute.
Fixes https://github.com/ruby/time/pull/73
https://github.com/ruby/time/commit/d9a0d789c5
jeremyevans (Jeremy Evans)
01:16 PM Revision a0c1b4fb (git): Make rb_get_message static
peterzhu2118 (Peter Zhu)
12:42 PM Bug #15598: Deadlock on mutual reference of autoloaded constants
This issue appears to have been corrected at https://github.com/ruby/ruby/commit/6fbc32b5d0da31535cccc0eca1853273313a0b52.
```
$ (git checkout 6fbc32b5d0da31535cccc0eca1853273313a0b52~; make -j miniruby) >/dev/null && ./miniruby -v b...
wanabe (_ wanabe)
09:00 AM Revision 63c7beb2 (git): [ruby/io-console] Enable tty type checks on TruffleRuby
Use Ruby-level `Module#prepend` because TruffleRuby declares but does
not export `rb_prepend_module`.
https://github.com/ruby/io-console/commit/3708c0ce8a
nobu (Nobuyoshi Nakada)
09:00 AM Revision 12ce4464 (git): [ruby/io-console] Treat nil as the default tty type
Allow the default tty check to be combined with platform-specific tty types.
https://github.com/ruby/io-console/commit/e307d61226
nobu (Nobuyoshi Nakada)
09:00 AM Revision d1bfedce (git): [ruby/io-console] Accept multiple mode arguments
https://github.com/ruby/io-console/commit/d140425f9f nobu (Nobuyoshi Nakada)
09:00 AM Revision f4075968 (git): [ruby/io-console] [DOC] IO.tty? optional argument
https://github.com/ruby/io-console/commit/f06f2d9784 nobu (Nobuyoshi Nakada)
09:00 AM Revision 93c3a6bc (git): [ruby/io-console] Support `tty?(:any)` on any platform
https://github.com/ruby/io-console/commit/47dcadc644 nobu (Nobuyoshi Nakada)
09:00 AM Revision 6c86149a (git): [ruby/io-console] Do nothing on old TruffleRuby
https://github.com/ruby/io-console/commit/27754105c7 nobu (Nobuyoshi Nakada)
09:00 AM Revision b53d7e55 (git): [ruby/io-console] Win32: ttyname will not be used
https://github.com/ruby/io-console/commit/28cdf86e81 nobu (Nobuyoshi Nakada)
09:00 AM Revision 105878ec (git): [ruby/io-console] Rename the internal term "wintty" as "platform"
https://github.com/ruby/io-console/commit/4cfaca6ad6 nobu (Nobuyoshi Nakada)
09:00 AM Revision 1aa7f893 (git): [ruby/io-console] Extend `IO#tty?` for cygwin/msys terminals
https://github.com/ruby/io-console/commit/989ee71140 nobu (Nobuyoshi Nakada)
05:15 AM Revision 3ac5ce97 (git): [ruby/time] Require offset when parsing RFC3339
RFC3339 requires a Z designator or explicit numeric offset. Reject offset-less timestamps instead of passing them to Time.new, which interprets them in local time.
https://github.com/ruby/time/commit/98bd588fd4
Bart de Water
03:41 AM Revision 79fa2bcf (git): Add `rb_prepend_module` C API spec
Cover the public C API so missing implementations are detected. nobu (Nobuyoshi Nakada)
01:59 AM Revision 62eaaae3 (git): [ruby/spec] Use ENVSpecs.encoding for ENV key encoding specs
ENV strings are always UTF-8 on Windows, while Encoding.find('locale')
follows the console code page, so these two specs failed under cp932.
The other ENV specs already go through ENVSpecs.encoding.
Co-Authored-By: Claude Opus 5 <norepl...
hsbt (Hiroshi SHIBATA)
12:23 AM Revision 7a18459c (git): Fix RUBY_TYPED_FROZEN_SHAREABLE_NO_REC
An UnboundMethod does not refer to any mutable children, so it should be
shareable when frozen. The documentation for RUBY_TYPED_FROZEN_SHAREABLE_NO_REC
states:
Similar to RUBY_TYPED_FROZEN_SHAREABLE, but doesn't make shareable
...
peterzhu2118 (Peter Zhu)
12:22 AM Revision d4394964 (git): [DOC] Class doc for Pathname
burdettelamar (Burdette Lamar)

08/01/2026

09:56 PM Revision e281a01b (git): Tell GitHub that `*.inc` files are autogenerated [ci skip]
nobu (Nobuyoshi Nakada)
06:20 PM Revision f8d62cdb (git): [ruby/prism] Encoding leaking
Fixed encoding was leaking around elements because it wasn't being
cleared around elements that had only a single token.
https://github.com/ruby/prism/commit/03bde59c40
kddnewton (Kevin Newton)
05:49 PM Revision bfb3b4ea (git): Fix flaky test_clock_gettime_unit for slow Rubies
If the test takes over 1 second, it will fail because the difference
between t0 and t1 will be over 1 second. If we update t0 on every iteration,
it should make it less flaky because each iteration will need to run in
less than 1 second....
peterzhu2118 (Peter Zhu)
05:49 PM Revision e714ff85 (git): [DOC] Correct doc for File#truncate
burdettelamar (Burdette Lamar)
05:48 PM Revision 027e3931 (git): Pathname harmonize doc (#18155)
burdettelamar (Burdette Lamar)
05:47 PM Revision 96f8cfd3 (git): [DOC] Fix formatting in two places (#18154)
burdettelamar (Burdette Lamar)
05:46 PM Revision 5d610c62 (git): [DOC] Doc for Pathname#open
burdettelamar (Burdette Lamar)
05:45 PM Revision 387a69e8 (git): [DOC] Doc for Pathname#fnmatch?
burdettelamar (Burdette Lamar)
05:45 PM Revision b4a41d40 (git): [DOC] Doc for Pathname#dirname
burdettelamar (Burdette Lamar)
05:43 PM Revision 8d32043a (git): [DOC] Doc for Pathname#file?
burdettelamar (Burdette Lamar)
05:42 PM Revision 7d6828a3 (git): [DOC] What's Here for Pathname
burdettelamar (Burdette Lamar)
11:40 AM Revision 395f8b92 (git): [ruby/prism] Bound the leading-zero skip in pm_integer_parse
The PM_INTEGER_BASE_DEFAULT branch skips leading zeros without checking
`end`, so it reads one byte past the range for an all-zero input.
pm_float_node_rational_create() reaches it: it allocates `length` bytes
for the mantissa, writes o...
matz (Yukihiro Matsumoto)
08:07 AM Revision 34f041ca (git): Silence debugger availability probes in EnvUtil
`EnvUtil::Debugger.search` runs each debugger to test whether it is
usable, and the probe output goes straight to the test output. On
Windows, the lldb bundled with Visual Studio BuildTools fails to
delay-load python311.dll and dumps an ...
Hiroshi SHIBATA
07:32 AM Revision 12c1ddef (git): [ruby/stringio] Fix thread safety of strio_free
(https://github.com/ruby/stringio/pull/223)
Follow up to #222
This refcount previously wasn't thread safe (and shouldn't have been
declared `RUBY_TYPED_THREAD_SAFE_FREE`), but it's easy enough to fix
using ruby/atomic.h (Ruby 3.0+)
ht...
jhawthorn (John Hawthorn)
07:25 AM Revision 48bf7981 (git): [ruby/ipaddr] Follow up on #114: update tests for `multicast?` and `link_local_multicast?`
https://github.com/ruby/ipaddr/commit/4c5bf4f79a taketo1113 (Taketo Takashima)
02:27 AM Revision aab76676 (git): Bump the jit group across 1 directory with 2 updates
Bumps the jit group with 2 updates in the /zjit directory: [libc](https://github.com/rust-lang/libc) and [rand](https://github.com/rust-random/rand).
Updates `libc` from 0.2.180 to 0.2.189
- [Release notes](https://github.com/rust-lang...
dependabot[bot]
12:12 AM Revision 384c0fd8 (git): ZJIT: Import hir in codegen.rs (#18134)
k0kubun (Takashi Kokubun)

07/31/2026

09:51 PM Revision 3a409091 (git): [ruby/mmtk] Fix GC.start for disabled GC
https://github.com/ruby/mmtk/commit/932d7ce62a peterzhu2118 (Peter Zhu)
09:51 PM Revision a08e8d94 (git): [ruby/mmtk] Fix renamed on_pause_start/end functions
https://github.com/ruby/mmtk/commit/458bb5b843 peterzhu2118 (Peter Zhu)
09:51 PM Revision ccc182fe (git): [ruby/mmtk] Let MMTk handle enabling/disabling collection
https://github.com/ruby/mmtk/commit/ab9c69b2c9 peterzhu2118 (Peter Zhu)
09:51 PM Revision 5a1a52a6 (git): [ruby/mmtk] Bump mmtk-core
https://github.com/ruby/mmtk/commit/4550e4a5ae peterzhu2118 (Peter Zhu)
07:23 PM Revision 4ac0baa7 (git): ZJIT: Reserve space in new_insns
We know the output of the pass will be roughly the same size as the
input of the pass, so don't start from scratch with an empty vec that
will require multiple re-allocations.
Max Bernstein
07:23 PM Revision a89e3b15 (git): ZJIT: Remove some uses of find() in codegen
Max Bernstein
07:23 PM Revision 7d9cd30b (git): ZJIT: Don't use find() in remove_redundant_patch_points
Cuts pass time from 65ms to 35ms on lobsters. Max Bernstein
07:23 PM Revision dead5c71 (git): ZJIT: Don't use find() in clean_cfg
Cuts pass time from 68ms to 63ms on lobsters. Max Bernstein
07:23 PM Revision dee83948 (git): ZJIT: Don't use find() in optimize_load_store
Cut pass time from ~80ms to ~50ms on lobsters. Max Bernstein
07:23 PM Revision da1b4f75 (git): ZJIT: Don't use find() in convert_no_profile_sends
Cut strength reduce time from ~200ms to ~180ms on lobsters. Max Bernstein
07:23 PM Revision dc76e876 (git): ZJIT: Don't use find() in fold_constants
Cut constant folding time from ~70ms to ~40ms on lobsters. Max Bernstein
06:24 PM Bug #22223 (Open): Socket.tcp with connect_timeout returns a phantom "connected" socket for a refused connection on macOS 27 (kernel answers EISCONN on connect retry; SO_ERROR never consulted)
## Summary
On macOS 27.0 (beta, build 26A5388g, arm64 — M5), `Socket.tcp(host, port, connect_timeout: X)` returns a socket object instead of raising `Errno::ECONNREFUSED` when nothing is listening on the port. The returned socket is n...
tdehnke (Tony Dehnke)
03:41 PM Misc #22221: DevMeeting-2026-08-06
* [Feature #22068] Adding post-quantum cryptography (PQC) support across Ruby standard libraries (jaruga)
* I explain the feature with my motivations, and answer questions from other developers.
* I want to share how to proceed for p...
jaruga (Jun Aruga)
02:43 PM Misc #22221: DevMeeting-2026-08-06
* [Bug #22197] Backtraces show methods which do not exist (eregon)
* As the title says, backtraces sometimes list methods which do not exist, because of mixing definition name with run-time owner (`Method#owner`).
* Since we print fi...
Eregon (Benoit Daloze)
02:42 PM Misc #22221: DevMeeting-2026-08-06
* [Feature #22212] Add Thread::Backtrace::Location#source_range (eregon)
* Proposes a portable API returning a `Ruby::SourceRange` for an exception's `backtrace_locations` or for `caller_locations`.
* This gives tools stable start/...
Eregon (Benoit Daloze)
07:24 AM Misc #22221: DevMeeting-2026-08-06
* [Feature #22213] Allow no-argument and chained calls of Proc#refined (shugo)
* A no-argument call returns the receiver itself, and a chained call returns a Proc with additional refinements: `prc.refined(*ms).refined(*ns)` is equivale...
shugo (Shugo Maeda)
06:44 AM Misc #22221 (Open): DevMeeting-2026-08-06
# The next dev meeting
**Date: 2026/08/06 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o...
mame (Yusuke Endoh)
02:21 PM Bug #21682: The result of IO#pos is inconsistent after using IO#ungetc.
I haven't heard anything.
There was no response to the PR either, but if I can point out one thing, I think the CI failure was accidental.
I may be overthinking this, but by limiting the scope of this issue too much, we might be miss...
YO4 (Yoshinao Muramatsu)
02:01 PM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
I guess one concrete issue here with using `rb_str_new_static()` is the mmaped file/stack buffer will be freed soon after the `RubyVM::InstructionSequence.load_from_binary(String)` call, but that String object might live longer, there is... Eregon (Benoit Daloze)
01:08 PM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
Yes, I get that, but my point is that these constraints are very hard to ensure in my case.
byroot (Jean Boussier)
11:36 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
The only requirements for `rb_str_new_static` are that the caller is responsible for freeing the allocated memory, and that the memory is not freed while the object is still in existence.
You can think of it as requiring the same level ...
nobu (Nobuyoshi Nakada)
08:43 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
@nobu yes I know, but as you mention, it's meant to point at static C strings, not mmaped files or stack buffers, so it doesn't work for Bootsnap. byroot (Jean Boussier)
08:31 AM Feature #22222: Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
`rb_str_new_static` does not `memcpy` (of course you have the responsibility to keep the `String`). nobu (Nobuyoshi Nakada)
08:08 AM Feature #22222 (Open): Expose a C API equivalent of `RubyVM::InstructionSequence.load_from_binary`
Currently the only API to deserialize instruction sequence is `RubyVM::InstructionSequence.load_from_binary(String)`.
It works fine, but isn't ideal for gems like bootsnap, as it needs to allocate a fairly large string and `memcpy` in...
byroot (Jean Boussier)
01:38 PM Revision 805d510e (git): Lock-free rb_sym2id/rb_sym2str
This shouldn't slow anything down on x86 (plain load vs acquire load). A slight
slowdown for ARM is expected.
The new top-level id_entry_dir is replacing the hidden array and is RCU'd under
a lock.
Co-authored-by: Matt Valentine-House ...
Luke Gruber
01:35 PM Revision bb235bdd (git): Avoid build-time race condition when cross-compiling from a source tarball
Since commit 66529eef883c ("Force to update revision.h when commits
differ"), the Makefile rule for $(REVISION_H) is always marked as PHONY
when building from a source tarball. This has no benefit,
file2lastrev.rb will just print a warni...
Paul Barker
01:31 PM Revision 3f8fe449 (git): Remove useless if statement around RUBY_GC_HEAP_FREE_SLOTS
peterzhu2118 (Peter Zhu)
01:20 PM Revision db1a7e06 (git): Ignore linear performance tests in rexml
Recently, these tests have frequently timed out during the stage of
constructing the input string, before calling `REXML::Document.new`.
This is likely caused by memory exhaustion due to the recently
introduced parallel tests.
nobu (Nobuyoshi Nakada)
01:17 PM Revision eb363c84 (git): [ruby/prism] Fix statuc literals rehashing on resize
https://github.com/ruby/prism/commit/ef818e32c9 kddnewton (Kevin Newton)
01:03 PM Revision aa63c432 (git): [ruby/prism] Fix up duplicate key warning
When there are strings that resolve to the same bytes but resolve
to different encodings, we need to not warn.
https://github.com/ruby/prism/commit/b776e364cd
kddnewton (Kevin Newton)
09:24 AM Feature #9779: Add Module#descendants
I've added specs to the pull request: https://github.com/ruby/ruby/pull/17807/changes/ed81db60a57ec586d4c5300282bc8c5ebcaa0e1e shugo (Shugo Maeda)
07:54 AM Feature #21987 (Rejected): Assume `chdir(2)` isn't called and cache `rb_dir_getwd_ospath()`
byroot (Jean Boussier)
07:42 AM Revision 630f2b70 (git): [DOC] Update bundled gems list at 6203e5c368a821d593a871844a5644
git[bot]
06:44 AM Misc #22107 (Closed): DevMeeting-2026-07-09
mame (Yusuke Endoh)
06:26 AM Revision 6203e5c3 (git): Update default gems list at 5cee58911273a3298ab8f68520dcf9 [ci skip]
git[bot]
06:25 AM Revision 5cee5891 (git): [ruby/json] Release 2.21.2
https://github.com/ruby/json/commit/5a32e4367c byroot (Jean Boussier)
06:23 AM Revision 1d7e8051 (git): [ruby/io-console] [DOC] Ruby C API availability
Record the Ruby releases that made the checked C APIs available.
https://github.com/ruby/io-console/commit/f098c8b5ff
nobu (Nobuyoshi Nakada)
06:23 AM Revision 3914aded (git): [ruby/io-console] Remove stale checks
* rb_io_get_write_io: 1.9.3
* rb_syserr_fail_str: 2.0.0 and backported to 1.9.3
https://github.com/ruby/io-console/commit/60c81c6162
nobu (Nobuyoshi Nakada)
06:22 AM Revision 8a443116 (git): [ruby/json] Also don't compute ResumableParser cursor position for warning
Same reason we don't for errors, since the resumable parser doesn't
keep the entire stream in memory, it can't always be accurate, and
the buffer may even have been freed.
Anyway, for a long lived stream, it wouldn't be very helpful eit...
byroot (Jean Boussier)
03:41 AM Revision 7ed9c82d (git): Only clear $~ once when #match "fails" (#18101)
```
❯ ips --ruby ruby-dev --ruby ruby-master -e '"".match(/a/)'
ruby 4.1.0dev (2026-07-28T19:56:48Z master 120c8fa88c) +PRISM [arm64-darwin25]
"".match(/a/): 23.493M i/s (± 1.1%)
ruby 4.1.0dev (2026-07-28T19:56:48Z master 120c...
Hartley McGuire
03:18 AM Bug #15980: Coverage shows while/until after raise if/unless as uncovered line
Fixed in https://github.com/ruby/ruby/pull/18122 ioquatix (Samuel Williams)
02:22 AM Revision c1bf73e7 (git): Fix unused variable warning in test_thread_timer_and_interrupt
`err` became unused when the flaky assertion was removed in
c05f55416f1, and warns on every rubyci build.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
02:06 AM Revision 8f372fcb (git): Re-bootstrap vcpkg after updating its registry
microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl...
Hiroshi SHIBATA
01:40 AM Revision 3ebc7895 (git): Re-bootstrap vcpkg after updating its registry
microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl...
Hiroshi SHIBATA
12:13 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
I've wanted to fix this for a while. We should do what TruffleRuby does and others have described. Of the options ko1 proposed, I think with both these tables need to hold weak references (making them essentially the same thing) otherwis... jhawthorn (John Hawthorn)
12:13 AM Revision 825c4579 (git): ZJIT: Add test coverage for the `ArrayMax` and `ArrayMin` (#18030)
- Codegen tests for `ArrayMin` (mirroring the existing `ArrayMax` ones)
- HIR opt tests asserting that `ArrayMax` / `ArrayMin` are emitted
- An Array#min redefinition test mirroring `test_dont_optimize_array_max_if_redefined`
Daichi Kamiyama
12:12 AM Revision 9bff5cc2 (git): ZJIT: Add coverage test for polymorphic ISEQ dispatch at one call site (#17467)
A monomorphic-specialized call site (warmed up with class A) must still
return correct results when a second class B with its own ISEQ method of
the same name flows through it. The receiver type guard should send the B
receiver to the si...
Daichi Kamiyama

07/30/2026

11:40 PM Bug #22219: IO::Buffer#free, #resize and #transfer should raise FrozenError if the receiver is frozen
### PR
for `IO::Buffer#free` and `IO::Buffer#resize`: https://github.com/ruby/ruby/pull/18129
for `IO::Buffer#transfer`: https://github.com/ruby/ruby/pull/18130
himura467 (Akito Shitara)
03:24 PM Bug #22219 (Open): IO::Buffer#free, #resize and #transfer should raise FrozenError if the receiver is frozen
Currently `IO::Buffer#free`, `#resize` and `#transfer` can be called even if the receiver is frozen. All three release, reallocate or hand away the memory the buffer references, so they change the state of the buffer. Therefore it seems ... himura467 (Akito Shitara)
10:29 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> in each Proc or binding
A small precision here which might be helpful is svars are only stored on method frames, never on block frames. So it's per method frame and Proc are unaffected (they just access the encapsulating method fram...
Eregon (Benoit Daloze)
09:21 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
To give a bit more details, TruffleRuby then always reserves one slot in the frame for svar's, and lazily allocate the storage for them on first access:
https://github.com/truffleruby/truffleruby/blob/33598a0447c4cd0b56eb56b80e81b094ea5...
Eregon (Benoit Daloze)
09:16 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
TruffleRuby already make these always thread-local, and there has been 0 compatibility issue reported about that.
It's basically option (1) mentioned by @ko1, i.e. a dictionary/ThreadLocal object on the frame, but with the optimization ...
Eregon (Benoit Daloze)
03:30 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
I agree that the current behavior is a Ractor bug. In fact, this is one of the blockers preventing us from removing the "experimental" warning from Ractor. These variables should be thread-local.
The main implementation challenge is h...
ko1 (Koichi Sasada)
02:07 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> ethically detectable
statically detectable
headius (Charles Nutter)
02:06 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
Oh, it's also worth pointing out that there are Regexp method equivalents of each of the special backref variables (`last_match` etc). They are less commonly used, I believe, and usually called directly on Regexp, but that's another exam... headius (Charles Nutter)
02:03 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> it's easy to know if a method access these special variables (getspecial instruction),
That is not sufficient. There are methods that read *and* write these special variables without the user ever accessing the literal globals.
...
headius (Charles Nutter)
10:10 PM Revision 3e9592ec (git): ZJIT: Assert that we never profile Qundef (#18128)
Max Bernstein
09:48 PM Revision 0e5f3094 (git): Fix bignum power_cache across Ractors (used by big2str/str2big)
This global cache was unsynchronized and across Ractors that is racy and
leads to undefined behavior. The repro code included as a regression test
was crashing with SEGV or producing bad results from bignum#to_s before this
fix.
Luke Gruber
09:42 PM Bug #22220: Performance regression when requiring `aws-sdk-ec2` in Ruby 4.0.6
Seems caused by [1f473ed633a364f8c89b69a76adfb22a4bf21f96](https://github.com/ruby/ruby/commit/1f473ed633a364f8c89b69a76adfb22a4bf21f96) luke-gru (Luke Gruber)
06:25 PM Bug #22220 (Open): Performance regression when requiring `aws-sdk-ec2` in Ruby 4.0.6
Ruby 4.0.6 introduced a large performance regression when loading `aws-sdk-ec2` (~30s on my machine, compared to <1s for ruby 4.0.5). Script to reproduce:
```
for v in 4.0.5 4.0.6; do
docker run --rm ruby:$v-slim bash -c '
ge...
emanuelevans (Emanuel Evans)
08:09 PM Feature #22068: Adding post-quantum cryptography (PQC) support across Ruby standard libraries
@seki or other ruby/drb maintainers, I opened the issue ticket <https://github.com/ruby/drb/issues/52>, sending the PR. The PR link is on the issue ticket. I would appreciate your reviews for the PR. jaruga (Jun Aruga)
08:06 PM Revision f2ff7246 (git): ZJIT: Run doc tests on CI
So code in documentation are tested. alanwu (Alan Wu)
08:06 PM Revision 41794563 (git): ZJIT: Simplify way to disable coercion for `PtrPrintMap`
alanwu (Alan Wu)
06:53 PM Revision d53ddbe2 (git): Make rb_internal_thread_event_hooks_rw_lock_atfork static
peterzhu2118 (Peter Zhu)
06:22 PM Revision daab4208 (git): ZJIT: Simplify and optimize ProfiledType::new (#18126)
Reduce the number of branches and only look up the shape once instead of
twice.
Brings a profiling-heavy run (profiling for 1000 calls) of lobsters from
700ms to 660ms profile time. Unfortunately getting the current time for
stats is st...
Max Bernstein
06:09 PM Revision 03e2f86c (git): ZJIT: Profile caller splat length distributions (#17967)
* ZJIT: Profile caller splat length distributions
Related to: https://github.com/Shopify/ruby/issues/1004
Before specializing sends with caller splats, collect the distribution of
caller splat array lengths.
The splat length determine...
Nozomi Hijikata
05:49 PM Revision 762fa2fc (git): Increase SYNTAX_SUGGEST_TIMEOUT for ppc64le/s390x from 10 to 60 seconds
The "does not timeout on massive files" integration test in
spec/syntax_suggest/integration/syntax_suggest_spec.rb is only activated
when SYNTAX_SUGGEST_TIMEOUT is set. The CI workflow sets it to 10 for
ppc64le/s390x runners, but this is...
copilot-swe-agent[bot]
01:04 PM Revision a2ddafb4 (git): [ruby/mmtk] Add obj_need_obj_free_p
We don't need to call obj_free on certain types of objects anymore including
T_FLOAT, T_RATIONAL, T_COMPLEX, and T_OBJECT. It makes freeing those objects
faster.
Benchmark:
i = 0
while i < 10_000_000
Object.new
i +=...
peterzhu2118 (Peter Zhu)
11:58 AM Bug #21682: The result of IO#pos is inconsistent after using IO#ungetc.
Has there been any progress behinds the scenes on this? javanthropus (Jeremy Bopp)
10:37 AM Bug #22218 (Closed): Line TracePoint misses executed loop condition after a guard
Applied in changeset commit:git|79e6d37b5569be4c772e9d41e8a5447e82c09683.
----------
Preserve line events across jump optimization. (#18122)
[Bug #22218]
Anonymous
10:14 AM Bug #22218 (Closed): Line TracePoint misses executed loop condition after a guard
`TracePoint.new(:line)` can miss the line event for an executed loop condition when the loop follows a conditional guard.
This is related to [Bug #15980](https://bugs.ruby-lang.org/issues/15980), which fixed the same control-flow prob...
ioquatix (Samuel Williams)
10:37 AM Revision 79e6d37b (git): Preserve line events across jump optimization. (#18122)
[Bug #22218] Samuel Williams
09:04 AM Revision f275e95f (git): Re-bootstrap vcpkg after updating its registry
microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.
Co-Authored-By: Cl...
Hiroshi SHIBATA
08:50 AM Revision c692cc8f (git): [ruby/rubygems] Point bundler.io URLs at guides.rubygems.org
bundler.io has been wound down and its content now lives on RubyGems Guides: the Bundler man pages under /command-reference/, the Gemfile reference at /gemfile/, and the remaining guides as individual pages. The redirects still work, but... hsbt (Hiroshi SHIBATA)
07:48 AM Revision c418600f (git): [DOC] Update bundled gems list at 019357d131b819847f7c0094dc5a5d
git[bot]
07:38 AM Revision 019357d1 (git): Update bundled gems list as of 2026-07-30
git[bot]
06:36 AM Revision acc86e6d (git): [ruby/rubygems] Warn when duplicate source declarations conflict on cooldown
Declaring the same source URL twice with different cooldown values
silently drops one of them, because duplicate declarations are deduped
into a single source and cooldown applies per server, not per gem.
The reporter of #9723 used a sec...
hsbt (Hiroshi SHIBATA)
06:24 AM Revision 553f19d9 (git): [DOC] Fix the $? description of Process::Status.wait (#18109)
The documentation says that Process::Status.wait sets the thread-local
variable $? when there are child processes, but it never does.
rb_process_status_wait does not call rb_last_status_set, and $? is left
untouched:
$? ...
Shizuo Fujita
05:42 AM Revision e15f28c5 (git): [ruby/rubygems] Redact URI userinfo from settings names in Bundler User-Agent
The `options/` segment of Bundler's User-Agent is built from
`Bundler.settings.all`, which returns only setting names. Mirror
settings, however, embed a URI in the key itself
(`mirror.http://user:token@host/`), so the URI userinfo become...
hsbt (Hiroshi SHIBATA)
05:42 AM Revision 145a4bba (git): [ruby/rubygems] Validate gem name before building compact index cache paths
Bundler::CompactIndexClient::Cache#info_path and #info_etag_path join
the gem name into the cache directory without validation. The name comes
from the remote index, either versions lines or transitive dependency
names in info files, so ...
hsbt (Hiroshi SHIBATA)
04:07 AM Bug #22217 (Open): Segmentation fault when resuming execution with `Coverage.start` and ruby/debug
Resuming execution from `ruby/debug` while coverage collection is enabled via `Coverage.start` can cause a segmentation fault and crash the Ruby process.
The crash is intermittent, but reproduces frequently using the same steps. I con...
yokomaru (Yoko Suzuki)

07/29/2026

11:49 PM Revision 94933bfe (git): Don't label bindings-only changes with jit label (#18116)
Max Bernstein
11:24 PM Revision 8495d0ec (git): win32/rm.bat: report removal failures via exit code
The `error` variable was set on failure but never reached the exit
code, so removal failures such as a locked DLL left `nmake clean`
green while stale artifacts remained. Exit with `error` at the end.
Since `rd /s` does not set ERRORLEV...
hsbt (Hiroshi SHIBATA)
11:23 PM Revision ba576930 (git): [ruby/rubygems] Fail `bundle check` when frozen mode needs lockfile changes
`BUNDLE_FROZEN=1 bundle check` reported that dependencies are satisfied and exited 0 even when the lockfile was missing CHECKSUMS entries, because `write_lock` only warns in frozen mode. Run the same frozen validation as `bundle install`... hsbt (Hiroshi SHIBATA)
11:03 PM Feature #22212: Add Thread::Backtrace::Location#source_range
ko1 (Koichi Sasada) wrote in #note-14:
> Just to confirm: the PR's implementation of `Thread::Backtrace::Location#source_range` seems fragile because it reparses the script from the file system.
> ...
Yes, this is intentional to avoid ...
Eregon (Benoit Daloze)
03:18 PM Feature #22212: Add Thread::Backtrace::Location#source_range
Just to confirm: the PR's implementation of `Thread::Backtrace::Location#source_range` seems fragile because it reparses the script from the file system.
Is this behavior intentional?
I understand the implementation and its current lim...
ko1 (Koichi Sasada)
08:59 PM Revision e67f0251 (git): [ruby/prism] Pinned back references and pinned numbered references are not allowed
https://github.com/ruby/prism/commit/35c587b1c2 kddnewton (Kevin Newton)
08:44 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> But the problem still stands: you can't know just by looking at Ruby code (sans type hints or JIT profiles) whether a given method might access the caller's frame in "special" ways.
I don't want to derail the discussion too much, bu...
byroot (Jean Boussier)
07:45 PM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> I've always considered this a bug. If possible they should definitely be scoped to the current thread (or rather fiber?).
I prototyped this for JRuby some years ago, and I believe Rubinius (and perhaps TruffleRuby) implemented it this...
headius (Charles Nutter)
06:51 AM Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
> Updates to backref and lastline are visible across threads and already can lead to concurrency issues even on CRuby.
I've always considered this a bug. If possible they should definitely be scoped to the current thread (or rather fi...
byroot (Jean Boussier)
08:06 PM Revision a69bb3ab (git): Implement GC fast path for gen_new_range
Implements GC fast path for newrange instruction when we do not need to
call <=> method (when either endpoint is nil or both are fixnums).
Benchmark:
def run(max)
i = 0
while i < max
a = i..max
i += 1
...
peterzhu2118 (Peter Zhu)
07:20 PM Revision 8ebf16fa (git): id_table.c: keep managed id table live across foreach/dup callbacks
rb_managed_id_table stores its rb_id_table body as embedded data
(RUBY_TYPED_EMBEDDABLE), so managed_id_table_ptr returns a pointer
interior to the wrapper object. rb_managed_id_table_foreach,
_foreach_values, and _dup hand that interio...
ko1 (Koichi Sasada)
07:02 PM Revision 1cbb5537 (git): [ruby/mmtk] Skip tests in TestStruct
https://github.com/ruby/mmtk/commit/62fde9fc52 peterzhu2118 (Peter Zhu)
07:02 PM Revision e0e96393 (git): [ruby/mmtk] Skip tests in Test_StringCapacity
https://github.com/ruby/mmtk/commit/5767c1d970 peterzhu2118 (Peter Zhu)
07:02 PM Revision d84e57fb (git): [ruby/mmtk] Implement large object space
https://github.com/ruby/mmtk/commit/b458664cb1 peterzhu2118 (Peter Zhu)
07:02 PM Revision 3ae87b77 (git): [ruby/mmtk] Remove MMTK_MAX_OBJ_SIZE
https://github.com/ruby/mmtk/commit/2f925b352a peterzhu2118 (Peter Zhu)
06:10 PM Revision 20449aa1 (git): ZJIT: Use TooManyArgsForLir reason for oversized direct block calls
k0kubun (Takashi Kokubun)
06:10 PM Revision 6ea07a48 (git): Fix a comment about too many args
Co-authored-by: Kevin Menard <kevin@nirvdrum.com> k0kubun (Takashi Kokubun)
06:10 PM Revision 8b2bd6a5 (git): ZJIT: Add HIR opt tests for oversized direct block calls
k0kubun (Takashi Kokubun)
06:10 PM Revision 3731d665 (git): ZJIT: Reject direct block calls with too many args for LIR
The invokeblock fast path (InvokeBlockIseqDirect) passes captured self
plus each block argument in C argument registers, but
block_call_inlinable_iseq never bounded the argument count. Yielding 6+
arguments to a matching-arity block made...
k0kubun (Takashi Kokubun)
06:09 PM Revision 72749d7d (git): ZJIT: Allowlist pointee types in PtrPrintMap::map_ptr
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> k0kubun (Takashi Kokubun)
06:09 PM Revision ab191be2 (git): ZJIT: Only accept raw pointers in PtrPrintMap::map_ptr
Previously map_ptr<T>() took *const T, so a reference like &IseqPtr
silently coerced to *const IseqPtr and mapped the address of the
reference itself instead of the pointer value, which is how the bug
fixed by the previous commit slipped...
k0kubun (Takashi Kokubun)
06:09 PM Revision 821af045 (git): ZJIT: Map pointer values instead of temporary addresses in HIR dump
k0kubun (Takashi Kokubun)
06:05 PM Revision 9f6753e6 (git): ZJIT: Use BitSet, not HashSet, for LIR block sets
No need for hashing in LIR RPO. Max Bernstein
06:05 PM Revision 4a6e60e6 (git): ZJIT: Rewrite LIR successors function to avoid cloning edges
We only need the target blocks, not the argument vectors. Max Bernstein
05:16 PM Revision 5845220c (git): Fix directory mappings for MMTk in sync_default_gems.rb
peterzhu2118 (Peter Zhu)
04:34 PM Revision a2cc692d (git): Make Proc#refined's memoized iseq copy and memo shareable
Proc#refined memoizes {copied_iseq, cref} per source iseq in a
process-global map so the copy can be reused from any Ractor. The
cref's refinements table is already frozen and marked shareable for
that reason, but the copied iseq and th...
ko1 (Koichi Sasada)
03:03 PM Revision 3ca77abb (git): Drop MMTK_HEAP_MAX in test_oom
Sync ruby/mmtk@11ea3a437f788fb085a61d1c7d931a9527dc13ba. peterzhu2118 (Peter Zhu)
02:56 PM Revision d6e2feea (git): Return a byte count from ractor_sync_memsize()
st_table_size() is the number of entries, but ractor_memsize() adds the result to sizeof(rb_ractor_t) as a byte count, so a Ractor was reported as costing one byte per open port. Use st_memsize(), as ractor_selector_memsize() in this fil... himura467 (Akito Shitara)
02:42 PM Revision 72cf6fff (git): ZJIT: Make UnboxFixnum effectless (#18103)
It's just an integer right shift. Max Bernstein
02:09 PM Revision a32dded0 (git): ZJIT: Iterate over state in SetLocal (#18102)
We added state to `SetLocal` but didn't change `for_each_operand_impl`. Max Bernstein
10:52 AM Revision 6c2b1174 (git): Clarify strict-prototypes workaround [ci skip]
Document the affected Clang and Autoconf versions. nobu (Nobuyoshi Nakada)
08:50 AM Bug #22211: Fiber::Scheduler stalls on Ractor::Port.receive
Interesting!
I've been playing with workarounds in Ruby-land where I have up to one extra thread per Ractor, which executes `Ractor.select(coordinating_port, *ports)` with a backlog of waiting fibers per port, and then uses a `Conditi...
rkh (Konstantin Haase)
07:48 AM Revision bb593378 (git): [ruby/json] Improve max_nesting documentation
https://github.com/ruby/json/commit/5499aa54a4 byroot (Jean Boussier)
05:06 AM Revision b4e40f78 (git): [ruby/rubygems] Document Bundler checksum behavior for default gems
Signed-off-by: Patrick Linnane <patrick@linnane.io>
https://github.com/ruby/rubygems/commit/56a82a2573
p-linnane (Patrick Linnane)
04:44 AM Revision 0de0afb2 (git): [ruby/rubygems] Assert on the lockfile in the cooldown bypass control spec
On x86_64-linux hosts `--cooldown 0` resolves to the platform-specific
build, so `include_gems` failed expecting the ruby platform.
https://github.com/ruby/rubygems/commit/d7be25160e
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)
04:44 AM Revision e86de2aa (git): [ruby/rubygems] Pin cross-platform cooldown exclusion in an e2e spec
Exclusion is keyed on [name, version] and deliberately ignores
platform, so pushing a fresh platform-specific build under an
already-ripe version number cannot slip new code past the cooldown.
No spec covered that behavior.
https://gith...
hsbt (Hiroshi SHIBATA)
04:44 AM Revision 011591a0 (git): [ruby/rubygems] Add --cooldown flag to bundle lock and bundle cache
Both commands resolve, but only install, update, add and outdated
accepted the flag, so the resolver's failure hint suggesting
`--cooldown 0` was not actionable on `bundle lock --update`.
https://github.com/ruby/rubygems/commit/2c4f4f39...
hsbt (Hiroshi SHIBATA)
02:42 AM Revision 2d616a9b (git): Remove unused autoload table copier
Remove the copier left unused when class fields cloning replaced raw
table copying in commit 3abdd4241fd5.
nobu (Nobuyoshi Nakada)
02:36 AM Revision dd152821 (git): Bump taiki-e/install-action
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.85.2 to 2.85.3
- [Release notes](https://github.com/taiki-e/i...
dependabot[bot]
02:36 AM Feature #22213: Allow no-argument and chained calls of Proc#refined
I've updated the implementation to defer the copy of the block until the returned Proc is first called: https://github.com/ruby/ruby/pull/18052/changes/d4a6282429f59f45f2c5f482618cdcaf63ff0df4
A Proc that is never called is never copied,...
shugo (Shugo Maeda)
12:57 AM Revision d13a49fc (git): ZJIT: Fix kwargs handling in invokeblock ifunc specialization (#17971)
gen_invokeblock_ifunc drops the callinfo and passes argv straight to
rb_vm_yield_with_cfunc, which hardcodes kw_splat = 0, so keyword
arguments lost their keyword-ness. Gate the ifunc specialization on
block_call_inlinable, the same chec...
Daichi Kamiyama

07/28/2026

11:26 PM Revision 2999c81c (git): Fix memory leak in MatchData
The following script leaks memory:
10.times do
# MatchData#offset allocates an external char_offset buffer
100_000.times.map do
m = /(a)(b)(c)(d)/.match("abcd")
m.offset(0)
m
end
GC.s...
peterzhu2118 (Peter Zhu)
09:45 PM Bug #22216 (Open): Regexp backref and IO lastline are incompatible with Ractor
## Problem
Several Regexp-matching methods currently write (and sometimes read) the implicit "backref" `$~` variable in the local frame (and related variables like `$'`).
Several IO methods read or write the "last line" `$_` variab...
headius (Charles Nutter)
09:31 PM Revision cf819091 (git): Reapply "ZJIT: Add counters for throw and exception_handler" (#17945) (#18099)
This reverts commit ff6ac97529962b824d528b4bf32485179bb25805. k0kubun (Takashi Kokubun)
09:20 PM Revision c05f5541 (git): Remove flaky assertion in test_thread_timer_and_interrupt
Don't rely on exact timings even if they seem generous enough. This has
failed recently on CI (MacOS-15-intel).
Luke Gruber
07:56 PM Revision 120c8fa8 (git): Fix memory leak when sweeping hashes with st_table
The GC sweep fast path had an inverted condition for hashes in
rb_gc_obj_needs_cleanup_p. Hashes with an st_table needs to be freed.
The following script leaks memory:
10.times do
100_000.times do
# Hashes with more t...
peterzhu2118 (Peter Zhu)
07:26 PM Revision 7a4de474 (git): [ruby/openssl] pkcs7: fix flaky test test_enveloped
OpenSSL::PKCS7#decrypt is unreliable when given only a private key and
the PKCS#7 structure contains multiple recipients. It may occasionally
raise an exception or return garbage data. Update the test to avoid
this.
This became much mor...
rhenium (Kazuki Yamaguchi)
06:54 PM Revision 67eb41e0 (git): Fix cross-ractor busy-waiting in vm_once_dispatch
Use a proper nogvl + native mutex broadcast solution to deal with
cross-ractor thread synchronization.
Luke Gruber
06:54 PM Revision 1a12d846 (git): Fix once insn when multiple Ractors race to execute the iseq
The `once` insn (ex: for interpolated regexp with /o option) should only be
executed once even across Ractors. The `once` value is associated with
the iseq, which is shared across Ractors.
Ideally, waiting threads in other Ractors would...
Luke Gruber
06:19 PM Bug #22211: Fiber::Scheduler stalls on Ractor::Port.receive
The tricky part in integrating the fiber scheduler with `Ractor::Port` `send/receive` is what to do when you want to wakeup (unblock) a fiber on another Ractor. Normally unblocking a fiber is done on the same Ractor and it's done in a co... luke-gru (Luke Gruber)
05:47 PM Revision 3ab7644a (git): Add writebarrier for Array#reverse
jhawthorn (John Hawthorn)
05:01 PM Revision 438674be (git): ZJIT: Require trivial inline target to end at leave (#18063)
* ZJIT: Fix trivial inlining for optional argument entries
Use SendDirect's jit_entry_idx when reading the callee bytecode for
trivial inlining, so optional-argument calls inspect the same entry
point that SendDirect selected.
This avo...
Nozomi Hijikata
04:31 PM Bug #22214 (Closed): SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
Applied in changeset commit:git|d3aee406de6693a06b87d95fdafa258be1ee1681.
----------
Raise TypeError for uninitialized Ractor::Port
Ractor::Port has a public allocator, so Ractor::Port.allocate returns a port whose owner Ractor is stil...
himura467 (Akito Shitara)
02:02 PM Bug #22214: SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
PR: https://github.com/ruby/ruby/pull/18092 himura467 (Akito Shitara)
01:26 PM Bug #22214 (Closed): SEGV when struct ractor_port.r is referenced after Ractor::Port.allocate
`Ractor::Port` has a public allocator, so `Ractor::Port.allocate` returns a port whose owner Ractor (`struct ractor_port.r`) is still NULL; only `ractor_port_init()` fills it in. Methods dereference it without a check.
```ruby
Ractor...
himura467 (Akito Shitara)
04:31 PM Revision d3aee406 (git): Raise TypeError for uninitialized Ractor::Port
Ractor::Port has a public allocator, so Ractor::Port.allocate returns a port whose owner Ractor is still NULL; only ractor_port_init() fills it in. The methods dereferenced it unchecked:
Ractor::Port.allocate.closed? # [BUG] Segmentati...
himura467 (Akito Shitara)
03:00 PM Feature #22215 (Open): Introduce narrow internal interfaces for bundled extensions
## Abstract
Introduce narrow internal interfaces for bundled extensions so that they do not need to depend on VM implementation headers such as `vm_core.h` or thread implementation files such as `thread_pthread.h`.
These interfaces...
nobu (Nobuyoshi Nakada)
02:57 PM Revision c2473016 (git): Set STR_DUPLICATE_MAX_EMBED_LEN to 256
I benchmarked various values of STR_DUPLICATE_MAX_EMBED_LEN and the
performance impacts. For String#dup, creating a view is faster until it
is below 256 bytes. Unsurprisingly, if we add modification to the string,
then it is faster to ea...
peterzhu2118 (Peter Zhu)
12:03 PM Revision 9b76442b (git): [DOC] Fix return value documentation of IO::Buffer#<=> and #hexdump (#18089)
The call-seq of IO::Buffer#<=> says it returns "true or false", but
rb_io_buffer_compare always returns an integer: -1 or 1 when the sizes
differ, and the result of memcmp as is when the sizes are equal. Since
the value comes straight fr...
Shizuo Fujita
11:11 AM Revision 624075c8 (git): [DOC] Fix the buffer size in the IO::Buffer#& example (#18087)
The example shows the result as `+4`, but the operation returns a buffer of
the same size as the source, which is 10 bytes here:
$ ruby -e 'p((IO::Buffer.for("1234567890") & IO::Buffer.for("\xFF\x00\x00\xFF")).size)'
10
The res...
Shizuo Fujita
10:51 AM Revision f61f8f04 (git): [ruby/prism] Appease typecheck
https://github.com/ruby/prism/commit/e25f51b19c Earlopain (Earlopain _)
10:20 AM Revision 6a0b6ef6 (git): [ruby/prism] Better compatibility for hash string-like symbol keys in parser translator
There's some special handling in regards to empty symbols and those containing newlines
that should apply here. Makes it produce the correct amount of sym/dsym nodes
https://github.com/ruby/prism/commit/8b567cc403
Earlopain (Earlopain _)
10:19 AM Revision 0728ece0 (git): [ruby/prism] Avoid a quadratic walk when parsing long call chains
parse_expression_terminator runs after every infix operator and called
pm_block_call_p, which walks the whole receiver chain, even when the
binding power alone already decided the result. Check the binding power
first; pm_block_call_p is...
shugo (Shugo Maeda)
08:41 AM Bug #22105: Cannot initialize a WeakRef in a Ractor
Fix: https://github.com/ruby/weakref/pull/88 rkh (Konstantin Haase)
05:23 AM Revision fdf6dba1 (git): [ruby/rubygems] Regenerate man pages
https://github.com/ruby/rubygems/commit/6c1bf4b7d1 hsbt (Hiroshi SHIBATA)
05:23 AM Revision 58cf248b (git): [ruby/rubygems] Link bundle-platform(1) to the PLATFORMS section of gemfile(5)
The detailed explanation of platforms lives in gemfile(5), but
bundle-platform(1) never pointed readers there.
https://github.com/ruby/rubygems/commit/0af79d82ff
hsbt (Hiroshi SHIBATA)
05:23 AM Revision bbb8e912 (git): [ruby/rubygems] Clarify that Gemfile :path points to unpacked gem sources
The :path option was misread as a way to install a packaged .gem
file. State explicitly that it expects a directory with the gem's
unpacked source code.
https://github.com/ruby/rubygems/commit/dc7fdaa2a6
hsbt (Hiroshi SHIBATA)
04:46 AM Bug #18947: Unexpected Errno::ENAMETOOLONG on Windows
https://github.com/ruby/ruby/pull/18088 hsbt (Hiroshi SHIBATA)
02:31 AM Bug #18947: Unexpected Errno::ENAMETOOLONG on Windows
There is another way that does not need the registry key. Go's runtime sets the undocumented `IsLongPathAwareProcess` bit (0x80 at PEB offset 3) at startup, which `RtlAreLongPathsEnabled` reads, so long paths work per-process regardless ... hsbt (Hiroshi SHIBATA)
12:15 AM Revision 37fc35ac (git): Compact sets after removal of items for more methods (#18081)
This changes the following methods to compact the set after removal:
* `^`
* `-`
* `difference`
* `subtract`
* `keep_if`
* `select!`
* `filter!`
[Bug #22210]
jeremyevans (Jeremy Evans)
 

Also available in: Atom