General

Profile

jhawthorn (John Hawthorn)

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

Issues

open closed Total
Assigned issues 20 62 82
Reported issues 4 23 27

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

12/12/2025

10:03 PM Ruby Revision 176e384b (git): Cache filesystem_encindex
jhawthorn (John Hawthorn)
09:53 PM Ruby Revision e7a38b32 (git): Store Encoding#name as an attribute
When debugging the fstring table, I found "UTF-8" to be the most common
interned strings in many benchmarks.
We have a fixed, limited number of these strings, so we might as well permanently
cache their fstrings.
jhawthorn (John Hawthorn)

12/11/2025

11:44 PM Ruby Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
The benchmark from #20816 gets a little more pure results as it only deals with a fast syscall in a loop without Queue communication. I adjusted it slightly.
``` ruby
THREADS = (ARGV.first || 10).to_i # choose thread count from CLI
...
jhawthorn (John Hawthorn)
06:53 PM Ruby Bug #18733: Heavy GC allocations cause performance issue with Ractor
Just to update that though GC is still global more progress has been made. I'm on a new PC, so rerunning the benchmark against the old SHA.
```
❯ ruby -v
ruby 3.5.0dev (2025-07-02T20:01:24Z v4.0.0-preview2~2697 d5f5a56bf2) +PRISM [x...
jhawthorn (John Hawthorn)
06:29 PM Ruby Bug #21607 (Feedback): require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
jhawthorn (John Hawthorn)
06:28 PM Ruby Bug #17878 (Closed): bootstraptest/test_ractor.rb:224 a random failing test with "The outgoing-port is already closed (Ractor::ClosedError)"
It's likely this was fixed by the introduction of Ractor::Port. "The outgoing-port is already closed" isn't a message that can occur anymore (we no longer have outgoing ports) jhawthorn (John Hawthorn)
05:53 PM Ruby Revision 89e09e4d (git): Add assumption to free_vm_weak_references
Help the compiler know that we always get a heap object here. jhawthorn (John Hawthorn)
05:53 PM Ruby Revision 459c3772 (git): Assume result from allocator will be valid
This adds a fastpath in class_call_alloc_func to simply return if the
class matches the one expected.
I think we could probably just remove this check, or move it to the debug
build.
jhawthorn (John Hawthorn)
05:53 PM Ruby Revision 32e6dc0f (git): Speed up class allocator search
This rewrites the class allocator search to be faster. Instead of using
RCLASS_SUPER, which is now even slower due to Box, we can scan the
superclasses list to find a class where the allocator is defined.
This also disallows allocating ...
jhawthorn (John Hawthorn)
12:02 AM Ruby Revision 1c29fbec (git): GC_DEBUG_STRESS_TO_CLASS should only be for debug
I believe this was accidentally left in as part of
2beb3798bac52624c3170138f8ef65869f1da6c0
jhawthorn (John Hawthorn)

Also available in: Atom