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
-
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.
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
... -
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... -
06:29 PM Ruby Bug #21607 (Feedback): require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
-
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)
-
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.
-
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. -
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 ... -
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