General

Profile

jhawthorn (John Hawthorn)

  • Login: jhawthorn
  • Registered on: 12/22/2016
  • Last sign in: 10/21/2025

Issues

open closed Total
Assigned issues 25 57 82
Reported issues 4 23 27

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

10/27/2025

05:33 PM Ruby Bug #21649 (Open): Ractors can access non-shareable object through singleton classes
If we send a non-shareable object into a Ractor, it needs to be copied.
```
❯ ruby -W0 -e 'Ractor.new(p(Object.new)) { |o| p(o) }.join'
#<Object:0x00000001240f8cf8>
#<Object:0x00000001240f8870>
```
However we're able to instead...
jhawthorn (John Hawthorn)

10/21/2025

08:14 PM Ruby Misc #21606: DevMeeting-2025-10-23
* [Misc #21646] Propose Luke Gruber as a Ruby committer (jhawthorn)
* Luke has been fixing bugs in Ractors and elsewhere. Would be helpful if he could merge his own PRs.
jhawthorn (John Hawthorn)

10/20/2025

10:51 PM Ruby Misc #21646 (Closed): Propose Luke Gruber as a Ruby committer
I'd like to propose adding Luke Gruber (@luke-gru) as a Ruby committer.
He's been contributing to CRuby [since 2019](https://github.com/ruby/ruby/commit/ec8e5f5aa64e2a54cf1e303f2b012c98e8d521ba) fixing a variety of bugs and being acti...
jhawthorn (John Hawthorn)

10/16/2025

01:21 AM Ruby Revision 45c01686 (git): Use explicit memory orders in concurrent_set
The atomic load/store operations here should mostly be using
release/acquire semantics. This may lead to better performance than what
we had under the default seq_cst.
On x86 this may make the atomic store of hash faster, as it can avoi...
jhawthorn (John Hawthorn)
12:13 AM Ruby Revision 9e4a7569 (git): Use BUILTIN_TYPE in gc_mark_check_t_none
jhawthorn (John Hawthorn)

10/10/2025

06:09 PM Ruby Revision 0a6cd03b (git): Add ASSERT_vm_locking_with_barrier
Previously we just had a comment stating that the code required a
barrier. Turns out it's not too difficult to properly assert that.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)
05:18 PM Ruby Revision 17a5a5e2 (git): Take a full VM barrier in gc_rest
This isn't (yet?) safe to do because it concurrently modifies GC
structures and dfree functions are not necessarily safe to do without
stopping all Ractors.
If it was safe to do this we should also do it for
gc_enter_event_continue. I d...
jhawthorn (John Hawthorn)

10/05/2025

12:37 AM Ruby Revision 7a4c7eac (git): Add missing write barriers to ibf_load
Found by wbcheck jhawthorn (John Hawthorn)
12:37 AM Ruby Revision b202a1fe (git): Use write barriers when loading catch table
Found by wbcheck jhawthorn (John Hawthorn)

10/03/2025

05:30 PM Ruby Revision 8eaa9eb3 (git): Clear fields on heap RStruct before allocating
Now that we no longer explicitly set the first three elements, we need
to ensure the object is in a state safe for GC before we call
struct_heap_alloc, which may GC.
jhawthorn (John Hawthorn)

Also available in: Atom