Project

General

Profile

Activity

From 04/29/2026 to 05/05/2026

Today

01:09 AM Revision cc31e846 (git): Add write barriers to ARGF
jhawthorn (John Hawthorn)
12:10 AM Revision 06fc5c24 (git): Use EC saved in GC for root marking
Since EC is thread-local, we previously used rb_gc_worker_thread_set_vm_context
in MMTk worker threads to temporarily set the EC. However, this was inelegant
and also occasionally caused crashes when marking threads/fibers for the
curren...
peterzhu2118 (Peter Zhu)

05/04/2026

10:06 PM Revision 1ce2e79b (git): - iseq.c: fix passing frozen option to compile_file_prism
palkan (Vladimir Dementyev)
10:06 PM Revision 43c01a5f (git): ISeq.compile_file was not switching on parser
kddnewton (Kevin Newton)
10:06 PM Revision 4c564ee2 (git): Fix coverage support for RubyVM::ISeq.compile
[Bug #22018]
ISeq returned by `RubyVM::InstructionSequene.load_iseq` weren't
handled by the coverage module.
byroot (Jean Boussier)
09:45 PM Revision 138b4ba2 (git): ZJIT: Skip heap-upgrade snapshot on unsupported builds
Stop deriving the embedded-capacity boundary from GC internals in
`upgrade_self_type_to_heap_after_setivar`.
Instead, use self-consistency checks to keep the snapshot only on builds
where five ivars stay embedded and the next write over...
nozomemein (Nozomi Hijikata)
09:45 PM Revision cb5585b7 (git): ZJIT: Simplify setivar shape-transition test
The old test snapshot depended on the second write crossing the
embedded-capacity boundary, even though the behavior under test was
just the shape transition across two ivar writes.
Warm the class to two ivars and assert the natural spe...
nozomemein (Nozomi Hijikata)
09:45 PM Revision 18b0e3f8 (git): ZJIT: Stabilize setivar shape/capacity transition tests
The old setivar opt tests depended on embedded-capacity boundaries that
vary between dev and stats builds.
Compute the boundary from GC::INTERNAL_CONSTANTS and construct receivers
so the tests reliably cover shape transition and heap-ba...
nozomemein (Nozomi Hijikata)
09:45 PM Revision 46794243 (git): ZJIT: Stabilize polymorphic getivar tests
Avoid receiver shapes near the embedded/heap boundary in the
polymorphic getivar tests.
Make both receivers clearly heap-backed so stats and dev builds still
exercise distinct @foo slots without depending on embedded_p().
nozomemein (Nozomi Hijikata)
09:08 PM Bug #22020: Inner call node without all arguments returned by RubyVM::AbstractSyntaxTree.of for call with a block
My motivation here is I would like to implement `Thread::Bactrace::Location#source_range`.
For this to work in `--parser=parse.y` mode it needs to return the same start/end line/column as Prism in all cases of `RubyVM::AbstractSyntaxTre...
Eregon (Benoit Daloze)
09:02 PM Bug #22020: Inner call node without all arguments returned by RubyVM::AbstractSyntaxTree.of for call with a block
The current locations are like this:
```
foo(1, 2, kw: :arg) { 123 }
|---------ITER------------|
|------FCALL------| |SCOPE|
```
When `foo` does not exist, it's a `NoMethodError`, and `RubyVM::AbstractSyntaxTree.of e.backtrace_locations...
Eregon (Benoit Daloze)
08:19 PM Bug #22021 (Rejected): Array#delete_if may delete wrong object if array has been altered already
I think this is safe to reject, I think it's not feasible to change this.
One should avoid mutating the Array while iterating, otherwise this kind of behavior is expected.
Eregon (Benoit Daloze)
08:16 PM Bug #22021: Array#delete_if may delete wrong object if array has been altered already
IMO it's not reasonable for `Array#delete_if` to do anything else than what it already does.
How can `Array#delete_if` know which element you deleted and whether it should delete or not?
The block returns true for the second 2nd block ca...
Eregon (Benoit Daloze)
05:52 AM Bug #22021 (Rejected): Array#delete_if may delete wrong object if array has been altered already
The simplest example I can come up with:
```ruby
$ar = ar = [1, 2, 3, 4, 5]
def del(i)
$ar.delete(i)
end
ar.delete_if { |e| e == 2 ? (del(e) && true) : false }
p ar #=> [1, 4, 5], and it should be [1, 3, 4, 5]
```
chucke (Tiago Cardoso)
04:37 PM Bug #22023: Backport commits cba70c3532c34803bae065745b799103635ec67a and cfdca23bfecb5fb74fd31128ac37d734d8e7e43b
Backport PRs:
- 4.0: https://github.com/ruby/ruby/pull/16852
- 3.4: https://github.com/ruby/ruby/pull/16853
-
byroot (Jean Boussier)
04:28 PM Bug #22023 (Closed): Backport commits cba70c3532c34803bae065745b799103635ec67a and cfdca23bfecb5fb74fd31128ac37d734d8e7e43b
- Fix passing frozen_string_literal option to #compile_file backed by Prism: https://github.com/ruby/ruby/pull/16779
- ISeq.compile_file was not switching on parser: https://github.com/ruby/ruby/pull/16463
byroot (Jean Boussier)
03:41 PM Revision a440f23c (git): Always inline `revalidate_setivar_cache`
byroot (Jean Boussier)
03:41 PM Revision 880901af (git): vm_insnhelper.c: Unify `populate_cache` and `fill_ivar_cache`
They're the same code. byroot (Jean Boussier)
03:41 PM Revision a2ba1ed4 (git): vm_insnhelper.c: refactor and optimize setivar cache revalidation
By only storing shape offsets in the cache, we're able to still
match two equal objects that happen to be in different heaps, as
well as to validate the object is neither frozen nor complex.
byroot (Jean Boussier)
03:41 PM Revision 8d40d481 (git): vm_insnhelper.c: share the cache revalidation logic
It's the same code duplicated in 3 places. byroot (Jean Boussier)
03:22 PM Revision 1aa62e89 (git): [ruby/prism] Optimize ripper `visit_token`
It was showing up in profiles.
So:
* Don't splat `KEYWORDS` (also did the same for `BINARY_OPERATORS`)
* Use `start_with?` if possible
Overall gives a ~5% speed boost
https://github.com/ruby/prism/commit/d611aa9d11
Earlopain (Earlopain _)
03:22 PM Revision 1367f885 (git): [ruby/prism] Freeze the parse result for the ripper translator
It's a small, somewhat hacky performance boost. Locations are lazy, by freezing the
result they don't have to be pack/unpacked redundantly.
This gives about a 4% speed boost.
Other changes are to not modify the frozen AST
https://githu...
Earlopain (Earlopain _)
03:22 PM Revision 0cbd210c (git): [ruby/prism] Optimize ripper bounds
Basically a port of https://github.com/ruby/ruby/commit/c45f781771314a71856c9b348c640ba532f54349 into ruby
It's quite effective at ~97% hit rate for me.
Speeds it up from ~6.77x slower to only 4.07x slower.
For the lexer `on_sp` it als...
Earlopain (Earlopain _)
03:15 PM Revision b583dd68 (git): Fix typo and improve docs of Exception#exception
Eregon (Benoit Daloze)
03:03 PM Revision f6d1bc6b (git): [DOC] Add feature 21796 in NEWS.md
byroot (Jean Boussier)
12:33 PM Bug #22004: parse.y doesn't executes loop body with `while true || true` condition
Backported into ruby_3_4 at commit:fdac94eee1a3f226cafcfa6ec0da97bb08b03369 nagachika (Tomoyuki Chikanaga)
12:31 PM Revision fdac94ee (git): merge revision(s) 7f4f3c8ee7cde795dc27be753796fc7ea8318565: [Backport #22004]
[PATCH] [Bug #22004] Fix short-circuited loop conditions nagachika (Tomoyuki Chikanaga)
12:05 PM Bug #22018: ISeq created via `RubyVM::InstructionSequence.compile` don't support coverage
Backports:
- 4.0: https://github.com/ruby/ruby/pull/16846
- 3.4: https://github.com/ruby/ruby/pull/16847
byroot (Jean Boussier)
12:02 PM Bug #22018 (Closed): ISeq created via `RubyVM::InstructionSequence.compile` don't support coverage
Applied in changeset commit:git|8bf6d7bfcb4ca46d2cfe73bdbce2fdb0652b1aae.
----------
Fix coverage support for RubyVM::ISeq.compile
[Bug #22018]
ISeq returned by `RubyVM::InstructionSequene.load_iseq` weren't
handled by the coverage mo...
byroot (Jean Boussier)
12:01 PM Revision 8bf6d7bf (git): Fix coverage support for RubyVM::ISeq.compile
[Bug #22018]
ISeq returned by `RubyVM::InstructionSequene.load_iseq` weren't
handled by the coverage module.
byroot (Jean Boussier)
12:01 PM Feature #21953: Allow accessing unshareable objects within a Ractor-local Ruby Box
I understand the reasoning, however given the implementation of boxes, I fear implementing this proposal would reintroduce the need for many ractor locks, negating their usefulness.
Also it's not just `Ruby::Box` that would need to be...
byroot (Jean Boussier)
08:33 AM Revision a3cfaf25 (git): test_shapes.rb: replace hardcoded MANY_IVS constant
Since more size pools have been added, this constant was outdated. byroot (Jean Boussier)
08:03 AM Bug #21970: Corrupted `ciobj->operands` in `compile.c: optimize_checktype`
We ran into several more instances of that bug in the last couple weeks.
```
apps/intercom/app/helpers/operator_workflows_helper.rb: [BUG] Segmentation fault at 0x0000aaaa00000009
ruby 4.0.2 (2026-03-17 revision d3da9fec82) +PRISM [...
byroot (Jean Boussier)
06:29 AM Bug #22022 (Open): Refinement zsuper problems when referenced method changes
I've found many problems with refinement zsuper methods. Here's one example:
```ruby
module M
private def a = :a
alias a a
end
class A
include M
end
class B < A
end
module R
refine B do
public :a
end
...
jeremyevans0 (Jeremy Evans)
04:58 AM Revision ca4047c5 (git): Update default gems list at 5ce5cc8ee24ad92890507a1b0d0c68 [ci skip]
git[bot]
04:57 AM Revision 5ce5cc8e (git): [ruby/json] Release 2.19.5
https://github.com/ruby/json/commit/4a1a4a4861 byroot (Jean Boussier)
03:19 AM Revision 93ef2263 (git): Fix missing writebarrier on refined orig_me
Caught by wbcheck. The same field is written with RB_OBJ_WRITE
in rb_method_definition_set.
jhawthorn (John Hawthorn)
03:19 AM Revision bd16973b (git): Use write barrier version for rb_proc_call_kw
jhawthorn (John Hawthorn)
03:19 AM Revision f617eff6 (git): Add wbcheck GC with write barrier validation
Initial implementation of the wbcheck GC, a modular GC that detects
missed write barriers by collecting references from each object and
comparing against the set of objects that were marked/written via
rb_gc_writebarrier.
jhawthorn (John Hawthorn)
02:50 AM Revision 5d439f29 (git): mswin: Suppress quirky warning
Passing an array of const pointers within a struct as an argument
seems to be too complex for cl.exe:
```
vm_eval.c(501): warning C4090: 'function': different 'const' qualifiers
```
nobu (Nobuyoshi Nakada)
02:31 AM Revision c859018a (git): Bump the github-actions group across 1 directory with 2 updates
Bumps the github-actions group with 2 updates in the / directory: [github/codeql-action](https://github.com/github/codeql-action) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `github/codeql-action` f...
dependabot[bot]
12:46 AM Revision c9f55528 (git): enc_mbclen_needed: The condition when exact mbclen is needed
nobu (Nobuyoshi Nakada)
12:46 AM Revision 31cdf7a9 (git): Adjust style
nobu (Nobuyoshi Nakada)

05/03/2026

11:57 PM Revision d8d2ed5d (git): [DOC] Fix hash style of docs in gc.c
peterzhu2118 (Peter Zhu)
11:15 PM Revision 3d7a5678 (git): [DOC] Doc for Pathname#read
burdettelamar (Burdette Lamar)
09:56 PM Revision 4b6040ca (git): [ruby/strscan] Fix `call-seq` formatting
(https://github.com/ruby/strscan/pull/203)
They don't work in included markdown and also need a leading `:`
<img width="791" height="442" alt="grafik"
src="https://github.com/user-attachments/assets/eca5d4c2-9597-4c58-a0cc-a4e2c9109992...
Earlopain (Earlopain _)
09:40 PM Revision a57aba16 (git): shape.h: also ignore obj_id flag when reading ivars
It doesn't impact ivar lookup, because OBJ_ID fields change
the offset.
byroot (Jean Boussier)
09:40 PM Revision beffa58b (git): shape: Get rid of the "raw_id" terminology in favor of "offset"
It better describe that part of a `shape_id`. byroot (Jean Boussier)
09:40 PM Revision 73b5cbbf (git): class.h: store `classpath` earlier in the struct
It's probably the most helpful field while debugging, having
it toward the start of the struct ensure `rp` and other debugger
helpers will display it.
byroot (Jean Boussier)
09:40 PM Revision 1455aa58 (git): shape.c: Add a fastpath in rb_shape_rebuild
When the shape doesn't have a SHAPE_OBJ_ID edge, we don't
really have to rebuild it, we can simply combine the old shape
offset with the new shape flags.
byroot (Jean Boussier)
08:08 PM Bug #22020 (Open): Inner call node without all arguments returned by RubyVM::AbstractSyntaxTree.of for call with a block
```ruby
begin
foo(1, 2, kw: :arg) { 42 }
rescue => e
pp RubyVM::AbstractSyntaxTree.of e.backtrace_locations[0]
end
```
```
$ ruby --parser=parse.y rubyvm_ast_node_id_loc.rb
(FCALL@2:2-2:21 :foo
(LIST@2:6-2:20 (INTEGER@...
Eregon (Benoit Daloze)
02:04 PM Revision 39257a3e (git): Add field in RObject for too complex hash case
Avoids the need to cast fields into a st_table. peterzhu2118 (Peter Zhu)
01:54 PM Bug #22004 (Closed): parse.y doesn't executes loop body with `while true || true` condition
Applied in changeset commit:git|7f4f3c8ee7cde795dc27be753796fc7ea8318565.
----------
[Bug #22004] Fix short-circuited loop conditions
nobu (Nobuyoshi Nakada)
01:17 PM Revision 7f4f3c8e (git): [Bug #22004] Fix short-circuited loop conditions
nobu (Nobuyoshi Nakada)
11:40 AM Feature #21953: Allow accessing unshareable objects within a Ractor-local Ruby Box
@tikkss I think there is an issue with your accounting of memory because it doesn't match the RSS of the worker process.
This is running your example as-is.
```
$ ruby -v
ruby 4.0.2 (2026-03-17 revision d3da9fec82) +PRISM [x86_64-linux]...
Eregon (Benoit Daloze)
09:36 AM Revision c9b53473 (git): Refactor shape transition functions
Expose both `rb_obj_shape_` functions that take a `VALUE`
and `rb_shape_` functions that take a `shape_id`.
Make common transition functions such as `complex` and `frozen`
inlineable.
Also get rid of RB_SET_SHAPE_ID and rb_set_boxed_cl...
byroot (Jean Boussier)
08:00 AM Revision 87529e19 (git): shape.c: simplify `transition_complex`
We don't need to call into `shape_transition_object_id`, we know
we're transitioning to TOO_COMPLEX so the offset part of the id
can only be `ROOT_TOO_COMPLEX_SHAPE_ID` or `ROOT_TOO_COMPLEX_WITH_OBJ_ID`.
So there's no need to lookup the...
byroot (Jean Boussier)
05:56 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
Hi there! It's been a few weeks and I want to make sure this doesn't get lost - please understand that despite how it looks from a cursory viewing of the diff, the patch I've submitted does seem to remove the warning from exactly this ca... jneen (Jeanine Adkisson)

05/02/2026

04:08 PM Revision db26919b (git): jits: don't assume `attr_index_t` is u16
Extracted from: https://github.com/ruby/ruby/pull/16817
It's likely that it will be u8 soon.
byroot (Jean Boussier)
03:02 PM Feature #21953: Allow accessing unshareable objects within a Ractor-local Ruby Box
Basically, I agree to this proposal. The described use case is very clear and understandable to me.
Technically, we can find several things to be considered.
1) It's not clear how a box is tied with a ractor
This proposal is bas...
tagomoris (Satoshi Tagomori)
02:05 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
Yes Eregon (Benoit Daloze)
12:43 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
Eregon (Benoit Daloze) wrote in #note-21:
> I confirmed with both @mame and @matz, and matz said it should be from `p` of `proc`.
So that means it will include the original call and all arguments in all cases, including multi-line ca...
headius (Charles Nutter)
11:19 AM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
Eregon (Benoit Daloze) wrote in #note-10:
> I'm not sure if [@matz (Yukihiro Matsumoto)](/users/13) made his mind on: Start position: from the `p` of `proc`? Or from the `{`?
I confirmed with both @mame and @matz, and matz said it sh...
Eregon (Benoit Daloze)
10:18 AM Revision 9c07713b (git): shape.h: store `ancestor_index` as an offset
This shrinks the `rb_shape_t` struct from 40B to 32B. byroot (Jean Boussier)
10:18 AM Revision 38711758 (git): shape.h: declate rb_shape_t.type as enum
byroot (Jean Boussier)
09:38 AM Revision 9afb8a65 (git): shape.c: reorganize rb_shape_tree_t
Embed and shrink the capacities array so that it can be queried
more efficiently.
Move `next_shape_id` and `cache_size` outside of the struct on their
own cache line, as they're expected to be incremented atomically from
concurrent thre...
byroot (Jean Boussier)
08:33 AM Revision 289343cf (git): Create imemo/fields with shape_id
Simplify the API by taking a shape_id upon creation. byroot (Jean Boussier)
06:46 AM Revision 45d586ad (git): Never increment `max_iv_count` on Object / BasicObject.
Otherwise some code defining ivars on a naked object early during
program boot can cause all objects to be larger than needed.
This seem like it was always the intention, but wasn't quite
properly prevented.
Also stop updating `max_iv_...
byroot (Jean Boussier)
05:02 AM Bug #22015: Success without RUBY_BOX=1, Failure with RUBY_BOX=1
I found a minimal reproduction case.
The issue seems to relate to how `Enumerable#flat_map` handles `Symbol#to_proc` within a `Ruby::Box` environment. Notably, `map(&:method)` works as expected, while `flat_map(&:method)` fails.
```...
niku (niku _)

05/01/2026

07:25 PM Revision f2845eab (git): Add back note about regexp /x comment limitation
It was dropped in https://github.com/ruby/ruby/commit/932dd9f10e684fa99b059054fbc934607d85b45a Earlopain (Earlopain _)
07:11 PM Revision 1721acf1 (git): ZJIT: Inline Class#allocate
This adds specialization for Class#allocate to perform the same inlining
that Class#new will do. This was done conservatively, only inlining when
we see a known leaf allocator so that there's no difference between
interpreter and JIT if ...
jhawthorn (John Hawthorn)
06:33 PM Bug #22019 (Open): Set#intersect () segv if the block is called after return
```ruby
class C
include Enumerable
def each(&b)
$b = b
yield 1
end
end
Set[1, 2, 3] & C.new
$b.call(1) # [BUG] Segmentation fault at 0x00007f21bfa67f60
```
The cause is essentially the same as #5801, we're in...
jhawthorn (John Hawthorn)
12:01 PM Feature #21953: Allow accessing unshareable objects within a Ractor-local Ruby Box
Eregon (Benoit Daloze) wrote in #note-2:
> Did you measure the difference in memory usage?
> ...
Thanks for your reply. No, I didn't. But I took this opportunity to give it a try.
I increased the number of classes with three methods to ...
tikkss (Tsutomu Katsube)
05:05 AM Revision 9b8e5bb8 (git): [ruby/json] Avoid spamming too many deprecations while parsing
https://github.com/ruby/json/commit/f6ca597cb1 byroot (Jean Boussier)
03:10 AM Bug #21940 (Closed): Ruby::Box: `$_` returns stale value due to gvar_tbl caching
Applied in changeset commit:git|f89b07ef0046257dd796a2e615cc063072114f16.
----------
Mark `$_` as box-dynamic to bypass Box gvar_tbl cache
`$_` is updated through svar (rb_lastline_set), bypassing
rb_gvar_set, so the Box gvar_tbl cache...
dak2 (Daichi Kamiyama)
03:10 AM Revision f89b07ef (git): Mark `$_` as box-dynamic to bypass Box gvar_tbl cache
`$_` is updated through svar (rb_lastline_set), bypassing
rb_gvar_set, so the Box gvar_tbl cache is never invalidated
and returns a stale value. Call rb_gvar_box_dynamic so
gvar_use_box_tbl() skips the cache.
Fixes [Bug #21940](https://...
dak2 (Daichi Kamiyama)
02:41 AM Revision 81f2fcae (git): Bump insta in /zjit in the jit group across 1 directory
Bumps the jit group with 1 update in the /zjit directory: [insta](https://github.com/mitsuhiko/insta).
Updates `insta` from 1.47.1 to 1.47.2
- [Release notes](https://github.com/mitsuhiko/insta/releases)
- [Changelog](https://github.co...
dependabot[bot]
01:50 AM Revision 5219c4c8 (git): [ruby/rubygems] Bump rb_sys to >= 0.9.127
https://github.com/ruby/rubygems/commit/cf21e9113f
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hsbt (Hiroshi SHIBATA)

04/30/2026

10:09 PM Revision 1546943e (git): [DOC] Doc for Set.new
burdettelamar (Burdette Lamar)
10:05 PM Revision fd1efa52 (git): [DOC] Harmonize basename methods
burdettelamar (Burdette Lamar)
09:31 PM Misc #21956: DevMeeting-2026-05-13
* [Feature #21981] Remove CREF rewriting for methods on cloned classes/modules
* Current behaviour is inconsistent with all other constant references being lexically scoped (inheritance, mixins, define_method). Only `Class#{dup,clone}...
jhawthorn (John Hawthorn)
09:20 PM Revision ebd881f9 (git): Remove IMEMO allocation from match_named_captures
onig_foreach_name is totally synchronous (either a for loop or an st_foreach), so it should be safe to pass data on the stack rather than allocating an IMEMO. jhawthorn (John Hawthorn)
09:12 PM Revision 97319067 (git): [DOC] Harmonize birthtime methods (#16744)
burdettelamar (Burdette Lamar)
06:20 PM Revision 096c9bb9 (git): Use flag to determine when MEMO.u3 is a VALUE
We always know when this contains a VALUE and even fire a write barrier
for it. We should use this when marking, support compaction, and no
longer need conservative marking.
jhawthorn (John Hawthorn)
06:20 PM Revision 802d964e (git): Remove MEMO.u3.func
This was no longer used anywhere jhawthorn (John Hawthorn)
02:27 PM Revision df623125 (git): [ruby/prism] Fix UTF-8 code units to match the number of bytes
(https://github.com/ruby/prism/pull/4098)
https://github.com/ruby/prism/commit/442bd904ed
Vinicius Stock
09:44 AM Revision f037b47a (git): Update ext/Setup template files [ci skip]
nobu (Nobuyoshi Nakada)
07:08 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
It's here https://github.com/ruby/ruby/pull/16434
4.0.3 was a security release only, so you can expect to get this fix in 4.0.4 which is intended to be released in may
Earlopain (Earlopain _)
04:33 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
Could we possibly check on this again? I checked master and found the change, but couldn't find it in neither 4.0.2 nor in 4.0.3. I looked in the repository on github as well into the official 4.0.3 tarball published on ruby-lang.org. It... mwaldvogel (Michael Waldvogel)
05:26 AM Revision 4a14dc87 (git): Share common code between Enumerator and ArithmeticSequence
nobu (Nobuyoshi Nakada)
03:40 AM Revision e716c6ee (git): [ruby/rubygems] Replace #9506 with a targeted :ruby_repo skip
The blanket skip in checksums_section from #9506 caused 82 ruby-core test
failures whose lockfile expectations legitimately include the bundler
checksum (paths that go through `bundle install` where bundler is
activated as a gem). Revert...
hsbt (Hiroshi SHIBATA)
03:12 AM Revision 5dcc311f (git): enumerator.c: guard eargs during inspect
dummyx
02:42 AM Revision c649d202 (git): [ruby/rubygems] Skip bundler self-checksum on ruby-core in test
fixtures
(https://github.com/ruby/rubygems/pull/9506)
* Skip bundler self-checksum on ruby-core in test fixtures
In ruby-core test setup, bundler is loaded as a default gem and the
bundler.gem cache file is not present on disk where
Lo...
hsbt (Hiroshi SHIBATA)
02:24 AM Revision 7dda33be (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.75.25 to 2.75.27
- [Release notes](https://github.com/taiki-e...
dependabot[bot]
12:18 AM Revision 88a4764f (git): [ruby/rubygems] Skip bundler self-checksum for unreleased bundlers
(https://github.com/ruby/rubygems/pull/9501)
* Skip bundler self-checksum for unreleased bundlers
Using `Bundler.gem_version.end_with?(".dev")` only skips the own
checksum on master, but patch releases run from a source checkout
(e.g.,...
hsbt (Hiroshi SHIBATA)
12:08 AM Revision d61424bb (git): ZJIT: More recognizable JIT return poison, assert only when RUBY_DEBUG
A good poison value gives a recognizable fault address if someone
erroneously dereferences. Asserting the pointer is not poison shouldn't
be necessary, so move it to RUBY_DEBUG builds.
alanwu (Alan Wu)

04/29/2026

10:24 PM Revision 9f24ba51 (git): ZJIT: Specialize direct sends to methods with post-required positional parameters
Kevin Menard
10:22 PM Revision 62e59f2a (git): ZJIT: Prefer raw pointer over references in with_ruby_vm()
When references show up on in the type declaration, it's an invitation
to think about how long the implicit lifetime is. This code
doesn't do anything tricky lifetime-wise, so it looks better declaring
only raw pointers.
alanwu (Alan Wu)
10:22 PM Revision acbc0ce5 (git): ZJIT: Replace std::mem::transmute with pointer casting
As the documentation puts it, transmute is "incredibly unsafe". We can
express what we need to with pointer casts in these closure FFI
situations, so let's use pointer casts.
alanwu (Alan Wu)
10:22 PM Revision 4d56fc62 (git): YJIT: Replace std::mem::transmute with pointer casting
As the documentation puts it, transmute is "incredibly unsafe". We can
express what we need to with pointer casts in these closure FFI
situations, so let's use pointer casts.
alanwu (Alan Wu)
09:30 PM Revision 072a6a4a (git): Rename `putstring` instruction as `dupstring`
As well as `putchilledstring` as `dupchilledstring`.
This is more consistent with similar `duparray` and `duphash`
instructions and better reflect it's behavior.
byroot (Jean Boussier)
09:11 PM Bug #22009 (Closed): ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: with ASAN and DEBUG enabled build
Oh! Looks like this was already fixed by https://github.com/ruby/ruby/pull/16792 jhawthorn (John Hawthorn)
09:02 PM Bug #22009: ERROR: AddressSanitizer: attempting to call malloc_usable_size() for pointer which is not owned: with ASAN and DEBUG enabled build
That makes sense that this crashes. We're allowing the GC to provide xmalloc and xfree, and in Ruby 4.1dev under debug that has additional padding. We should have an xmalloc equivalent of malloc_usable_size (at least in the one place we ... jhawthorn (John Hawthorn)
08:43 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
For
```ruby
l = -> x, y {
x + y
}
l.call(1)
```
ErrorHighlight shows:
```
test.rb:1:in 'block in <main>': wrong number of arguments (given 1, expected 2) (ArgumentError)
caller: test.rb:5
| l.call(1)
^^^^...
Eregon (Benoit Daloze)
08:35 PM Feature #21998: Add {Method,UnboundMethod,Proc}#source_range
I was curious what's the reported location for `ArgumentError`s caused by lambda parameters and how ErrorHighlight highlights them.
For
```ruby
l = lambda { |x, y|
x + y
}
l.call(1)
```
With `parse.y`, the node (`RubyVM::...
Eregon (Benoit Daloze)
05:58 PM Bug #22016: ruby segfaults regularly
Oh, sorry, you asked for more information:
uname -a was in the original bug report, I'm using NetBSD 11.99.5 on x86_64 (= amd64).
wiz (Thomas Klausner)
05:57 PM Bug #22016: ruby segfaults regularly
Ruby does not compile out of the box for me, I'll attach the build log. I've attached the build log of a plain ruby build outside of pkgsrc, same system.
I don't know why it uses clang by default, 'cc' is gcc 14.3.0.
In case you're i...
wiz (Thomas Klausner)
05:16 PM Bug #22016: ruby segfaults regularly
Can you please provide the output of `lscpu` and/or `uname -a` along with the version of `gcc`? What happens when you install this exact Ruby version without pkgsrc, like from git or a tarball? Thanks. luke-gru (Luke Gruber)
01:13 PM Revision 3f75e999 (git): Bump RDoc to latest master (bc0baee) (#16807)
st0012 (Stan Lo)
12:25 PM Revision f1b2b6ba (git): [ruby/openssl] ssl: refactor SSLSocket#{peer_,}finished_message
The variable-sized alloca makes me nervous, even though it turned out
to be safe: the Finished message is 36 bytes long in SSL 3.0 and is
usually smaller in newer protocol versions. However, the alloca is not
actually needed since we can...
rhenium (Kazuki Yamaguchi)
11:15 AM Revision 686b071a (git): [ruby/openssl] pkcs7: fix error check of PKCS7_SIGNER_INFO_set()
This function returns <=0 on error, not only 0.
This is evident by looking at the implementation where it can return a
negative error here [1]. Use in OpenSSL itself also uses the <=0 check [2].
[1] https://github.com/openssl/openssl/bl...
ndossche
11:08 AM Revision a130f137 (git): [ruby/openssl] asn1: add error checks for ASN1_STRING_set() calls
Other calls in the project have such checks, add it consistently
everywhere to raise an exception in case of an error.
https://github.com/ruby/openssl/commit/ac48b6c8af
ndossche
11:07 AM Revision 97e0add5 (git): [ruby/openssl] hmac: enable tests in the FIPS mode
Fix CI with OpenSSL master in the FIPS mode. With the fips provider in
OpenSSL master, HMAC keys shorter than 112 bits are rejected and MD5 is
disallowed. Update tests to use SHA-2 and longer keys.
https://github.com/ruby/openssl/commit...
rhenium (Kazuki Yamaguchi)
10:12 AM Revision 5fa9c730 (git): Update dependencies
Fix-up for d3ef85a100a4d051fcafc6ef6c09c4faaecc086a. nobu (Nobuyoshi Nakada)
09:59 AM Revision e3fe84d2 (git): [ruby/openssl] x509attr: use sk_ASN1_TYPE_new_reserve()
This should avoid reallocations and prevent the main error condition of
the push call.
https://github.com/ruby/openssl/commit/0966d0466e
ndossche
09:59 AM Revision 801fc083 (git): [ruby/openssl] x509attr: check for errors of sk_ASN1_TYPE_push()
This function returns 0 on error.
https://github.com/ruby/openssl/commit/8ca0afb30a
ndossche
09:56 AM Revision a9cbdceb (git): [ruby/openssl] cipher: fix error checks for EVP_CIPHER_CTX_ctrl()
The return value behaviour isn't explicitly documented for OpenSSL.
For LibreSSL, it says [1]:
> EVP_CIPHER_CTX_ctrl() returns 1 for success or 0 for failure.
> ...
So it appears that we need to check for `<= 0` instead of `!0`.
Further...
ndossche
08:30 AM Bug #22018 (Closed): ISeq created via `RubyVM::InstructionSequence.compile` don't support coverage
Reproduction:
```ruby
require "coverage"
File.write("/tmp/a.rb", <<~RUBY)
module CoverableRaw
def self.call
"cover up"
end
end
CoverableRaw.call
RUBY
Coverage.start
require "/tmp/a.rb"
p Coverage....
byroot (Jean Boussier)
08:02 AM Revision d3ef85a1 (git): [ruby/prism] Fix array-bounds error with GCC 9
* In file included from /usr/include/string.h:535,
from include/prism/internal/arena.h:12,
from src/prism.c:6:
In function 'memset',
inlined from 'lex_mode_push_regexp' at src/prism.c:290:5:
.../...
Eregon (Benoit Daloze)
07:48 AM Revision eadefdd0 (git): Introduce `IO::Buffer#bit_count`. (#16784)
Samuel Williams
02:26 AM Revision 3345854f (git): Add YJIT test for outdated comment
As of Ruby 4.0, the YJIT comment isn't quite correct because we now
store the reference to the `imemo/fields` object inline.
Which means that a Struct of precisely 78 members (max embeddable on
64bit archs) can cohexist in embedded and ...
byroot (Jean Boussier)
02:25 AM Revision 23215de7 (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.75.23 to 2.75.25
- [Release notes](https://github.com/taiki-e...
dependabot[bot]
02:09 AM Revision 493d26dc (git): Reject overflowed repeat/null-check IDs in huge regexps (#16801)
Add explicit errors for excessive range-repeat and null-check IDs;
map new errors in regerror; add regression tests for oversized generated
patterns.
make_now_just (Hiroya Fujinami)
01:06 AM Feature #21871: Add Module#undef_const
> emulate this feature by using autoload :Constant, "file/that/raises/exception".
We also suggested studying the possibility of allowing "autoload blocks":
```ruby
autoload :Constant { raise "Constant shouldn't be accessed from #{...
byroot (Jean Boussier)
 

Also available in: Atom