General

Profile

jhawthorn (John Hawthorn)

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

Issues

open closed Total
Assigned issues 17 87 104
Reported issues 8 35 43

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

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)
07:01 PM Ruby Feature #21800: `Dir.scan` to list directory entires with their type
I found one awkward issue with this: `dirent.d_type` doesn't necessarily agree with `stat`.
I've been using rootless podman on my linux machine and rather than having all of `/dev` be a filesystem, it specifically mounts the few devices...
jhawthorn (John Hawthorn)
06:46 PM Ruby Revision c092fd85 (git): Flush the current Ractor's stdout/stderr before spawning
prefork() flushed rb_stdout and rb_stderr, which are the main Ractor's IOs.
From another Ractor that takes the write_lock of an IO the Ractor does not
own. When a main Ractor thread holds it (any thread logging to $stdout will
do), the s...
jhawthorn (John Hawthorn)

10/20/2026

08:19 AM Ruby Bug #22434 (Closed): "No live threads left. Deadlock?" when running system() or spawn in Ractors
Applied in changeset commit:git|28f2eae4cf7681be36c3011a423154e45d21721c.
----------
Flush the current Ractor's stdout/stderr before spawning
prefork() flushed rb_stdout and rb_stderr, which are the main Ractor's IOs.
From another Ract...
jhawthorn (John Hawthorn)
08:18 AM Ruby Revision 28f2eae4 (git): Flush the current Ractor's stdout/stderr before spawning
prefork() flushed rb_stdout and rb_stderr, which are the main Ractor's IOs.
From another Ractor that takes the write_lock of an IO the Ractor does not
own. When a main Ractor thread holds it (any thread logging to $stdout will
do), the s...
jhawthorn (John Hawthorn)

10/18/2026

08:43 AM Ruby Feature #22446: Speed up several core methods in Array, Range, String, Integer, Float and Time
sferik (Erik Berlin) wrote in #note-9:
> `Rails.cache` stores them with Marshal
Are you able to use `config.cache_store = :memory_store, { serializer: :message_pack }`? Alternatively you could make a wrapper class where `dump`/`load`...
jhawthorn (John Hawthorn)

10/16/2026

09:55 PM Ruby Bug #22451 (Open): Coderange may be set incorrectly when concatenating a string into itself
```ruby
s = "\x81\x30".force_encoding("GB18030")
#=> "\x810"
s.valid_encoding? # This is invalid
#=> false
(s + s).valid_encoding? # However it becomes valid when repeated
#=> true
(s << s).valid_encoding? # But concat assumed the...
jhawthorn (John Hawthorn)

Also available in: Atom