General

Profile

jhawthorn (John Hawthorn)

  • Login: jhawthorn
  • Registered on: 12/22/2016
  • Last sign in: 06/26/2026

Issues

open closed Total
Assigned issues 22 70 92
Reported issues 6 30 36

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

06/24/2026

08:02 PM Ruby Feature #22128: C API: Expose RB_OBJ_SET_FROZEN_SHAREABLE
I agree we need to find some way to make up that performance, but since `RB_OBJ_SET_FROZEN_SHAREABLE` is shallow and doesn't verify that referenced objects are shareable, this seems very hard to use safely. Even in the example Trilogy PR... jhawthorn (John Hawthorn)

06/23/2026

08:30 PM Ruby Revision daffaaee (git): Mark most TypedData types as THREAD_SAFE_FREE
Set RUBY_TYPED_THREAD_SAFE_FREE on TypedData types whose dfree function
is trivially safe, and only frees its own memory
Types not yet marked as THREAD_SAFE_FREE:
- id2ref_tbl_type: sets the process-global id2ref_tbl to NULL.
- mutex_da...
jhawthorn (John Hawthorn)
06:50 AM Ruby Revision 300143e0 (git): wbcheck: GC before fork
This isn't essential for correctness, however it's a natural time to
investigate whether the heap is in a correct state.
jhawthorn (John Hawthorn)
06:50 AM Ruby Revision dc16cb05 (git): wbcheck: rb_bug on first error on GC
jhawthorn (John Hawthorn)

06/22/2026

10:57 PM Ruby Feature #22067 (Closed): New RUBY_TYPED_THREAD_SAFE_FREE bit to declare thread safe dfree functions
Applied in changeset commit:git|d44862fe2a5d68de648eccae7743899b6a5c870a.
----------
[Feature #22067] Add RUBY_TYPED_THREAD_SAFE_FREE flag
Lets a TypedData type declare its dfree as thread-safe, so the GC may
run it on any thread, in p...
jhawthorn (John Hawthorn)
10:57 PM Ruby Revision 77a3c15f (git): ZJIT: Remove unused rbimpl_typeddata_flags
We're not using these anymore now that non-typed T_DATA are gone. jhawthorn (John Hawthorn)
10:57 PM Ruby Revision d44862fe (git): [Feature #22067] Add RUBY_TYPED_THREAD_SAFE_FREE flag
Lets a TypedData type declare its dfree as thread-safe, so the GC may
run it on any thread, in parallel, and concurrently with Ruby code.
Implies RUBY_TYPED_FREE_IMMEDIATELY.
jhawthorn (John Hawthorn)

06/17/2026

07:12 AM Ruby Feature #22119: Thread: inherit storage on child threads
It was also initially a surprise to me that Fiber storage is inherited across threads as well.
In my experience, inheritable Fiber storage has mostly been a mistake and cause of bugs, I don't think we should spread that to threads.
...
jhawthorn (John Hawthorn)

06/16/2026

04:43 PM Ruby Revision 7f5909f7 (git): Rename pointer_to_heap_p live_object_p
jhawthorn (John Hawthorn)
04:43 PM Ruby Revision 1128ac4d (git): Only allow garbage_object_p on not-yet-swept objects
jhawthorn (John Hawthorn)

Also available in: Atom