[Go to site: main page, start]

General

Profile

ko1 (Koichi Sasada)

  • Login: ko1
  • Registered on: 05/28/2008
  • Last sign in: 08/03/2026

Issues

open closed Total
Assigned issues 80 653 733
Reported issues 16 206 222

Projects

Project Roles Registered on
Ruby Committer 05/28/2008

Activity

Today

05:23 AM Ruby Misc #22221: DevMeeting-2026-08-06
* [Feature #22226] Ractor: class/module ownership -- restrict modification to the Ractor that created it (ko1)
* This proposal reduce the exceptions. In most case, there are no problem.
* [Feature #22227] Per-Ractor GC: collect each ...
ko1 (Koichi Sasada)
05:20 AM Ruby Feature #22227 (Open): Per-Ractor GC: collect each Ractor's heap locally, stop the world only when needed
Companion PR: https://github.com/ruby/ruby/pull/18194
---
## Abstract
This proposal makes the default GC operate per Ractor. Each Ractor owns an
objspace (a private heap) and collects it on its own thread without stopping
any...
ko1 (Koichi Sasada)

08/03/2026

08:54 PM Ruby Feature #22226 (Open): Ractor: class/module ownership -- restrict modification to the Ractor that created it
## Abstract
Every class/module records the Ractor that created it as its *owner*. Only the owner Ractor
can modify it. Reading is unchanged and allowed from any Ractor.
This replaces several ad-hoc "main Ractor only" rules with a ...
ko1 (Koichi Sasada)
06:46 PM Ruby Revision 54c7fd12 (git): Raise instead of crashing when a non-T_DATA object is not shareable
make_shareable_check_shareable() assumes allow_frozen_shareable_p() can
only fail for T_DATA and dereferences RTYPEDDATA_TYPE() right after the
check. The VM_ASSERT documenting that assumption is compiled out in a
release build, so maki...
ko1 (Koichi Sasada)
06:46 PM Ruby Revision 80e57a11 (git): Make IO objects unshareable
A frozen IO used to pass Ractor.make_shareable, but the result is not
useful and not sound:
* Almost nothing works on it. read, gets, seek, eof? and sync= all
raise FrozenError because they update the buffered state in rb_io;
only ...
ko1 (Koichi Sasada)
07:04 AM Ruby Revision 95b02c82 (git): gc/default: make stress GC honor gc_allowed in TRY_WITH_GC
TRY_WITH_GC guards its retry-GC branch with gc_allowed (which reflects
the current ractor's malloc_gc_disabled, set while a ractor lock is
held), but called objspace_malloc_gc_stress() unconditionally. Under
GC.stress, a malloc inside a...
ko1 (Koichi Sasada)
03:32 AM Ruby Revision dca45c25 (git): compile.c: pass the new operand ci to the write barrier, not the INSN
The splat rebuild in compile_massign_lhs passes the arena-allocated INSN
(iobj) to RB_OBJ_WRITTEN (since f2286925f0). iobj is not a heap object,
so the barrier touches the page it happens to land on, which is
undefined. It is harmless ...
ko1 (Koichi Sasada)
03:26 AM Ruby Revision e59558c4 (git): Fix operand in the update_global_event_hooks assertion
The assertion for change_c_events < 0 compares ruby_vm_c_events_enabled
against -change_iseq_events instead of -change_c_events, so it fires on
a normal case where the iseq-event decrement happens to exceed the
number of enabled C events...
ko1 (Koichi Sasada)

07/30/2026

03:30 AM Ruby Bug #22216: Regexp backref and IO lastline are incompatible with Ractor
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)

07/29/2026

07:20 PM Ruby Revision 8ebf16fa (git): id_table.c: keep managed id table live across foreach/dup callbacks
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)

Also available in: Atom