General

Profile

jhawthorn (John Hawthorn)

  • Login: jhawthorn
  • Registered on: 12/22/2016
  • Last sign in: 11/24/2025

Issues

open closed Total
Assigned issues 22 61 83
Reported issues 4 23 27

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

11/25/2025

09:48 PM Ruby Revision 4263f1d7 (git): Store fiber serial as Ractor-local
jhawthorn (John Hawthorn)

11/21/2025

08:43 AM Ruby Revision 5f5da2c2 (git): Fix stdatomic case in rbimpl_atomic_u64_fetch_add
This was failing on crossruby, likely because HAVE_GCC_ATOMIC_BUILTINS
was true, but HAVE_GCC_ATOMIC_BUILTINS_64 was false. We probably should
have feature detection of 64-bit stdatomics like we do for GCC, but for
now let's keep rbimpl_...
jhawthorn (John Hawthorn)

11/20/2025

10:06 PM Ruby Revision ff1d23ec (git): Use a serial to keep track of Mutex-owning Fiber
Previously this held a pointer to the Fiber itself, which requires
marking it (which was only implemented recently, prior to that it was
buggy). Using a monotonically increasing integer instead allows us to
avoid having a free function a...
jhawthorn (John Hawthorn)
10:05 PM Ruby Revision 9b87a0b9 (git): Fix missing write barrier on namespace classext
Found by wbcheck
It seems like here the classext was associated with the class, but it
already had Ruby objects attached.
rb_gc_writebarrier_remember works around that issue, but I suspect if we
enabled autocompaction the values copied...
jhawthorn (John Hawthorn)
01:24 AM Ruby Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
@jpl-coconut Please do! This seems like a really good demonstration of the issue and a good start on addressing it. The change is a lot smaller than I expected it to be ❤️. We would only make performance improvements like this to the `ma... jhawthorn (John Hawthorn)

11/19/2025

10:27 PM Ruby Revision 4e1f20fe (git): [ruby/error_highlight] Fix prism_spot_def_for_name for singletons
Previously calling a singleton method with invalid arguments would give:
RuntimeError: Incompatible locations
This is because `join` wants the operator to come before the location
https://github.com/ruby/error_highlight/commit/449...
jhawthorn (John Hawthorn)
01:02 AM Ruby Revision 1f299dd3 (git): Fix crash in optimal size for large T_OBJECT
Previously any T_OBJECT with >= 94 IVARs would crash during compaction
attempting to make an object too large to embed.
jhawthorn (John Hawthorn)

11/17/2025

09:28 PM Ruby Revision 7482835d (git): Avoid spawning thread for trivial getnameinfo calls
When calling getnameinfo we spawn a thread because it may do a slow,
blocking reverse-DNS lookup. Spawning a thread is relatively fast (~20µs
on my Linux machine) but still an order of magnitude slower than when
getnameinfo is simply tra...
jhawthorn (John Hawthorn)

11/16/2025

11:23 PM Ruby Revision bdeee701 (git): Avoid allocating intermediate string in zone_str
jhawthorn (John Hawthorn)

11/14/2025

06:07 PM Ruby Revision 0b559eab (git): YJIT: Fix stack handling in rb_str_dup
Previously because we did a stack_push before ccall, in some cases we
could end up pushing an uninitialized value to the VM stack when
spilling regs as part of the ccall.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)

Also available in: Atom