General

Profile

peterzhu2118 (Peter Zhu)

  • Login: peterzhu2118
  • Email: peter@peterzhu.ca
  • Registered on: 08/01/2020
  • Last sign in: 08/26/2026

Issues

open closed Total
Assigned issues 2 31 33
Reported issues 2 79 81

Projects

Project Roles Registered on
Ruby Committer 03/24/2021

Activity

Today

03:51 AM Ruby Revision d571f80b (git): Stop incrementing the JIT call counter when not compiled
When we run out of JIT memory, we don't compile the iseq, so jit_entry
will be forever NULL. This means that the JIT call counters (jit_entry_calls
and jit_exception_calls) will continue to increase on every call. This
is bad for copy-on...
peterzhu2118 (Peter Zhu)
03:51 AM Ruby Revision d039466b (git): Introduce rb_zjit_compiling_p/rb_yjit_compiling_p
peterzhu2118 (Peter Zhu)

08/29/2026

05:17 AM Ruby Revision fcbdc207 (git): Dynamically derive base_label in iseq
base_label isn't used very often in iseq and we can dynamically derive it
from the label (of the current iseq or the local_iseq). We can remove this
field to save 8 bytes.
peterzhu2118 (Peter Zhu)

08/28/2026

01:23 PM Ruby Revision 16de6937 (git): Remove wrapper field in iseq
We keep a singleton of iseq wrappers (RubyVM::InstructionSequence). However,
this is rarely used and causes 8 bytes to be wasted on all iseq objects.
Since we now have the 32-byte slot size in the default GC, we can save that
memory.
peterzhu2118 (Peter Zhu)

08/27/2026

11:15 PM Ruby Misc #22272: Propose Kevin Menard (@nirvdrum) as a core committer
+1 Kevin's got a lot of experience with TruffleRuby that can help improve CRuby peterzhu2118 (Peter Zhu)
11:10 PM Ruby Revision 91582950 (git): Unify jit_payload in iseq_constant_body
We cannot have YJIT and ZJIT enabled at the same time, so we can use a
single jit_payload pointer in iseq_constant_body to reduce the size by
8 bytes.
peterzhu2118 (Peter Zhu)
11:57 AM Ruby Revision aa30b601 (git): Reduce memory usage of rb_id_table
On 64-bit systems, we used 4 bytes to determine if there is a collision
in the entry. This is a waste because it only needs 1 bit.
This commit separates each item in rb_id_table into three parts: items
(8 byte elements), keys (4 byte el...
peterzhu2118 (Peter Zhu)
11:57 AM Ruby Revision 14a257cf (git): Combine items, keys, collision_table in rb_id_table
peterzhu2118 (Peter Zhu)
04:25 AM Ruby Revision b4322d90 (git): Fix reference update bug in iseq_scan_bits
In iseq_scan_bits, we only update original_iseq if the element at code
moved. However, this isn't correct as it's possible that code has already
gotten updated but not original_iseq. This will cause original_iseq to not
get updated.
peterzhu2118 (Peter Zhu)
02:25 AM Ruby Revision c56fa940 (git): Don't record EP escape in JIT when not enabled
We shouldn't record JIT information before the JIT is actually enabled.
This change doesn't seem to affect ZJIT or YJIT performance beyond the
margin of error:
ZJIT:
-------------- ------------ ------------ --------------...
peterzhu2118 (Peter Zhu)

Also available in: Atom