General

Profile

jhawthorn (John Hawthorn)

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

Issues

open closed Total
Assigned issues 25 70 95
Reported issues 6 30 36

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

07/02/2026

08:20 PM Ruby Feature #22135: Remove obsolete `ObjectSpace#_id2ref`
+1 I would love to see this gone, we have to do a fair bit of work in the GC and elsewhere to maintain the id2ref table. jhawthorn (John Hawthorn)
08:04 PM Ruby Revision f289b0d6 (git): Specify attr! leaf on some ractor.rb functions
These are all simple getters which don't allocate or raise exceptions.
We can declare them as a leaf and skip pushing frames inside YJIT/ZJIT.
jhawthorn (John Hawthorn)

06/30/2026

05:41 PM Ruby Revision 6ac3a3f2 (git): Use BOP for calling freeze in make_shareable
This makes sharing String, Array, and Hash objects faster. jhawthorn (John Hawthorn)
05:41 PM Ruby Revision a99aaffb (git): Convert Time to declarative marking
jhawthorn (John Hawthorn)

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

Also available in: Atom