General

Profile

ko1 (Koichi Sasada)

  • Login: ko1
  • Registered on: 05/28/2008
  • Last sign in: 09/21/2026

Issues

open closed Total
Assigned issues 62 675 737
Reported issues 15 208 223

Projects

Project Roles Registered on
Ruby Committer 05/28/2008

Activity

09/14/2026

02:37 AM Ruby Revision 46c28536 (git): ractor_sync.c: remove the unused ractor_basket_new_ref()
308677c703 moved the exit tokens over to ractor_basket_new_exit(), which
left this one with no caller. Its comment carried the reason those tokens
cannot push a tag, so that moves to ractor_basket_new_exit().
Co-Authored-By: Claude Opu...
ko1 (Koichi Sasada)

09/13/2026

05:57 PM Ruby Revision ab51d15b (git): GC: fill the stat symbol tables at boot, not on first use
setup_gc_stat_symbols(), setup_gc_stat_heap_symbols() and the symbols
gc_info_decode() decodes were each filled on first use and guarded by
their own first element. That element is also the first one written, so
a second ractor arriving...
ko1 (Koichi Sasada)
05:57 PM Ruby Revision abac51a1 (git): gc: give a Ractor's own objspace a smaller initial heap size
heap_init_bytes is a slot count target applied per objspace, bytes divided
by each heap's slot size: heap_prepare fills a heap up to it before the
first collection, gc_sweep_finish_heap puts a floor under the free slots a
sweep should le...
ko1 (Koichi Sasada)
05:57 PM Ruby Revision a22d46c4 (git): gc: keep the last page of a heap that has been used
A page with nothing live on it leaves its heap for the global empty pages,
and may be returned to the system from there. When it is the heap's only
page the heap is left with none, and nothing grows a heap in that state:
gc_sweep_finish...
ko1 (Koichi Sasada)
05:57 PM Ruby Revision 51f811af (git): gc: count only the Ractor that allocates from an objspace
gc_marks_finish keeps at least heap_free_slots * r_mul slots free, where
r_mul was the number of Ractors allocating from this objspace, capped at
8. Per-Ractor GC replaced that count with the VM-wide one, so every
Ractor's objspace now ...
ko1 (Koichi Sasada)
05:57 PM Ruby Revision 6ca2b168 (git): gc: give RUBY_GC_HEAP_INIT_BYTES a lower bound too
The initial heap size is a slot count target, bytes / slot_size for each
heap, so below one slot in the largest heap heap_prepare never forces that
heap's first page. RUBY_GC_RACTOR_HEAP_INIT_BYTES rejects such values;
RUBY_GC_HEAP_INIT...
ko1 (Koichi Sasada)
05:19 PM Ruby Revision 308677c7 (git): Ractor#monitor: name the ractor in the exit token
A monitoring port received a bare :exited or :aborted, so a port could only
ever watch one ractor: with two, the token that arrived said what happened
but not to which. Watching a group meant a port per ractor and a table
from the port ...
ko1 (Koichi Sasada)
05:19 PM Ruby Revision e3a070a4 (git): Ractor.select: one port for the call, not one per watched ractor
select watched each Ractor through a Port it made for that ractor, and kept
a Hash from the port back to the ractor because a bare exit token did not
say which ractor it was about. Making a port keys it into the ractor's
port table and ...
ko1 (Koichi Sasada)

09/12/2026

05:59 PM Ruby Revision 74d4ed76 (git): Fix flaky TestHash#test_rehash by modelling the AR substitution hint
test_rehash mutates a key until its own `hash_hint` (the low byte of
`Array#hash`) changes, then asserts the stale key no longer hits.
Since 127e903860 "hash.c: add a substition hint", `ar_do_hash_hint()`
maps RHASH_AR_CLEARED_HINT (0x0...
ko1 (Koichi Sasada)

09/11/2026

10:17 PM Ruby Revision 15a43f66 (git): coroutine/ppc64le: save the non-volatile FP and vector registers (#18760)
The ELFv2 ABI makes f14-f31 and v20-v31 callee-saved (OpenPOWER 64-bit
ELF V2 ABI, 2.2.1 Register Roles), but coroutine_transfer saved only
r14-r31, LR and CR. A coroutine resuming from a transfer therefore
sees whatever the other side ...
ko1 (Koichi Sasada)

Also available in: Atom