jhawthorn (John Hawthorn)
- Login: jhawthorn
- Registered on: 12/22/2016
- Last sign in: 03/05/2026
Issues
| open | closed | Total | |
|---|---|---|---|
| Assigned issues | 21 | 66 | 87 |
| Reported issues | 4 | 24 | 28 |
Projects
| Project | Roles | Registered on |
|---|---|---|
| Ruby | Committer | 11/25/2021 |
Activity
Today
-
05:17 AM Ruby Revision 153fa859 (git): objspace_dump: Skip invalid CME when dumping CCs
- When a CC is invalidated only the klass field is set to 0. After it's
invalidated it isn't safe to access the CME, as it may have been freed.
I made a similar change in Ruby 4.0 in
640a2f1dc77c0ecf226dbd71cf7a1eb876a1f037, but assumed i...
03/05/2026
-
07:08 PM Ruby Revision 33e5d389 (git): Map M:N thread stack chunks initially as PROT_NONE
- Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard page to PROT_NONE the first
time a new thread stack is needed. Usually that's okay as we don't touch
that memory until it is needed and so i... -
07:03 PM Ruby Bug #21944 (Closed): "Cannot allocate memory" with M:N threads or Ractors on a low RAM Linux machine
- Applied in changeset commit:git|407dd02c1b52b05ba55a179554b29a14e44a4b82.
----------
Map M:N thread stack chunks initially as PROT_NONE
Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard pa... -
06:32 PM Ruby Bug #21944 (Closed): "Cannot allocate memory" with M:N threads or Ractors on a low RAM Linux machine
- Linux default overcommit policy (`vm.overcommit_memory=0`) will fail for allocations which are "obvious overcommits" (https://www.kernel.org/doc/html/latest/mm/overcommit-accounting.html). Under M:N threading (including under Ractors) we...
-
07:03 PM Ruby Revision 407dd02c (git): Map M:N thread stack chunks initially as PROT_NONE
- Previously we initially mapped the full 512MB chunk as
PROT_READ|PROD_WRITE and then set a guard page to PROT_NONE the first
time a new thread stack is needed. Usually that's okay as we don't touch
that memory until it is needed and so i...
03/03/2026
-
11:53 PM Ruby Revision 2be717ae (git): Shrink struct rb_callinfo to 32 bytes
- This shouldn't do anything right now under the default GC, but in the
future (or now on MMTK?) this would allow them to be allocated from a
smaller size pool.
02/26/2026
-
04:26 PM Ruby Revision 8eab3172 (git): Convert cc_refinement_table into TypedData object
- This converts the cc_refinement_table in the VM into a standard
TypedData object using rb_gc_declare_weak_references to allow it to be
.
This allows us to store all the refinements in a flat array, and simply
remove them as that are GC'... -
04:26 PM Ruby Revision 4455fdc2 (git): Mark callcache as !needs_cleanup_p
02/25/2026
-
09:19 PM Ruby Revision b3a1286d (git): Avoid duplicate struct name in rb_raw_obj_info
- Previously we printed the struct name of T_DATA both in
rb_raw_obj_info_buitin_type and in rb_raw_obj_info_common via type_name.
02/24/2026
-
11:53 PM Ruby Revision c5d85d5a (git): Improve error message failing to copy proc
- Previously, when passing an unshareable proc to a Ractor we would get
the message:
'Ractor.new': allocator undefined for Proc (TypeError)
With this change we get:
'Ractor.new': can not copy unshareable object #<Proc:0x00007f1b...