Project

General

Profile

Activity

From 02/19/2026 to 02/25/2026

Today

05:08 PM Revision b52cb82d (git): ZJIT: Format negative offsets as small negative hex values (#16248)
Before:
Optimized HIR:
fn block in <main>@benchmarks/setivar.rb:40:
bb1():
EntryPoint interpreter
v1:BasicObject = LoadSelf
Jump bb3(v1)
bb2():
EntryPoint JIT(0)
v4:BasicObject = LoadArg :se...
tekknolagi (Maxwell Bernstein)
01:38 PM Revision 02713197 (git): [ruby/prism] Generate RBI from RBS
https://github.com/ruby/prism/commit/2c88ed893f kddnewton (Kevin Newton)
01:38 PM Revision bc1d75ad (git): [ruby/prism] Don't document rbs inline magic comment
https://github.com/ruby/prism/commit/e371985c91 Earlopain (Earlopain _)
01:38 PM Revision fb39d589 (git): [ruby/prism] rbs-inline
https://github.com/ruby/prism/commit/1fdd4c5a49 kddnewton (Kevin Newton)
10:20 AM Misc #21924: Register a Maven namespace for JVM-related libraries
Username and email should both be headius@headius.com headius (Charles Nutter)
08:23 AM Misc #21924: Register a Maven namespace for JVM-related libraries
@headius Thanks. I've created `org.ruby-lang` namespace. But I can't add your account to that namespace manually. I need to contact sonatype support.
Can you share your username and mail address of sonatype?
hsbt (Hiroshi SHIBATA)
07:47 AM Misc #21924: Register a Maven namespace for JVM-related libraries
@hsbt I have deleted the org.ruby-lang namespace from my account. Try again? headius (Charles Nutter)
07:38 AM Misc #21924: Register a Maven namespace for JVM-related libraries
>Someone who can update the DNS entry to include the key needed by Sonatype for verification.
I can prepare that configuration.
I would like to know how to access that namespace with my account. I can't register `org.ruby-lang` by ...
hsbt (Hiroshi SHIBATA)
12:59 AM Misc #21924 (Assigned): Register a Maven namespace for JVM-related libraries
hsbt (Hiroshi SHIBATA)
08:23 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
Using two or more overlapping Unicode properties may not be very frequent, but in most cases isn't a mistake. If a user writes `/[\p{Word}\p{S}]/`, that expression should just match all word characters and all symbol characters, because ... duerst (Martin Dürst)
07:24 AM Revision 9aa3dc6f (git): [ruby/json] Remove unused load_uint8x16_4 function.
https://github.com/ruby/json/commit/93bc1b3838 samyron (Scott Myron)
12:21 AM Revision da1daba0 (git): ZJIT: Refine effects for CheckInterrupts to InterruptFlag|Control (#16240)
CheckInterrupts only reads ec->interrupt_flag and conditionally
side-exits — it doesn't touch PatchPoint invariants or the allocator.
Add an InterruptFlag leaf under Memory in the abstract heap DAG and
narrow CheckInterrupts from Any to ...
rwstauner (Randy Stauner)

02/24/2026

11:53 PM Revision c5d85d5a (git): Improve error message failing to copy proc
Previously, when passing an unshareable proc to a Ractor we would get
the message:
'Ractor.new': allocator undefined for Proc (TypeError)
With this change we get:
'Ractor.new': can not copy unshareable object #<Proc:0x00007f1b...
jhawthorn (John Hawthorn)
10:43 PM Revision f1c2fafa (git): ZJIT: Ratchet down Guard* effects (#16236)
Guards don't write to (e.g. PatchPoint) memory, just change if we
side-exit into the interpreter or not, so lower their effects.
tekknolagi (Maxwell Bernstein)
10:36 PM Revision 7da57563 (git): ZJIT: Refine effects for IsBitNotEqual and FixnumBitCheck to Empty (#16237)
Both instructions are pure computations with no side effects:
IsBitNotEqual is a cmp+csel (identical to IsBitEqual, already Empty),
and FixnumBitCheck is a test+csel on a tagged Fixnum bit. Neither
reads memory, writes anything, allocate...
rwstauner (Randy Stauner)
10:35 PM Revision 7e028b86 (git): ZJIT: Pull out GetEP from IsBlockParamModified (#16234)
We can hopefully de-duplicate this GetEP soon. tekknolagi (Maxwell Bernstein)
10:01 PM Revision 56bdb93b (git): Remove man page date check
This doesn't work because actions/checkout uses a fetch depth of 1, so
every CI run acts as though man pages were made in the most recent
commit.
Additionally the VCS code uses committed date, so this check will fail
if any PR is made t...
jhawthorn (John Hawthorn)
08:54 PM Feature #4477: Kernel:exec and backtick (`) don't work for certain system commands
Just found out about this behavior today when this code
```
out = `command -v ruby`
```
Works on my mac but not on linux (github actions) with an error `Errno::ENOENT: No such file or directory - command`. That is because on my m...
schneems (Richard Schneeman)
07:41 PM Misc #21924 (Assigned): Register a Maven namespace for JVM-related libraries
For the Prism project, I am working toward having published artifacts for JVM users (like JRuby or TruffleRuby).
Publishing these packages will make it much easier for us to support Prism in JRuby, both as our interal Ruby parser and...
headius (Charles Nutter)
05:39 PM Revision 4b4da988 (git): Avoid and simplify rb_alloc_tmp_buffer_with_count
There's no reason to ever call this and the "count" value is ignored.
Because this is part of the public API I left it as a stub, but it could
likely be removed.
jhawthorn (John Hawthorn)
05:39 PM Revision 7a36808d (git): Use rb_alloc_tmp_buffer in new_from_an_RString
jhawthorn (John Hawthorn)
05:39 PM Revision c1f70394 (git): Remove rb_imemo_tmpbuf_set_ptr
jhawthorn (John Hawthorn)
01:53 PM Revision 3aa89271 (git): [ruby/prism] Introduce xfree_sized and xrealloc_sized
This will allow prism to pass buffer sizes to the Ruby GC.
It also helps avoid buffer overflow as it confirms the size was
correctly tracked all the way until the buffer is freed.
https://github.com/ruby/prism/commit/a5c3ee3e4c
byroot (Jean Boussier)
01:46 PM Revision ebd57856 (git): [ruby/prism] Fix some locations in the the config
https://github.com/ruby/prism/commit/64e29baac6 Earlopain (Earlopain _)
07:08 AM Revision 682f36ab (git): Update bundled gems list as of 2026-02-24
git[bot]
05:52 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
A quick benchmark shows we are within error bars for matching performance:
```ruby
#!/usr/bin/env ruby
require 'benchmark'
NON_REPEAT = Regexp.new("[" + ("a-z" * 1) + "]")
YES_REPEAT = Regexp.new("[" + ("a-z" * 100000) + "]")
...
jneen (Jeanine Adkisson)
05:41 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
Having looked through the onigmo code a bit now, I can think of a few ways forward.
**a) Simply don't warn on overlapping ctype classes.**
I believe this would only involve removing the check on line 1860 from regparse.c. This woul...
jneen (Jeanine Adkisson)
05:27 AM Revision 70c62514 (git): Use rev-parse HEAD instead of log --format=%H -1
naruse (Yui NARUSE)
05:07 AM Bug #21921: Hash inconsistent ==, >=, <= behavior
> > > An entry `h0[k0]` in one hash is equal to an entry `h1[k1]` in another hash if and only if the two keys are equal (`k0 == k1`) and their two values are equal (`h0[k0] == h1[h1]`).
> ...
Yes, I read the spec as saying "Given two ha...
maxfelsher (Max Felsher)
03:12 AM Revision fc16000e (git): CI: Highlight diff of depend files [ci skip]
nobu (Nobuyoshi Nakada)
03:06 AM Revision 997ac19b (git): ZJIT: Remove redundant PatchPoints within basic blocks (#16231)
Add a new optimization pass that deduplicates PatchPoint instructions
asserting the same invariant within a basic block when no intervening
instruction could invalidate it.
This is common in practice — e.g., `1 + 2 + 3` produces two ide...
rwstauner (Randy Stauner)
03:05 AM Feature #21835 (Closed): Unbundle bunled gems like net-ftp
Removed them at https://github.com/ruby/ruby/pull/16169 hsbt (Hiroshi SHIBATA)
03:01 AM Bug #20319 (Closed): Singleton class is being frozen lazily in some cases
Applied in changeset commit:git|8e9eb698b6638e0f3e76748c756f699e79d2e97d.
----------
Freeze singleton class chain
The following code:
```ruby
x = Object.new
sc1 = x.singleton_class
sc2 = sc1.singleton_class
x.freeze
```
Would freeze ...
jeremyevans (Jeremy Evans)
02:52 AM Bug #20319: Singleton class is being frozen lazily in some cases
I accept https://github.com/ruby/ruby/pull/10245
Matz.
matz (Yukihiro Matsumoto)
03:01 AM Revision 8e9eb698 (git): Freeze singleton class chain
The following code:
```ruby
x = Object.new
sc1 = x.singleton_class
sc2 = sc1.singleton_class
x.freeze
```
Would freeze sc1 but not sc2, even though sc1 would be frozen.
Handle this by walking the class pointer chain for the object.
If...
jeremyevans (Jeremy Evans)
02:54 AM Misc #21922: Permissions for committers for default/bundled/unbundled gems repositories
First of all, the title is wrong. Ruby committers can still commit to the default gem repository.
>(FWIW I saw there a default-gems-contributor team with 3 people, which explains why they can merge PRs to some repositories that ruby c...
hsbt (Hiroshi SHIBATA)
02:12 AM Revision b479c41d (git): Use .bundle gems dependencies directly
hsbt (Hiroshi SHIBATA)
12:10 AM Misc #21881: Split the root box into the (newer) root box and the master of copied user boxes
After a short coding, I changed my idea about the naming. The original copy of boxes will be `master` (master-copy).
I thought the `source` box should be confusing because the word "source" is used everywhere both in CRuby and Ruby code.
tagomoris (Satoshi Tagomori)
12:06 AM Misc #21881 (Assigned): Split the root box into the (newer) root box and the master of copied user boxes
tagomoris (Satoshi Tagomori)
12:06 AM Misc #21881: Split the root box into the (newer) root box and the master of copied user boxes
The root box is mandatory because it runs the code of Ruby runtime itself. For example, Array#fetch_values written in Ruby (array.rb). tagomoris (Satoshi Tagomori)

02/23/2026

11:58 PM Revision f3ee4bd0 (git): ZJIT: Remove redundant snapshot for opt_getconstant_path (#16229)
Nozomi Hijikata
10:03 PM Revision 070b7d40 (git): ZJIT: constant fold bitwise AND (&) operations (#16226)
Following up https://github.com/ruby/ruby/pull/16225, I'm implementing fold on AND (&) operations.
- Ruby turns this operation into a C `&` in https://github.com/tomascco/ruby/blob/880eb3c76f09c44c85389ac5efbc555afafa3e6f/numeric.c#L519...
Tomás Coêlho
08:31 PM Revision 2d8e24c8 (git): ZJIT: Guard receiver type in inline Array method handlers (#16141)
inline_array_push, inline_array_pop, and inline_array_aref did not
guard/coerce the receiver to Array type before emitting Array-specific
HIR instructions (ArrayPush, ArrayPop, ArrayLength, ArrayAref).
This caused a MismatchedOperandTyp...
rwstauner (Randy Stauner)
05:20 PM Revision 20eeb720 (git): Commit a diff shown on check_misc
https://github.com/ruby/ruby/actions/runs/22316806245/job/64563939588
Local `make update-man-date` generates nothing but CI complains about
it, so just pushing this diff to make it happy.
k0kubun (Takashi Kokubun)
05:14 PM Revision 6f0244e0 (git): ZJIT: Pull GetEP out of GetLocal (with level > 0) (#16215)
Closes: https://github.com/Shopify/ruby/issues/944
As a first step toward enabling CSE/LVN-based deduplication of frame EP loads,
splitting `GetLocal` handling for `level > 0` into an explicit `GetEP + LoadField` path.
A follow-up PR w...
Nozomi Hijikata
05:12 PM Revision ffbe288f (git): ZJIT: constant fold bitwise XOR (^) operations (#16225)
Tomás Coêlho
05:06 PM Revision 107699df (git): [ruby/erb] Freeze src in initialize
(https://github.com/ruby/erb/pull/105)
https://github.com/ruby/erb/commit/3d4dc31905
jhawthorn (John Hawthorn)
04:56 PM Bug #21921: Hash inconsistent ==, >=, <= behavior
> > An entry `h0[k0]` in one hash is equal to an entry `h1[k1]` in another hash if and only if the two keys are equal (`k0 == k1`) and their two values are equal (`h0[k0] == h1[h1]`).
> ...
It doesn't just say "equal", it specifically m...
Dan0042 (Daniel DeLorme)
12:43 PM Feature #21923 (Open): DTrace USDT probe Ruby method arguments and return value
I'm interested in improving the DTrace USDT probes in Ruby. I would like to expose the Ruby method arguments and return value to the DTrace probes `(c)method-entry` and `(c)method-return`. This would be done by adding a fifth argument to... jacobcarlborg (Jacob Carlborg)
11:34 AM Feature #19107: Allow trailing comma in method signature
> What about the lambda arguments?
@nobu it's unclear to me so I didn't change them. I added https://bugs.ruby-lang.org/issues/21875 to the next dev meeting.
Earlopain (Earlopain _)
04:43 AM Feature #19107: Allow trailing comma in method signature
What about the lambda arguments?
commit:731b6092e9268af960bf0f060e37504f4deb7380 seems not to allow `->(a,) {}`.
nobu (Nobuyoshi Nakada)
09:35 AM Revision fd492edd (git): Fix spurious uses of BASE_SLOT_SIZE
In gc_sweep_plane, VALGRIND_MAKE_MEM_UNDEFINED was using BASE_SLOT_SIZE
which only covers the smallest pool's slot size. For larger size pools
this left the tail of the slot with stale state. Use the page's actual
slot_size instead.
In ...
eightbitraptor (Matt V-H)
09:18 AM Revision 9ebef81e (git): Relax thresholds for compaction verification
These tests failed with RHEL10 again. nobu (Nobuyoshi Nakada)

02/22/2026

04:40 PM Revision b94162ab (git): [ruby/prism] Preserve line-continuation only in dedent heredocs
Closes https://github.com/ruby/prism/issues/3837
While these lines are whitespace only from a runtime perspective,
the line continuation is significant for AST consumers.
Sort of a followup to https://github.com/ruby/prism/commit/faab2...
Earlopain (Earlopain _)
04:38 PM Feature #19107 (Closed): Allow trailing comma in method signature
Applied in changeset commit:git|731b6092e9268af960bf0f060e37504f4deb7380.
----------
[ruby/prism] [Feature #19107] Allow trailing comma in method signature
https://github.com/ruby/prism/commit/b7e247ce6a
Earlopain (Earlopain _)
04:38 PM Revision 731b6092 (git): [ruby/prism] [Feature #19107] Allow trailing comma in method signature
https://github.com/ruby/prism/commit/b7e247ce6a Earlopain (Earlopain _)
04:32 PM Revision 6d69a2b8 (git): [ruby/prism] Rename Java package to org.ruby_lang.prism
This moves all of the non-JRuby Java code from the org.prism
package to the org.ruby_lang.prism package (corresponding to the
ruby-lang.org domain and prism project).
https://github.com/ruby/prism/commit/80b7402f8b
headius (Charles Nutter)
11:00 AM Revision c71999e8 (git): [DOC] Update the date in man pages
nobu (Nobuyoshi Nakada)
10:59 AM Revision dcdec8c2 (git): [DOC] Check if date in man pages is up-to-date
nobu (Nobuyoshi Nakada)
05:34 AM Revision 07645fe8 (git): [DOC] man: Increase section number portability
Remove a zero-width space from manual page section numbers improving
portability with the mandoc compiler used on macOS, BSD, and illumos.
Previously it was polluting the whatis(1) database, showing as being
in both sections `1` and als...
Alexander Ziaee
04:15 AM Bug #21919: `libruby-static.a` links to wrong `Init_enc`
nobu (Nobuyoshi Nakada) wrote in #note-1:
> `--with-static-linked-ext` means the extension libraries including encodings are linked to the ruby executable or library.so.
Which `library.so` is that exactly?
nobu (Nobuyoshi Nakada...
reitermarkus (Markus Reiter)
02:27 AM Bug #21919 (Rejected): `libruby-static.a` links to wrong `Init_enc`
`--with-static-linked-ext` means the extension libraries including encodings are linked to the ruby executable or library.so.
`-static.a` is not intended to link these extensions.
nobu (Nobuyoshi Nakada)
03:44 AM Revision ac4aebc7 (git): Use ruby-head instead of ruby-3.2 in check_misc job (#16217)
tompng (tomoya ishida)
02:56 AM Revision fcba4c1a (git): [DOC] Improve link in yjit.md
burdettelamar (Burdette Lamar)
02:06 AM Revision 9efde1f2 (git): [DOC] Specify the HTML output path explicitly
nobu (Nobuyoshi Nakada)

02/21/2026

08:25 PM Misc #21922 (Open): Permissions for committers for default/bundled/unbundled gems repositories
I noticed recently that the team `ruby-committers` on GitHub no longer has write access to at least:
* https://github.com/ruby/benchmark
* https://github.com/ruby/cmath
* https://github.com/ruby/curses
* https://github.com/ruby/dbm
...
Eregon (Benoit Daloze)
07:17 PM Revision 60082aa9 (git): [DOC] Fix link fragment
burdettelamar (Burdette Lamar)
06:13 PM Bug #21921: Hash inconsistent ==, >=, <= behavior
By the way, I noticed the following behavior, which feels like it might not satisfy the specification:
```ruby
h1 = {}.compare_by_identity
h1["one"] = true
h1["one"] = true
h2 = { "one" => true }
h1 <= h2 # current: false, expe...
mame (Yusuke Endoh)
05:56 PM Bug #21921: Hash inconsistent ==, >=, <= behavior
The documentation for Hash inclusion is a bit hard to understand due to its mathematical phrasing.
> The spec merely says that keys are compared with `==`, but I believe they are actually compared with `eql?` (for normal hashes).
T...
mame (Yusuke Endoh)
03:02 PM Bug #21921: Hash inconsistent ==, >=, <= behavior
This has not affected any real-world app I use. I noticed this while working on a bidirectional hash gem (bihash@rubygems).
However, I don't think the behavior is consistent with the spec as written:
The spec merely says that keys are c...
cohen (Cohen Carlisle)
03:49 AM Bug #21921: Hash inconsistent ==, >=, <= behavior
The current specification of `Hash#<=` is to check if all elements of the supposedly smaller Hash are included in the supposedly larger Hash. I think the reported behaviors are actually working as specified.
https://github.com/ruby/ru...
mame (Yusuke Endoh)
02:31 AM Bug #21921 (Open): Hash inconsistent ==, >=, <= behavior
Hash seems to have very inconsistent behavior for `==`, `>=`, and `<=`.
Given that below h1 == h2 is `false` and that they have the same number of keys, I would expect `<=` and `>=` to also be `false`.
However, surprisingly `h1 <= h2` ...
cohen (Cohen Carlisle)
05:36 PM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
I often use the offset parameter from `String#byteindex` and was a bit surprised there is not yet something for arrays. It's a bit unfortunate with the ambiguity between block/noblock usage but a keyword argument `offset` seems like a pe... Earlopain (Earlopain _)
12:58 PM Revision 727612b1 (git): ZJIT: Stabilize anonymous module/class names in stat keys and display (#16176)
Anonymous modules/classes get names like `"#<Module:0x00007f...>"` from `rb_class2name`, which include a memory address that changes between runs. This makes stat keys unstable for diffing across runs and is less informative than it coul... rwstauner (Randy Stauner)
07:55 AM Bug #21920 (Closed): LIBRUBYARG_SHARED contains -lgmp and other libraries for static linking
The commit was reverted https://github.com/ruby/ruby/pull/16212, it should be fixed now. byroot (Jean Boussier)
05:31 AM Revision a0d9b69c (git): colorize: [DOC] Add documents
nobu (Nobuyoshi Nakada)
05:30 AM Revision 1fb58853 (git): colorize: Make internal methods/constants private
nobu (Nobuyoshi Nakada)
05:30 AM Revision 2794351c (git): colorize: Refactor #initialize
Use keyword arguments and extract repeated regexps as constant. nobu (Nobuyoshi Nakada)
05:30 AM Revision 769b8de4 (git): colorize: Support background color
nobu (Nobuyoshi Nakada)
04:12 AM Revision 623f33d9 (git): Relax test_thrashing_for_young_objects to fix CI flake
This test has been failing intermittently on multiple CI platforms
(Debian 13, RHEL 9/10, Ubuntu aarch64) with heap_allocated_pages
growing from 100 to 130, or major_gc_count incrementing by 1.
Failing run: https://rubyci.s3.amazonaws.c...
eightbitraptor (Matt V-H)
04:12 AM Revision 82e796b1 (git): Revert "[Bug #19831] Remove duplicate library warning"
This reverts commit d256629bf9e194838d1837be74dcc0b8ff0bcfd6. byroot (Jean Boussier)

02/20/2026

11:12 PM Revision a8cb7292 (git): Remove NUM_IN_PAGE macro
This is being used to calculate the starting point of the slots in a
page in order to make them evenly divisible by a bitmap plane.
Since https://github.com/ruby/ruby/pull/16150 we restructured the
bitmaps in order to pack them such tha...
eightbitraptor (Matt V-H)
10:33 PM Bug #21855: Bundle `win32-registry` or implement it without `fiddle`
Thanks for merging!
There is a second bug, that is fixed by making win32-registry a bundled gem: The gemspec of the default gem looks like so:
```ruby
$ cat c:\Ruby40-arm\lib\ruby\gems\4.0.0\specifications\default\win32-registry-0.1...
larskanis (Lars Kanis)
04:22 AM Bug #21855 (Closed): Bundle `win32-registry` or implement it without `fiddle`
Applied in changeset commit:git|f01f66ca249405ec125ba864e48e51944cc51c6f.
----------
Move win32-registry from default to bundled gems
Because win32-registry needs fiddle and fiddle is a bundled gem.
[Bug #21855]
larskanis (Lars Kanis)
04:22 AM Bug #21855: Bundle `win32-registry` or implement it without `fiddle`
@usa has no objection for that. I will merge https://bugs.ruby-lang.org/issues/21855#note-6 and handle related works. hsbt (Hiroshi SHIBATA)
09:24 PM Bug #21920 (Closed): LIBRUBYARG_SHARED contains -lgmp and other libraries for static linking
That recent commit introduced `MAINLIBS` into `LIBRUBYARG_SHARED`: https://github.com/ruby/ruby/commit/d256629bf9e194838d1837be74dcc0b8ff0bcfd6
Before that commit:
```
CONFIG["LIBRUBYARG_SHARED"] = "-l$(RUBY_SO_NAME)"
CONFIG["L...
larskanis (Lars Kanis)
07:10 PM Bug #21919 (Rejected): `libruby-static.a` links to wrong `Init_enc`
When building Ruby with `--with-static-linked-ext`, `libruby-static.a` links the `Init_enc` function from `dmyenc.c` instead of `enc/encinit.c.erb`, resulting in `uninitialized constant Encoding::UTF_8` error, among other things.
Ther...
reitermarkus (Markus Reiter)
04:39 PM Revision e730ac41 (git): YJIT: Fix version_map use-after-free from mutable aliasing UB
Multiple YJIT functions created overlapping `&'static mut IseqPayload`
references by calling `get_iseq_payload()` multiple times for the same
iseq. Overlapping &mut is UB in rust's aliasing model, and as consequence,
we trigered use-afte...
rwstauner (Randy Stauner)
04:04 PM Revision 906176ad (git): ZJIT: zjit-bisect.rb: Pass options with -T for `make test-spec`
It was passing options to the test harness rather than ruby(1). alanwu (Alan Wu)
11:18 AM Revision ee2d9029 (git): [ruby/json] Use single quotes for allow_invalid_escape doc
Instead of using %{} which works like double-quoted string and allows
escape sequences and in which "other escaped characters (a backslash
followed by a character) are interpreted as the character", change the
examples for `allow_invalid...
etienne (Étienne Barrié)
11:12 AM Revision f3d52cb8 (git): [ruby/rubygems] Document concurrent_downloads in environment command
https://github.com/ruby/rubygems/commit/927f1e3a0f afurm (Andrii Furmanets)
10:44 AM Revision 986aa694 (git): Suppress an uninitialized variable warning
nobu (Nobuyoshi Nakada)
10:25 AM Revision 2d2afa8c (git): Group rubyspec_capiext
nobu (Nobuyoshi Nakada)
08:34 AM Revision 3dc80a09 (git): Removed unnecessary setup for make bundled_gems_spec-run
hsbt (Hiroshi SHIBATA)
07:08 AM Revision 3417f802 (git): Update bundled gems list as of 2026-02-20
git[bot]
04:25 AM Revision 28de927b (git): Add win32-registry entries to doc
hsbt (Hiroshi SHIBATA)
04:22 AM Revision f01f66ca (git): Move win32-registry from default to bundled gems
Because win32-registry needs fiddle and fiddle is a bundled gem.
[Bug #21855]
larskanis (Lars Kanis)
04:19 AM Revision b093886d (git): [DOC] Fix range docs intro
It's code but not formatted as such Earlopain (Earlopain _)
02:05 AM Revision 6ea68a58 (git): [ruby/rubygems] Don't check whether a plugin needs to be installed:
- ### Problem
When Bundler installs gems, it checks whether a gem plugin needs
to be installed.
This check (`Dir.glob`) is expensive and is hotspot when profiling
Bundler.
### Details
Bundler makes a check to see if a gems...
Edouard CHIN
01:57 AM Bug #21882 (Closed): IO::Buffer#locked leaves the buffer locked when the block raises
Applied in changeset commit:git|b5ccab2093c9bb19ae8564a935e6fd72ec7354cc.
----------
IO::Buffer#locked: Release lock even when the block raises (#16180)
IO::Buffer#locked: Release lock even when the block raises/breaks
Previously, `IO...
hanazuki (Kasumi Hanazuki)
01:56 AM Revision b5ccab20 (git): IO::Buffer#locked: Release lock even when the block raises (#16180)
IO::Buffer#locked: Release lock even when the block raises/breaks
Previously, `IO::Buffer#locked` leaks the lock when the block raises
an exception, or breaks.
Fixes: [Bug #21882]
hanazuki (Kasumi Hanazuki)
01:39 AM Revision 126b657b (git): Use rb_ensure instead of guard objects for Dir.pwd
This replaces GC-based buffer guards (rb_imemo_tmpbuf,
TypedData_Wrap_Struct) with rb_ensure to clean up malloc/xmalloc memory
when an exception occurs.
jhawthorn (John Hawthorn)

02/19/2026

11:37 PM Revision 06c8b1ab (git): ZJIT: Remove find() from po_from
Max Bernstein
11:37 PM Revision c0c97c0f (git): ZJIT: Simplify po_from to take a single BlockId
Max Bernstein
11:22 PM Revision e6f73fcf (git): Remove HEAP_PAGE_OBJ_LIMIT
This was useful when there was only a single size pool to have an easy
way of referencing the average number of objects a page could hold (this
would vary by a few in real terms because of page alignment).
But with multiple heaps, each ...
eightbitraptor (Matt V-H)
10:24 PM Revision 7ca0aa5f (git): Copy terminator when moving strings to the heap.
The embedded-to-heap path copied RSTRING_LEN(str) bytes into an
ALLOC_N buffer, missing the null terminator (and any slot padding).
Copy str_embed_capa(str) bytes instead. Always safe since we only
enter this path when str_embed_capa(str...
eightbitraptor (Matt V-H)
10:20 PM Bug #21917: Unable to build 4.0.1 on AIX 7.2
Thanks for the quick reply. Your second, more simple patch in https://bugs.ruby-lang.org/issues/21917#note-2 worked to resolve my build issue.
I also tried your commit 361644c0cce3235e9cc6724994c6b5711deb10b8 but the build fails with ...
mhashizume (Michael Hashizume)
09:51 AM Bug #21917 (Closed): Unable to build 4.0.1 on AIX 7.2
Applied in changeset commit:git|361644c0cce3235e9cc6724994c6b5711deb10b8.
----------
[Bug #21917] Fix build on AIX
nobu (Nobuyoshi Nakada)
02:08 AM Bug #21917: Unable to build 4.0.1 on AIX 7.2
Or, more simply:
```diff
diff --git a/dln.c b/dln.c
index 2549f031835..3725b95fbb7 100644
--- a/dln.c
+++ b/dln.c
@@ -89,7 +89,7 @@ dln_loaderror(const char *format, ...)
}
#endif

-#if defined(HAVE_DLOPEN) && !defined(_AI...
nobu (Nobuyoshi Nakada)
12:29 AM Bug #21917: Unable to build 4.0.1 on AIX 7.2
Probably this may help:
```diff
diff --git a/dln.c b/dln.c
index 2549f031835..01dfccd0534 100644
--- a/dln.c
+++ b/dln.c
@@ -506,6 +506,7 @@ static void *
dln_load_and_init(const char *file, const char *init_fct_name)
{
#if...
nobu (Nobuyoshi Nakada)
10:17 PM Revision bb8881f3 (git): [ruby/rubygems] Honor concurrent_downloads from gemrc
https://github.com/ruby/rubygems/commit/6a187a0a99 afurm (Andrii Furmanets)
09:18 PM Revision b205bf61 (git): ZJIT: Measure how much each part of compile-time costs
Max Bernstein
09:18 PM Revision 607af489 (git): ZJIT: Measure side-exit compile time
Also report it as a percentage of overall compile time. Max Bernstein
09:05 PM Revision c058a988 (git): ZJIT: Replace dominator set-intersection with Cooper's idom algorithm
Max Bernstein
09:05 PM Revision f5782840 (git): ZJIT: Add Entries superblock as single CFG root
Max Bernstein
09:05 PM Revision 3f5e85bf (git): ZJIT: Add LoadArg instruction for JIT entry blocks
Max Bernstein
03:57 PM Revision e7cff2e8 (git): ZJIT: Register builtin CMEs before prelude to avoid prepend crash
Split rb_zjit_init into rb_zjit_init_builtin_cmes (called before
ruby_init_prelude) and rb_zjit_init (called after). The prelude may
load bundler via BUNDLER_SETUP which can call Kernel.prepend, moving
core methods to an origin iclass. R...
rwstauner (Randy Stauner)
03:57 PM Revision bf3bc12d (git): Simplify Kernel prepend test
rwstauner (Randy Stauner)
03:57 PM Revision b9dc0a2b (git): Add regression test for module prepend crash
etienne (Étienne Barrié)
03:57 PM Revision a19becac (git): YJIT: Register builtin CMEs before prelude to avoid prepend crash
Split rb_yjit_init into rb_yjit_init_builtin_cmes (called before
ruby_init_prelude) and rb_yjit_init (called after). The prelude may
load bundler via BUNDLER_SETUP which can call Kernel.prepend, moving
core methods to an origin iclass. R...
rwstauner (Randy Stauner)
02:43 PM Bug #21918 (Open): fiber scheduler: fiber interrupt triggers for IOs that haven't been closed
I've been chasing an issue, which I believe is to with the recent introduction of the `fiber_interrupt` hook in ruby 4. As a reproduction I have the following snippet:
```ruby
require "socket"
require_relative "test/fiber/scheduler"...
chucke (Tiago Cardoso)
12:31 PM Revision e7a09845 (git): [ruby/json] Add `allow_invalid_escape` parsing option
Ref: https://github.com/ruby/json/issues/939
https://github.com/ruby/json/commit/05cec0cbee
byroot (Jean Boussier)
10:58 AM Revision e67f3f06 (git): [ruby/prism] Implement noblock for the ripper/ruby_parser translator
In ripper, compared to `**nil` it is not a new event
https://github.com/ruby/prism/commit/7f5782392e
Earlopain (Earlopain _)
10:02 AM Revision 7d05c170 (git): Use `UNREACHABLE_RETURN` instead of dummy `return`
nobu (Nobuyoshi Nakada)
09:12 AM Revision 361644c0 (git): [Bug #21917] Fix build on AIX
nobu (Nobuyoshi Nakada)
09:12 AM Revision 3ad05195 (git): Reduce duplicate code
nobu (Nobuyoshi Nakada)
09:04 AM Revision 6bb0b6b1 (git): [ruby/prism] Revert "[DOC] Add code fences"
(https://github.com/ruby/prism/pull/3936)
This reverts commit https://github.com/ruby/prism/commit/641775e5fea6.
There is no need, they are not documented.
https://github.com/ruby/prism/commit/6fb4c42637
Earlopain (Earlopain _)
01:15 AM Revision da767cda (git): Fix wrong function names in `rb_bug` messages in vm_trace.c (#16196)
st0012 (Stan Lo)
12:22 AM Revision e3183164 (git): ZJIT: Save VM state before recording exit stack for trace-exits (#16195)
When --zjit-trace-exits is enabled, rb_zjit_record_exit_stack was called before compile_exit restored the VM state (cfp->pc, cfp->sp, stack, locals). This ccall clobbers caller-saved registers that may hold stack/local operands, causing ... rwstauner (Randy Stauner)
 

Also available in: Atom