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