General

Profile

jhawthorn (John Hawthorn)

  • Login: jhawthorn
  • Registered on: 12/22/2016
  • Last sign in: 10/29/2026

Issues

open closed Total
Assigned issues 17 88 105
Reported issues 6 37 43

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

Today

03:35 AM Ruby Revision 3c6a1c7a (git): Store all encoding-specific variants of regex
Previously, on a Regexp without a fixed encoding (which is most common),
we would recompile and overwrite the compiled regex. This meant that if
we flip-flopped between two or more encodings we would need to
continuously recompile the sa...
jhawthorn (John Hawthorn)

10/30/2026

01:44 AM Ruby Revision ccb92217 (git): Don't write str2's code range back in rb_str_buf_append
Since rb_enc_str_coderange(str2) is called first, str2_cr is never
UNKNOWN and rb_enc_cr_str_buf_cat returns it unchanged, so writing it
back to str2 is redundant. It is also an unsynchronized write to str2,
which may be a frozen string ...
jhawthorn (John Hawthorn)
12:01 AM Ruby Bug #22451 (Closed): Coderange may be set incorrectly when concatenating a string into itself
Applied in changeset commit:git|b740f7d553e6ee4abdff8847760394b4e6ea389c.
----------
Don't write str2's code range back in rb_str_buf_append
Since rb_enc_str_coderange(str2) is called first, str2_cr is never
UNKNOWN and rb_enc_cr_str_b...
jhawthorn (John Hawthorn)
12:01 AM Ruby Revision b740f7d5 (git): Don't write str2's code range back in rb_str_buf_append
Since rb_enc_str_coderange(str2) is called first, str2_cr is never
UNKNOWN and rb_enc_cr_str_buf_cat returns it unchanged, so writing it
back to str2 is redundant. It is also an unsynchronized write to str2,
which may be a frozen string ...
jhawthorn (John Hawthorn)

10/29/2026

11:59 PM Ruby Revision 14733af5 (git): Fix missed write barrier when duplicating a box classext's m_tbl
Since 44fff96b0b (Attach a box classext to its class before filling it in)
the half-built classext is reachable by the GC while it is being filled,
but the new m_tbl was only stored on it once it was complete, and for an
ICLASS the GC on...
jhawthorn (John Hawthorn)
11:25 PM Ruby Revision d5d40d27 (git): Cache refined &:sym funcs only in the owning Ractor's table
Under refinements, vm_caller_setup_arg_block caches the func it makes for
`&:sym` in the cref's refinements table. The cref belongs to whichever
Ractor ran `using`, usually main, but any Ractor calling a method defined
there reached the ...
jhawthorn (John Hawthorn)

10/21/2026

11:48 PM Ruby Feature #22441 (Closed): Add Ractor#alive?
Applied in changeset commit:git|f609897fa4478f6116e6d30009e956c79ff7a186.
----------
Add Ractor#alive?
Matches Thread#alive? and Fiber#alive?. Returns false once the ractor's
result has been recorded. Reads sync.legacy under the ractor...
jhawthorn (John Hawthorn)
11:48 PM Ruby Revision f609897f (git): Add Ractor#alive?
Matches Thread#alive? and Fiber#alive?. Returns false once the ractor's
result has been recorded. Reads sync.legacy under the ractor lock, as
Ractor#monitor does, so it cannot race with termination.
[Feature #22441]
jhawthorn (John Hawthorn)
11:40 PM Ruby Revision 2500ab06 (git): Don't call rb_add_method with the VM lock held when refining
Defining a method in a refinement makes rb_method_entry_make (VM lock held)
add an entry to the refined class by calling rb_add_method. rb_add_method must
be called without the VM lock: it asserts that, and emits warnings, which can
run ...
jhawthorn (John Hawthorn)
07:01 PM Ruby Revision b4ae8a71 (git): Skip Dir.scan device specs when readdir reports DT_REG
jhawthorn (John Hawthorn)

Also available in: Atom