Project

General

Profile

Activity

From 01/29/2026 to 02/04/2026

Today

10:12 PM Revision bc849a18 (git): [DOC] Fix links in Regexp (#16018)
burdettelamar (Burdette Lamar)
10:08 PM Revision 48d2c7fd (git): [DOC] Harmonize certain Module methods (#15804)
burdettelamar (Burdette Lamar)
06:04 PM Revision 91672629 (git): ZJIT: Upgrade self to HeapBasicObject after setinstancevariable (#16065)
If self is an immediate, setinstancevariable would have raised.
Therefore we can conclude that self must not be an immediate. This helps
us match YJIT type upgrades (YJIT will upgrade to UnknownHeap or
something similar).
tekknolagi (Maxwell Bernstein)
03:42 PM Revision 5571212f (git): ZJIT: Remove specialized instructions (#16034)
* ZJIT: Fix codegen for GuardSuperMethodEntry
We need to register the VALUE in the generated code so that it is
visible to the GC. This may be the cause of a crash in the test suite
that Alan found.
* ZJIT: Use LoadField+GuardBitEquals...
tekknolagi (Maxwell Bernstein)
03:00 PM Revision 540ea720 (git): Add myself as a prism maintainer
Earlopain (Earlopain _)
02:58 PM Revision 673c37d7 (git): [ruby/prism] Rewrite "version: nearest" to require no maintenance
Currently I see myself not updating this when a new version is added.
Instead, rewrite it to just work with new versions:
* Try to set the version
* If that doesn't succeed, check if it is lower
* If it isn't lower, it must be higher
W...
Earlopain (Earlopain _)
12:16 PM Bug #21860 (Closed): Process.fork: the child may deadlock on `th->interrupt_lock` in `threadptr_interrupt_exec_cleanup`
3.4 backport PR: https://github.com/ruby/ruby/pull/16060
3.3 backport PR: https://github.com/ruby/ruby/pull/16061
byroot (Jean Boussier)
12:09 PM Bug #21860: Process.fork: the child may deadlock on `th->interrupt_lock` in `threadptr_interrupt_exec_cleanup`
Oh, it has been fixed by https://github.com/ruby/ruby/pull/12981
byroot (Jean Boussier)
11:45 AM Bug #21860 (Closed): Process.fork: the child may deadlock on `th->interrupt_lock` in `threadptr_interrupt_exec_cleanup`
We recently observed some deadlocked processes. These got deadlock during child initialization right after `Process.fork`.
Based on the `gdb` session, the child is deadlocked in `threadptr_interrupt_exec_cleanup`, which suggest `th->i...
byroot (Jean Boussier)
09:50 AM Revision 1258992b (git): [ruby/rubygems] Fix gzip cache corruption when recovering from HTTP 416 responses
When a Range request returns 416 (Range Not Satisfiable), the recovery
path manually added an "Accept-Encoding: gzip" header before retrying.
This bypasses Ruby's automatic gzip decompression mechanism.
Ruby's Net::HTTP only sets decode...
gtirloni (Giovanni Tirloni)
09:22 AM Revision 9cc2242e (git): [ruby/rubygems] bin/rake man:build
https://github.com/ruby/rubygems/commit/5e95eba208 hsbt (Hiroshi SHIBATA)
09:22 AM Revision 395ad09c (git): [ruby/rubygems] Clarify local gem override docs to require git-sourced gems
https://github.com/ruby/rubygems/commit/a4a5cdb12c hsbt (Hiroshi SHIBATA)
09:09 AM Bug #21859: Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
Useful context for this issue which would make sense to add the description is this `Regexp` item from the NEWS of 3.3:
https://github.com/ruby/ruby/blob/master/doc/NEWS/NEWS-3.3.0.md
> The cache-based optimization now supports looka...
Eregon (Benoit Daloze)
09:01 AM Bug #21859 (Closed): Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
An interesting fact is TruffleRuby/TRegex seems to report exactly the opposite for these 4 Regexp whether they are linear:
```
truffleruby 33.0.1 (2026-01-20), like ruby 3.3.7, Oracle GraalVM Native [x86_64-linux]
irb(main):001> Regex...
Eregon (Benoit Daloze)
07:32 AM Revision c3b6f2e9 (git): Load `rubygems/platform.rb` after setting up the load path
nobu (Nobuyoshi Nakada)
07:28 AM Revision 444a3609 (git): Fix the load path in building extensions and encodings
Add `tool/lib` under the source directory instead of the source
directory itself, as there is no library to be loaded.
nobu (Nobuyoshi Nakada)
06:02 AM Revision 03a17fac (git): [ruby/rubygems] Add test case for git sources with transitive dependencies
https://github.com/ruby/rubygems/commit/00c8bb7bc5
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com>
copilot-swe-agent[bot]
06:02 AM Revision 0c2ded4a (git): [ruby/rubygems] Require parent path source to contain matching specs before selecting it as replacement
https://github.com/ruby/rubygems/commit/7c89d2588d hsbt (Hiroshi SHIBATA)
06:02 AM Revision e6483d98 (git): [ruby/rubygems] Added failing example
https://github.com/ruby/rubygems/commit/73735b503c hsbt (Hiroshi SHIBATA)
05:46 AM Revision 779c3f92 (git): Expand realpath to symlink when running with macOS
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> hsbt (Hiroshi SHIBATA)
05:40 AM Revision d26940e8 (git): Revert "Comment out to disable ppc64le and s390x CI builds"
This reverts commit e1655dad3a00a7b4026c653ff7c611811e7e34da. hsbt (Hiroshi SHIBATA)
05:00 AM Bug #21669 (Closed): Thoroughly implement void value expression check
Applied in changeset commit:git|c8b2a453d0fe099064e095d165ce38ee8c3eef38.
----------
[Bug #21669] Fix void value expression check for `rescue`
If any `rescue` node is non-void, the enclosing block is also
non-void.
nobu (Nobuyoshi Nakada)
04:28 AM Revision cb303ff4 (git): [Bug #21669] Fix void value expression check for pattern-matching
If the all `in` and `else` branches are void, the `case` is also void. nobu (Nobuyoshi Nakada)
04:28 AM Revision baaf0ccb (git): [Bug #21669] Fix void value expression check for block
A block containing a void statement that is not contained in a branch
is also void.
nobu (Nobuyoshi Nakada)
04:28 AM Revision 35b95ec2 (git): [Bug #21669] Add more void value expression check for `if`
If the both branches are void, the `if`/`unless` is also void. nobu (Nobuyoshi Nakada)
04:28 AM Revision 932ce048 (git): [Bug #21669] Implement void value expression check for `case`/`when`
If the all `when` and `else` branches are void, the `case` is also
void.
nobu (Nobuyoshi Nakada)
04:28 AM Revision 4f360107 (git): [Bug #21669] Fix void value expression check for `rescue`-else
If `rescue`-else node is void, the `rescue`-body is also void. nobu (Nobuyoshi Nakada)
04:28 AM Revision c8b2a453 (git): [Bug #21669] Fix void value expression check for `rescue`
If any `rescue` node is non-void, the enclosing block is also
non-void.
nobu (Nobuyoshi Nakada)
04:28 AM Revision 995c80bc (git): Make `rb_node_case2_t` and `rb_node_case3_t` aliases of rb_node_case_t
nobu (Nobuyoshi Nakada)
03:40 AM Revision 2ba2950d (git): show loadavg if the test fails
to survey the following failure:
```
1) Failure:
TestFile#test_stat [/tmp/ruby/src/trunk-repeat20/test/ruby/test_file.rb:412]:
Expected |1770056232.744032 - 1770056230.6465776| (2.097454309463501) to be <= 1.
```
BTW I found that `te...
ko1 (Koichi Sasada)
03:25 AM Revision 2dc4e872 (git): [ruby/rubygems] Lock diff-lcs < 2.0
https://github.com/ruby/rubygems/commit/23aecf4a86 hsbt (Hiroshi SHIBATA)
03:10 AM Revision 42c1d1dc (git): add deps
ko1 (Koichi Sasada)

02/03/2026

11:12 PM Revision d2ce6dd4 (git): tool: Update a comment `ifchange` [ci skip]
nobu (Nobuyoshi Nakada)
11:10 PM Revision c10b93cd (git): tool: Support `$NO_COLOR` in `ifchange`
nobu (Nobuyoshi Nakada)
08:14 PM Bug #21859: Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
Thank you, I understand now what you meant.
Should this issue be changed to a feature request?
trinistr (Alexander Bulancov)
05:59 PM Bug #21859: Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
> Isn't it impossible? To match, regexp needs to satisfy negative lookahead, so there should not be anything to capture.
As you wrote, captures are not available OUTSIDE of negative lookahead and also in MatchData.
But in `/(?!([a-z]...
tompng (tomoya ishida)
04:11 PM Bug #21859: Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
> I think `Regexp.linear_time?(/(?<=(a))/)` matches in linear time.
I apologize, it seems I got distracted and forgot to actually check the execution times.
But this is interesting behavior. Maybe constant-size lookahead can be optim...
trinistr (Alexander Bulancov)
10:58 AM Bug #21859: Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
First issue
> This should be false in both cases.
I think `Regexp.linear_time?(/(?<=(a))/)` matches in linear time.
If the issue is just for inconsistency between lookahead and lookbehind, it's not a bug.
Here's an example:
~...
tompng (tomoya ishida)
07:13 PM Misc #21804 (Closed): Getting setup-ruby Earlier
Done, see https://github.com/ruby/setup-ruby/pull/848#issuecomment-3840213501 for details. Eregon (Benoit Daloze)
04:26 PM Bug #21669: Thoroughly implement void value expression check
prism is done, it just needs the parse.y changes from https://github.com/ruby/ruby/pull/15498 that @nobu prepared Earlopain (Earlopain _)
04:26 PM Bug #21669 (Open): Thoroughly implement void value expression check
Earlopain (Earlopain _)
03:54 PM Bug #21669 (Closed): Thoroughly implement void value expression check
Applied in changeset commit:git|3237be163c313af0b6626b209e55bdb0b33c9f0f.
----------
[Bug #21669] Thoroughly implement void value expression check (prism)
Earlopain (Earlopain _)
03:49 PM Revision 3237be16 (git): [Bug #21669] Thoroughly implement void value expression check (prism)
Earlopain (Earlopain _)
03:09 PM Revision 6a4e53f9 (git): [ruby/prism] Directly use `ruby_version` from `ruby/version.h`
When I initially wrote this, I used `RUBY_VERSION` so it's easier to stub in tests
But turns out that doesn't work in CRuby tests
https://github.com/ruby/prism/commit/e30e2591de
Earlopain (Earlopain _)
03:09 PM Revision ebef4dba (git): [ruby/prism] RB_GC_GUARD() the VALUE for RSTRING_PTR() to ensure the char* does not move
* See https://github.com/ruby/prism/pull/3886#discussion_r2741579984.
https://github.com/ruby/prism/commit/98603ce8cc
Eregon (Benoit Daloze)
12:33 PM Revision 4bf1cb08 (git): [ruby/prism] Better guard against syntax invalid code in ripper lex translator
Closes https://github.com/ruby/prism/pull/3899
Also better compatibility by only dropping
the last token if it is actually EOF
https://github.com/ruby/prism/commit/128ab52be9
Earlopain (Earlopain _)
10:59 AM Revision cf22fe7f (git): Lock to install uutils-coreutils@0.5.0
hsbt (Hiroshi SHIBATA)
09:18 AM Revision f1201bcf (git): [ruby/rubygems] Update vendored resolv to 0.7.0
https://github.com/ruby/rubygems/commit/844a05543b hsbt (Hiroshi SHIBATA)
09:03 AM Revision 5ebccee5 (git): check zeros
raise when assert_linear_performance measures only zeros to check the following error:
```
1) Error:
TestRegexp#test_linear_performance:
Test::Unit::ProxyError: nil can't be coerced into Integer
/home/opc/ruby/src/master/test/ruby...
ko1 (Koichi Sasada)
08:42 AM Revision f045a820 (git): try to extend timeout
for the following failure:
```
1) Timeout:
TestResolvDNS#test_multiple_servers_with_timeout_and_truncated_tcp_fallback
```
ko1 (Koichi Sasada)
08:25 AM Revision 2a57e636 (git): try to extend timeout for repeated refine test
for the following failure:
```
1) Error:
TestRefinement#test_refining_module_repeatedly:
Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_in_out_err expired timeout (10 sec)
pid 56455 exit 0
| ok
|
...
ko1 (Koichi Sasada)
08:24 AM Revision 8cb3663a (git): Try to send SEGV to show C bt
for the following failure
```
1) Error:
TestClass#test_safe_multi_ractor_subclasses_list_mutation:
Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_separately expired timeout (10 sec)
pid 814469 killed by...
ko1 (Koichi Sasada)
08:17 AM Revision 07a0b68a (git): apply timeout scale in wait_exception
to avoid such case:
```
1) Failure:
TestProcess#test_wait_exception [/tmp/ruby/src/trunk-asserts-nopara/test/ruby/test_process.rb:1588]:
[ruby-dev:49176] [Bug #11340]: 3.696015712 seconds to interrupt Process.wait.
Expected 3.696015712...
ko1 (Koichi Sasada)
08:11 AM Revision 25422c0d (git): use SIGSEGV on ractor timeout
to show C level backtrace for the following failure:
```
1) Error:
TestObjSpaceRactor#test_undefine_finalizer:
Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_separately expired timeout (10 sec)
pid 861177 kille...
ko1 (Koichi Sasada)
08:07 AM Revision 2f8ab8e4 (git): filter TracePoint :line events by file
in target_thread test to avoid such failure:
```
1) Failure:
TestSetTraceFunc#test_enable_target_thread [/tmp/ruby/src/trunk/test/ruby/test_settracefunc.rb:2595]:
<[#<Thread:0x000078ca3d778460 run>,
#<Thread:0x000078ca3d778460 ru...
ko1 (Koichi Sasada)
07:56 AM Revision 3820b354 (git): Fix typo: wich → which in ractor.md
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com> copilot-swe-agent[bot]
07:50 AM Revision c0eca60e (git): [ruby/json] Remove codepaths under !RUBY_INTEGER_UNIFICATION
This was for pre Ruby 2.4 support which we dropped a while ago.
https://github.com/ruby/json/commit/b11ce01ca6
byroot (Jean Boussier)
07:38 AM Revision 81a19adb (git): Update default gems list at 112c86e2640f596a4b7eeca6ebbe8c [ci skip]
git[bot]
07:36 AM Revision 112c86e2 (git): [ruby/json] Release 2.18.1
https://github.com/ruby/json/commit/6ec6e7baff byroot (Jean Boussier)
07:24 AM Revision 41238ccd (git): [ruby/json] fbuffer_append_str: assume string
https://github.com/ruby/json/commit/fff25c9f4b byroot (Jean Boussier)
07:24 AM Revision 06633246 (git): [ruby/json] Ensure `Generator::State` is kept on the stack
Fix: https://github.com/ruby/json/issues/929
When calling `cState_partial_generate` from `mHash_to_json` or other
`to_json` funcs, `VState` becomes unreachable very quickly, hence the
compiler may optimize it out of the stack, and make ...
byroot (Jean Boussier)
07:13 AM Revision e1655dad (git): Comment out to disable ppc64le and s390x CI builds
They are cancelled after new permission.
https://github.com/IBM/actionspz/issues/75
Other Ubuntu jobs unexpectedly terminated with their cancellation.
hsbt (Hiroshi SHIBATA)
04:06 AM Revision cf060ad6 (git): [ruby/resolv] [DOC] undocument private module/methods
https://github.com/ruby/resolv/commit/73f6bb6edb nobu (Nobuyoshi Nakada)
03:50 AM Revision c00b5029 (git): [ruby/win32-registry] [DOC] document the namespace module
https://github.com/ruby/win32-registry/commit/3de1a0b727 nobu (Nobuyoshi Nakada)
03:44 AM Revision 184d4be8 (git): [ruby/timeout] [DOC] document the private instance method
https://github.com/ruby/timeout/commit/52e85fed75 nobu (Nobuyoshi Nakada)

02/02/2026

10:09 PM Revision 99d90125 (git): [DOC] Improve docs for Coverage.start
peterzhu2118 (Peter Zhu)
09:18 PM Revision c104ede5 (git): Make Ractor::Port embeddable
jhawthorn (John Hawthorn)
08:55 PM Bug #21859 (Closed): Inconsistent behaviors in Regexp lookbehind/lookahead with capture groups
First issue: `Regexp.linear_time?` is `false` for a positive lookahead with a capture, but `true` for a positive lookbehind:
```ruby
irb(main):002> Regexp.linear_time?(/(?=(a))/)
=> false
irb(main):003> Regexp.linear_time?(/(?<=(a))/...
trinistr (Alexander Bulancov)
07:36 PM Feature #21858: `Kernel#Hash` considers `to_h` too
+1
Actually I think this is just an oversight. #to_h was added to Struct, Hash, NilClass in Ruby 2.0, and to Array, Enumerable in Ruby 2.1; previously there was just #to_hash. And `Hash()` remained unchanged instead of adapting to the n...
Dan0042 (Daniel DeLorme)
11:59 AM Feature #21858: `Kernel#Hash` considers `to_h` too
https://github.com/ruby/ruby/pull/16036 ccmywish (Aoran Zeng)
11:51 AM Feature #21858 (Open): `Kernel#Hash` considers `to_h` too
1. `Kernel#Integer` uses `to_int` first and `to_i` second
2. `Kernel#Array` uses `to_ary` first and `to_a` second
3. `Kernel#Hash` only uses `to_hash`
I don't quite understand why there is a need for differential treatment here.
...
ccmywish (Aoran Zeng)
06:26 PM Revision 03090e2e (git): [ruby/prism] Change `bin/prism errors` to take source and print errors
This is more akin to how all the other ones work.
Instead I added most of this to the errors test like focusing
a few specifically and creating new expectations.
https://github.com/ruby/prism/commit/b21922b0a1
Earlopain (Earlopain _)
06:26 PM Revision 30d2e0cd (git): [ruby/prism] Add escaping for doxygen token comment
Many characters have special meaning and break formatting
https://github.com/ruby/prism/commit/0b9d516c26
Earlopain (Earlopain _)
05:06 PM Revision 99794321 (git): [ruby/openssl] Update the steps to generate the base64-based examples.
* More precisely
* Updating the rsa-1.pem file path.
https://github.com/ruby/openssl/commit/d86270d1df
Jun Aruga
05:06 PM Revision e690a8f3 (git): [ruby/openssl] Fix test_pkcs12.rb in FIPS.
* OpenSSL::PKCS12.create calling the PKCS12_create() has the argument mac_iter
which uses a MAC key using PKCS12KDF which is not FIPS-approved.
* OpenSSL::PKCS12.new with base64-encoded example calling PKCS12_parse()
verifies the MAC...
Jun Aruga
04:17 PM Revision a2ca4aa9 (git): [DOC] Update incorrect class documentation
`RCLASS_PRIME_CLASSEXT_PRIME_WRITABLE` doesn't exist, it's
`RCLASS_PRIME_CLASSEXT_WRITABLE`.
byroot (Jean Boussier)
02:32 PM Revision 3cbdedb6 (git): Fix `VCS::GIT#export_changelog`
+ gmake RELNAME=master@0f1eea09490 AUTOCONF=autoconf dist
/home/chkbuild/.rbenv/versions/3.4.8/bin/ruby --disable=gems ./tool/make-snapshot \
-srcdir=. -packages=gzip,zip,all \
-unicode-version=17.0.0 \
tmp master@0f1eea...
etienne (Étienne Barrié)
01:04 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
I spent some time trying to fix this, I think it's possible but is a pretty major refactoring.
In 3.4:
Classes have a `subclasses` doubly-linked list, which is necessary to be able to iterate subclasses efficiently.
As to be able ...
byroot (Jean Boussier)
11:12 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
So the regression is indeed a consequence of the Box introduction.
When sweeping a Class, we need to remove the backreference from `rb_classext_struct.box_super_subclasses` and `rb_classext_struct.box_module_subclasses`, and for each ...
byroot (Jean Boussier)
10:23 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
I reduced the benchmark to:
```ruby
# frozen_string_literal: true
require "bundler/inline"
gemfile do
source 'https://rubygems.org'
gem "benchmark-ips"
end
Benchmark.ips do |x|
x.report("singleton") do
Object....
byroot (Jean Boussier)
10:16 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
I'm able to repro on my machine, even though the different isn't quite as bad (more like 30% slower).
Profile of ruby 3.4.7: https://share.firefox.dev/4rw3mv0
Profile of ruby 4.0.0: https://share.firefox.dev/4rtvrmt
The striking d...
byroot (Jean Boussier)
10:39 AM Bug #21855: Bundle `win32-registry` or implement it without `fiddle`
I recommended to make `win32-registry` a bundled gem in #20775, but maybe it was forgotten to that time. I still think this would be the best solution. larskanis (Lars Kanis)
05:00 AM Revision 9715b29a (git): Update array.rb
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Steven Webb
05:00 AM Revision 9368ec5e (git): Rewrite Array#find in ruby
Inspired by https://bugs.ruby-lang.org/issues/20182 and https://github.com/ruby/ruby/pull/9533.
This PR provides a performance boost to Array#find when run using JIT
compilation. This is achieved by implementing Array#find in Ruby, whic...
Steven Webb
04:55 AM Revision 70cc932d (git): [ruby/rubygems] Fix nil `@revision` in `git_proxy.rb`
https://github.com/ruby/rubygems/commit/69d955eb67 Ian Ker-Seymer
03:12 AM Revision 34f848b3 (git): [DOC] Fix hash style in Hash#dig
peterzhu2118 (Peter Zhu)
02:56 AM Revision 3ab35e5e (git): [DOC] Doc for Module.new
burdettelamar (Burdette Lamar)
01:04 AM Revision 5cf40870 (git): [DOC] Fix typos in IO::Buffer's docs
Alexander Bulancov

02/01/2026

11:56 PM Feature #21857 (Open): Introduce to_proc pattern
When object has some logics, we can use `&object` syntax with Enumerable or Array, etc.
```ruby
users.any?(&:admin?)
```
There are some times when I want to write pattern matching similar to the syntax, but currently we either ha...
sanfrecce-osaka (Masatoshi Moritsuka)
10:43 PM Revision 198b52f5 (git): [ruby/rubygems] Bump the rb-sys group across 2 directories with 1 update
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).
Bumps the rb-sys group with 1 update in the /test/rubygems/t...
dependabot[bot]
08:57 PM Revision 4e196af1 (git): Use ruby_sized_xfree
byroot (Jean Boussier)
08:10 PM Bug #21856 (Open): Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
Loofah sanitization is noticeably slower
```
Ruby: 3.4.8
Loofah: 2.25.0
Nokogiri: 1.19.0
Iterations: 100000
user system total real
Loofah.fragment + scrub!(:prune...
ahorek (Pavel Rosický)
03:27 PM Revision a93604b5 (git): [DOC] Fix dead links in options.md
peterzhu2118 (Peter Zhu)
02:57 PM Revision 911c1ca2 (git): Win32: keep --with-opt-dir as-is unless it is a real path
Allow to expand environment variables in Makefile.
E.g.:
```batch
set VCPKG_INSTALLED=%HOME%\vcpkg\vcpkg_installed
win32\configure.bat "--with-opt-dir=$(VCPKG_INSTALLED)/$(MACHINE)-windows"
```
nobu (Nobuyoshi Nakada)
02:57 PM Revision 2ed81743 (git): Win32: strip double quotes from the batch file name
nobu (Nobuyoshi Nakada)
02:32 PM Revision 24bdf6a4 (git): transcode.c: Use ruby_sized_xfree
byroot (Jean Boussier)
02:32 PM Revision 32f25969 (git): thread_pthread.c: Use ruby_sized_xfree
byroot (Jean Boussier)
02:32 PM Revision 1f58302e (git): internal/gc.h: Remove inlined allocation decorator functions
byroot (Jean Boussier)
02:32 PM Revision 0a6e365f (git): eval_jump.c: Use ruby_sized_xfree
byroot (Jean Boussier)
02:32 PM Revision 62da4806 (git): vm_eval.c,vm_trace.c: Use ruby_sized_xfree
byroot (Jean Boussier)
11:17 AM Revision 1276c233 (git): thread.c: use ruby_sized_xfree for fdset and interupt tasks
byroot (Jean Boussier)
11:17 AM Revision 4d5cd811 (git): ractor_sync.c: use ruby_sized_xfree
byroot (Jean Boussier)
11:17 AM Revision ecb28ce3 (git): prism_compile.c: use ruby_sized_xfree
byroot (Jean Boussier)
11:17 AM Revision 9fa0cdc9 (git): vm_method.c: use sized free for css and method_definition
byroot (Jean Boussier)
11:17 AM Revision 44b5971e (git): string.c: use ruby_sized_xfree in a few more cases
byroot (Jean Boussier)
11:17 AM Revision d328412d (git): Use ruby_sized_xfree to free embedded Hash and Set
byroot (Jean Boussier)
11:17 AM Revision dc6cdb17 (git): proc.c: use ruby_sized_xfree to free rb_binding_t
byroot (Jean Boussier)
11:17 AM Revision b39c1af4 (git): cont.c: use ruby_sized_xfree to free the stack
Also use mimalloc rather than raw malloc for `rb_jit_cont`. byroot (Jean Boussier)
11:17 AM Revision 3fcd36ff (git): memory_view.c: Use ruby_sized_xfree
byroot (Jean Boussier)
08:37 AM Revision 3b2ad4b7 (git): Check the suffix argument always if given
It also must be ASCII-compatible and must not contain null byte, as
well as the path argument.
nobu (Nobuyoshi Nakada)
07:20 AM Revision d90f78b5 (git): Compare pointers with the end of path
nobu (Nobuyoshi Nakada)

01/31/2026

10:52 PM Revision 14ccd151 (git): [DOC] Fix broken links with slash character
peterzhu2118 (Peter Zhu)
10:48 PM Revision 0796c9a3 (git): [DOC] Remove unneeded link (#16014)
burdettelamar (Burdette Lamar)
10:45 PM Revision 75d9c4c6 (git): [DOC] Fix link in IO
burdettelamar (Burdette Lamar)
10:45 PM Revision 64f35ada (git): [DOC] Fix link in Hash
burdettelamar (Burdette Lamar)
10:44 PM Revision 6019cc9d (git): [DOC] Fix link in File
burdettelamar (Burdette Lamar)
10:28 PM Bug #21854: ruby-prof breaks on 4.0.1
Ok - I will remove this functionality from ruby-prof then. cfis (Charlie Savage)
06:59 PM Revision 66fdb15a (git): thread_sync.c: Fix leak in Queue and SizedQueue
This was introduced in 8ce61f90ba4aea3d52e92e258c3803b8b885726e byroot (Jean Boussier)
04:54 PM Revision 4c1120b5 (git): ractor.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
04:54 PM Revision 4292aed1 (git): string.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
04:54 PM Revision 250fdd13 (git): iseq.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
04:54 PM Revision 50e987bd (git): imemo.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
04:54 PM Revision 9cc71cb9 (git): Use static memory instead of mimalloc for the VM, main ractor, main thread.
Also allocate fibers with ruby_xmalloc. byroot (Jean Boussier)
04:54 PM Revision 0b4b30af (git): cont.c: Replace ruby_xfree by ruby_sized_xfree
Notable exception for `fiber_free` because fibers are allocated
with `ruby_mimmalloc`.
byroot (Jean Boussier)
02:02 PM Revision 4ea3d8c7 (git): [DOC] Example usage for --zjit-dump-hir (#16021)
I found learning about the HIR format difficult because I couldn't get ruby/miniruby to output it using the --zjit-dump-hir option. I eventually realised it won't be generated unless the zjit-call-threshold is reached (default 30). Steven Webb
09:41 AM Revision 7ef8c470 (git): Enable check for core data types by `RUBY_DEBUG`
nobu (Nobuyoshi Nakada)
09:41 AM Revision eae7300a (git): Typed data check for core data types
nobu (Nobuyoshi Nakada)
09:35 AM Revision bd6fa7f5 (git): ruby_xfree: reject memory allocated by ruby_mimalloc
byroot (Jean Boussier)
09:35 AM Revision db52e985 (git): compile.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
09:35 AM Revision 54df6cdd (git): concurrent_set.c: Replace ruby_xfree by ruby_sized_xfree
byroot (Jean Boussier)
09:35 AM Revision a7d4a9df (git): class.c: Replace ruby_xfree by ruby_sized_xfree when applicable
byroot (Jean Boussier)
09:35 AM Revision bcbc6ed5 (git): bignum.c: Replace ruby_xfree by ruby_sized_xfree when applicable
byroot (Jean Boussier)
09:35 AM Revision 0584f9fb (git): gc.c: Replace ruby_xfree by ruby_sized_xfree when applicable
byroot (Jean Boussier)
09:35 AM Revision 050c0014 (git): variable.c: Replace ruby_xfree by ruby_sized_xfree when applicable
byroot (Jean Boussier)
08:51 AM Revision 801cdfef (git): Fix wrong declaration of `rb_optimized_call`
`recv` is used as the input argument to `GetProcPtr`, which is a
`VALUE`.
Fix up ruby/ruby#6691.
nobu (Nobuyoshi Nakada)
06:59 AM Revision 24285072 (git): Update bundled gems list as of 2026-01-31
git[bot]
04:33 AM Revision 957887b3 (git): [DOC] Fix typo: regsiter to register (#16020)
cui
03:42 AM Revision e8d8f50f (git): Clear age and unprotected bits for page at once
This aims to speed up sweeping by clearing all age and wb_unprotected
bits for unmarked objects. This should be faster because we can clear
up to a whole plane of objects (64 slots) at once.
jhawthorn (John Hawthorn)
03:42 AM Revision 6327f593 (git): Use bit plane for age bits
Previously we used two adjacent bits in the same word to store the
object's age. This changes that to instead store the age in the same bit
position across two adjacent words. This makes age use the exact same
bit positions as the other ...
jhawthorn (John Hawthorn)

01/30/2026

10:10 PM Revision 737809bf (git): [DOC] Fix link in ARGF
peterzhu2118 (Peter Zhu)
06:46 PM Revision d7553015 (git): [ruby/prism] Handle String-like objects for Ripper.sexp
* RSpec relies on this in
https://github.com/rspec/rspec/blob/rspec-support-v3.13.6/rspec-support/lib/rspec/support/source.rb#L57
which is given an RSpec::Support::EncodedString.
* CI failure caused by this on truffleruby:
https://...
Eregon (Benoit Daloze)
05:29 PM Revision 1298f9ac (git): ZJIT: Support CFunc inlining in InvokeSuper (#16004)
Also generally make the CFunc process look more like `optimize_c_calls`. tekknolagi (Maxwell Bernstein)
02:54 PM Feature #21852: New improved allocator function interface
It only does it for classes defined in C, and if they do all state copying in `copy_allocator`.
I think this would be valuable to have for any class, i.e. also for classes defined in Ruby and not in C.
Eregon (Benoit Daloze)
01:41 PM Feature #21852: New improved allocator function interface
> Inventing a new Ruby-level protocol for copying objects and for creation without uninitialized state would be great.
Yes, this is somewhat what this new allocator API does. It also solves the problem that the Ractor API must be able...
byroot (Jean Boussier)
01:31 PM Feature #21852: New improved allocator function interface
byroot (Jean Boussier) wrote in #note-2:
> Indeed. Technically it wouldn't be required, but I think it's more reliable to do it there than in `initialize_copy` as the later could be redefined and cause corruption.
That could cause le...
Eregon (Benoit Daloze)
01:13 PM Feature #21852: New improved allocator function interface
> Are initialize_copy/initialize_dup/initialize_clone still called when using a copy_allocator?
Yes, it is unchanged.
> ...
Indeed. Technically it wouldn't be required, but I think it's more reliable to do it there than in `initial...
byroot (Jean Boussier)
12:37 PM Feature #21852: New improved allocator function interface
Are `initialize_copy/initialize_dup/initialize_clone` still called when using a `copy_allocator`?
In the `backtrace_alloc` example you seem to already do some copying in that function, which then makes it unclear where the copying shoul...
Eregon (Benoit Daloze)
02:24 PM Revision 9be01bc7 (git): gc.c: also verify sized_xrealloc old size
byroot (Jean Boussier)
01:48 PM Revision 3c100019 (git): st.c: Use ruby_sized_xfree
Followup: https://github.com/ruby/ruby/pull/15989
This feeds the GC with useful allocation metrics, but also ensure
we're correctly keeping track of our allocation sizes which is
beneficial for safety.
It also allows to use C23's `free...
byroot (Jean Boussier)
12:23 PM Feature #21853: Make Embedded TypedData a public API
> How do embedded typed datas handle this, do they raise an exception in such a case?
Unfortunately not. It end up with data corruption.
> ...
Makes sense.
byroot (Jean Boussier)
12:13 PM Feature #21853: Make Embedded TypedData a public API
Good point! How do embedded typed datas handle this, do they raise an exception in such a case?
Seems tricky given the `DATA_PTR(obj)` API returning a pointer.
I'd actually love if we had a separate API for changing the data pointer as ...
Eregon (Benoit Daloze)
12:08 PM Revision dddb6511 (git): Compare the canonical type name [ci skip]
Members of node types are defined using the canonical types, instead
of the typedef names.
nobu (Nobuyoshi Nakada)
11:59 AM Bug #21855 (Open): Bundle `win32-registry` or implement it without `fiddle`
`win32-registry` (a default gem), is currently implemented via `fiddle` (a bundled gem). This makes it impossible to use under bundler without adding `fiddle` to the gemfile.
In the past it has lead to issues like https://bugs.ruby-la...
Earlopain (Earlopain _)
07:16 AM Bug #21854: ruby-prof breaks on 4.0.1
> Do you have a recommendation for what ruby-prof should do instead? ~~ Maybe it is simple as listen only for NEWOBJ?~~ This feature was added to ruby-prof 7 years ago, so I would prefer not to all of a sudden yank it out.
Did it ever...
jhawthorn (John Hawthorn)
02:28 AM Bug #21854: ruby-prof breaks on 4.0.1
Ok, looking at the exposed events, there does not seem to be one that lets you know when an object is created. Can an "official" one be added?
If ruby-prof tracked the object ids for each RUBY_INTERNAL_EVENT_NEWOBJ call and then asked ...
cfis (Charlie Savage)
01:02 AM Bug #21854: ruby-prof breaks on 4.0.1
Thanks for the update @jhawthorn and link.
Do you have a recommendation for what ruby-prof should do instead? ~~ Maybe it is simple as listen only for `NEWOBJ`?~~ This feature was added to ruby-prof 7 years ago, so I would prefer not t...
cfis (Charlie Savage)
05:08 AM Revision 5911a523 (git): [ruby/rubygems] Handle symlink TMPDIR with macOS
https://github.com/ruby/rubygems/commit/cf08f1ec4c hsbt (Hiroshi SHIBATA)
05:08 AM Revision 9bf8aaa2 (git): [ruby/rubygems] Revert "[ruby/rubygems] Revert "Merge pull request #8989 from nobu/test-tmpdir""
This reverts commit https://github.com/ruby/rubygems/commit/6e00da098aba.
https://github.com/ruby/rubygems/commit/c6abdae812
hsbt (Hiroshi SHIBATA)
02:32 AM Revision edc132c3 (git): Bump actions/cache in /.github/actions/setup/directories
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
02:31 AM Revision 25d91f46 (git): Bump actions/cache from 5.0.2 to 5.0.3
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co...
dependabot[bot]
01:06 AM Revision 0d66488f (git): Remove dead gc_stat_sym_weak_references_count
peterzhu2118 (Peter Zhu)
12:27 AM Revision 604090cb (git): Update default gems list at 5068fe85e6f7e662cd6e15f5ed7b80 [ci skip]
git[bot]
12:26 AM Revision 5068fe85 (git): [ruby/resolv] v0.7.1
https://github.com/ruby/resolv/commit/8fc05c1cb6 hsbt (Hiroshi SHIBATA)

01/29/2026

11:34 PM Revision ef583c93 (git): Fix NEWOBJ hook calling `rb_obj_memsize_of` on TypedData object (#16002)
Fix NEWOBJ hook calling cruby functions on objects not filled yet.
Objects like `TypedData` need to be zeroed out when calling `rb_obj_memsize_of`.
Other object types need `fields_obj` to be 0 when they don't have one, etc.
Fixes [Bug ...
Luke Gruber
11:27 PM Bug #21851: Performance difference between / operator and fdiv
No, this isn't causing me any issues, I just would prefer fdiv for my own codebase for readability. But with that large of a performance difference I think I would stick with "/". mbrown1intel (Michael Brown)
11:24 PM Revision 5fec5456 (git): ZJIT: Optimize `super` calls to C function targets (#15993)
This PR is an extension of the work in #15816. There, we optimized `super` calls where the target method was an ISeq. The code bailed on any other `super` target method type.
The discussion for that PR included the ZJIT stats from runni...
Kevin Menard
10:32 PM Revision 91619f02 (git): gc.c: Verify provided size in `rb_gc_impl_free`
For now the provided size is just for GC statistics, but in the future
we may want to forward it to C23's `free_sized` and passing an incorrect
size to it is undefined behavior.
byroot (Jean Boussier)
10:17 PM Revision 457bb11a (git): [ruby/mmtk] Add weak_references_count to GC.stat
https://github.com/ruby/mmtk/commit/86fa2fd4af peterzhu2118 (Peter Zhu)
10:10 PM Bug #21854 (Third Party's Issue): ruby-prof breaks on 4.0.1
I would argue that this is a bug in ruby-prof. `RUBY_INTERNAL_EVENT_NEWOBJ` is an internal event, so the semantics of exactly when it fires and the state the object is in are not documented and may change. In Ruby 4.0 (specifically http... jhawthorn (John Hawthorn)
08:15 AM Bug #21854 (Third Party's Issue): ruby-prof breaks on 4.0.1
ruby-prof breaks on 4.0.x with segmentation faults. See failing github pipelines:
https://github.com/ruby-prof/ruby-prof/actions/runs/21465420365/job/61826466398
(note the failures for ruby 3.x are some test that fail, not segmenta...
cfis (Charlie Savage)
08:43 PM Revision d9cc3c27 (git): ZJIT: Remove PadPatchPoint instructions when lowering to LIR (#15974)
Basic blocks in LIR should only ever end in control flow instructions such as jump or return. PadPatchPoint is not control flow, so we should not emit it at the end of blocks when lowering. tenderlovemaking (Aaron Patterson)
08:30 PM Revision cfa3a4a7 (git): ZJIT: Make printout and identifier name consistent for `Guard{AnyBit,NoBits}Set`
alanwu (Alan Wu)
07:24 PM Revision acc41457 (git): ZJIT: Support inlining send-with-block (#15998)
Autosplat only happens due to `yield` or `.call`, neither of which is permitted in our trivial inliner. tekknolagi (Maxwell Bernstein)
07:12 PM Revision b51a1126 (git): IO::Buffer.map seems not shareable across processes on OpenBSD
* See https://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20260129T163005Z.fail.html.gz Eregon (Benoit Daloze)
06:02 PM Revision 33d82847 (git): ZJIT: Support polymorphic send without block (#15949)
Break out the different cases into different blocks in the bytecode to HIR parser. Use a `RefineType` to plumb the case's type through so the type specialization can see it. Then join the logic back to the rest of the current block after... tekknolagi (Maxwell Bernstein)
06:00 PM Revision fbff0c93 (git): ZJIT: Handle `nil` case for `getblockparamproxy` (#15986)
Resolves https://github.com/Shopify/ruby/issues/772
Adds profiling for the `getblockparamproxy` YARV instruction and handles the `nil` block case by pushing `nil` instead of the block proxy object, improves `ratio_in_zjit` a tiny bit (0...
Jeff Zhang
02:26 PM Bug #21840 (Open): Locking a mutex can lead to starvation
I wasn't aware of those old issues. I'll take a look, thanks!
I reverted the commit because of issues with a `Monitor` test in CI. I thought it was related to this change, but the test kept failing even after the revert. It turns out it...
luke-gru (Luke Gruber)
01:33 PM Bug #21840: Locking a mutex can lead to starvation
Really cool! I wonder if this will end up solving https://bugs.ruby-lang.org/issues/19717 as well / https://github.com/ruby/ruby/pull/8331 is an old PR for it. ivoanjo (Ivo Anjo)
11:01 AM Revision 5299276e (git): win32: Prevent broken substitution string when variable is undefined
Avoids an issue where `%undefined:A=B%` expands to a literal `A=B`
because the parser fails to find the variable before the colon, then
parses the following percent as the next variable expansion. Added a
definition check to ensure safe...
nobu (Nobuyoshi Nakada)
11:01 AM Revision b5ecfd1e (git): Win32: Refactor target detection
Previously, Visual C++ had only one toolchain for the x86 family, and
the only option was to select the target processor level.
In recent versions, there are multiple toolchains with the same
command name for each host/target platform c...
nobu (Nobuyoshi Nakada)
11:01 AM Revision 6cc20960 (git): Win32: Make `optdirs` and `pathlist` macros overridable
Also consider paths with space at splitting the `--with-opt-dir`
argument.
nobu (Nobuyoshi Nakada)
11:01 AM Revision 1cc2e68f (git): Win32: Refactor configure
* Enable double-quoted options with an `=` sign.
* Replace `$` with `$$` in the batch file without CPP.
* Support for `--with-destdir`.
* Allow Makefile macro definition. (Close GH-15935)
nobu (Nobuyoshi Nakada)
11:01 AM Revision 6d07151e (git): Win32: Mark batch files in gitattributes
nobu (Nobuyoshi Nakada)
10:13 AM Revision d3d1a974 (git): Update to ruby/spec@8c98a84
Eregon (Benoit Daloze)
08:08 AM Revision e48ed4b9 (git): Do not open to write the fixture files
nobu (Nobuyoshi Nakada)
08:08 AM Revision d3ea389d (git): Remove too platform sensitive assertions
nobu (Nobuyoshi Nakada)
08:08 AM Revision 62493b57 (git): Fix assertions not to be affected by the default encoding
nobu (Nobuyoshi Nakada)
07:36 AM Revision cd26647f (git): Remove dangling taintedness macros
nobu (Nobuyoshi Nakada)
07:04 AM Revision ba8b0b3a (git): Update bundled gems list as of 2026-01-29
git[bot]
06:09 AM Revision 6f16e87f (git): [ruby/open-uri] Improve URI.open documentation with usage example
This improves the `URI.open` method documentation by adding a code example requiring `open-uri` as a basic usage.
When reading the current documentation first, I didn't realize that `open-uri` was required to call the method.
I believe ...
Masafumi Koba
05:02 AM Revision 40e3e43b (git): [ruby/net-http] [DOC] Fix links in requests.rb
https://github.com/ruby/net-http/commit/a232aea2fc burdettelamar (Burdette Lamar)
02:35 AM Revision fa09afb1 (git): [ruby/prism] Support `version: "nearest"`.
This clamps to supported versions based on the current Ruby version.
https://github.com/ruby/prism/commit/eb63748e8b
kddnewton (Kevin Newton)
02:05 AM Revision 0c30897d (git): [ruby/rubygems] Remove outdated TODO in RemoteFetcher
https://github.com/ruby/rubygems/commit/cc81b8b228 afurm (Andrii Furmanets)
 

Also available in: Atom