General

Profile

ko1 (Koichi Sasada)

  • Login: ko1
  • Registered on: 05/28/2008
  • Last sign in: 10/14/2026

Issues

open closed Total
Assigned issues 61 679 740
Reported issues 15 208 223

Projects

Project Roles Registered on
Ruby Committer 05/28/2008

Activity

Today

12:09 AM Ruby Feature #22441: Add Ractor#alive?
Matz approved it. ko1 (Koichi Sasada)

10/07/2026

10:59 PM Ruby Bug #22406: Process.fork can leave the child unable to resolve hostnames: getaddrinfo helper threads take glibc's resolver lock after releasing the fork lock
surveyed by claude code:
`getnameinfo` has the same problem, and neither PR covers it.
glibc's `getnameinfo` also attaches the per-thread resolver state (`_res.nscount` becomes 1 even when the name is found in /etc/hosts). The `do_...
ko1 (Koichi Sasada)
06:40 AM Ruby Feature #22395: RubyVM::InstructionSequence.load_from_binary: to optionally accept `file` and `path` arguments
Matz approved this proposal.
No objection in dev-meeting.
ko1 (Koichi Sasada)

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 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)

Also available in: Atom