General

Profile

ko1 (Koichi Sasada)

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

Issues

open closed Total
Assigned issues 77 653 730
Reported issues 14 206 220

Projects

Project Roles Registered on
Ruby Committer 05/28/2008

Activity

07/15/2026

11:29 PM Ruby Revision faa3cc8c (git): Fix Ractor move source husk breaking compaction slot size invariant
When an object is moved to another Ractor with `Ractor.send(obj, move: true)`,
the moved-out source is neutralized into a RactorMovedObject husk by move_leave.
The husk stays in the object's original, possibly larger, slot, but its shape...
ko1 (Koichi Sasada)
09:56 PM Ruby Revision 5167ab8a (git): set RUBY_DEBUG_TEST_NO_REMOTE=1 for debug.gem
to skip remote connection tests. ko1 (Koichi Sasada)
01:59 AM Ruby Revision 849d9d6e (git): Relax vm_cc_cme/vm_cc_call assertions under multi-ractor, extension-safely
Same relaxation as PR #17873: another ractor can invalidate a cc
(klass = Qundef) while a call using it is in flight; cme_/call_ stay
intact, so the call proceeds with the method resolved before the
redefinition (same treatment as vm_cc_...
ko1 (Koichi Sasada)

07/14/2026

07:57 PM Ruby Revision 39564b89 (git): dtoa.c: load the 5-powers cache pointers atomically
pow5mult's b_cache publishes new cache nodes with ATOMIC_PTR_CAS (release),
but both readers -- the fast-path check and the recheck before allocating --
were plain loads racing with that CAS: a data race in the C11 sense, and
what TSan r...
ko1 (Koichi Sasada)
07:56 PM Ruby Revision be2a2eea (git): Relax opt_getconstant_path IC assertion under multi-ractor
rb_vm_opt_getconstant_path() asserts on an inline constant cache hit that
the cached value equals a freshly recomputed constant chain:
VM_ASSERT(val == vm_get_ev_const_chain(ec, segments));
On a non-main ractor an IC hit is only al...
ko1 (Koichi Sasada)
08:32 AM Ruby Revision 7c6a3088 (git): Add a stress test for a thread terminating during a compaction barrier
Exercises a short-lived thread terminating while another Ractor drives
GC.compact barriers, the scenario fixed by the previous commits.
Skipped when the GC does not implement compaction (e.g. MMTk).
Co-Authored-By: Claude Opus 4.8 (1M c...
ko1 (Koichi Sasada)
08:32 AM Ruby Revision c2992bbd (git): Reset the Ractor barrier state in the child after fork
A fork taken while the parent holds the VM barrier (e.g. rb_gc_before_fork)
leaves the child with barrier_waiting set and a barrier owner that no longer
exists, so the next barrier in the child could never complete. Reset the
barrier fie...
ko1 (Koichi Sasada)
08:32 AM Ruby Revision 6a098a07 (git): Assert the serial-epilogue ordering invariants
Encode the safety argument of the epilogue reorder as VM_ASSERTs: a
non-last dying thread still owns its scheduler slot when it leaves the
living set (its VM-lock work stays a counted running thread), and the
last thread's reverse order ...
ko1 (Koichi Sasada)
08:32 AM Ruby Revision fc6ff6fb (git): ractor: guard the port VALUE across receive/send
ractor_port_receive/send derive a raw 'struct ractor_port *rp' from self's
embedded (RUBY_TYPED_EMBEDDABLE) data and keep using it across a GC
safepoint: receive parks, and send allocates the basket. self is only kept
alive movably (rb_g...
ko1 (Koichi Sasada)
08:32 AM Ruby Revision d418ff68 (git): Add a test for forking while other Ractors are alive
Forking with live Ractors takes a VM barrier in the parent and the child
inherits scheduler/barrier state that must be reset. General regression
coverage for the parent-side fork barrier and the child teardown, checking
the surviving Rac...
ko1 (Koichi Sasada)

Also available in: Atom