I agree that the current behavior is a Ractor bug. In fact, this is one of the blockers preventing us from removing the "experimental" warning from Ractor. These variables should be thread-local. The main implementation challenge is h...ko1 (Koichi Sasada)
rb_managed_id_table stores its rb_id_table body as embedded data (RUBY_TYPED_EMBEDDABLE), so managed_id_table_ptr returns a pointer interior to the wrapper object. rb_managed_id_table_foreach, _foreach_values, and _dup hand that interio...ko1 (Koichi Sasada)
Proc#refined memoizes {copied_iseq, cref} per source iseq in a process-global map so the copy can be reused from any Ractor. The cref's refinements table is already frozen and marked shareable for that reason, but the copied iseq and th...ko1 (Koichi Sasada)
Just to confirm: the PR's implementation of `Thread::Backtrace::Location#source_range` seems fragile because it reparses the script from the file system. Is this behavior intentional? I understand the implementation and its current lim...ko1 (Koichi Sasada)
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)
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)