General

Profile

alanwu (Alan Wu)

  • Login: alanwu
  • Registered on: 10/28/2018
  • Last sign in: 08/04/2026

Issues

open closed Total
Assigned issues 5 28 33
Reported issues 1 49 50

Projects

Project Roles Registered on
Ruby Committer 03/19/2021

Activity

Today

09:19 PM Ruby Revision 3349f410 (git): Filter TracePoint events in test_trace_optimized_methods to current file
Same as test_settracefunc.rb. This should fix flaky CI failures like
https://github.com/ruby/ruby/actions/runs/31826726042/job/94852494689
alanwu (Alan Wu)
07:05 PM Ruby Revision f0edab28 (git): ZJIT: Put stack map details behind `#if USE_ZJIT`
Mainly, to dodge warnings on i686:
../src/zjit.h: In function ‘ZJIT_STACK_MAP_BASE_PTR_STACK_SIZE’:
../src/zjit.h:83:18: warning: right shift count >= width of type [-Wshift-count-overflow]
83 | return entry >> ZJIT_S...
alanwu (Alan Wu)

08/13/2026

09:58 PM Ruby Revision c81bc76f (git): ZJIT: Fix stack map clobbering VM stack due to wrong starting point
Problem: Any C function called after gen_prepare_non_leaf_call() has
the freedom to push values through `cfp->sp`, moving it, and then ask
for a zjit_materialize_frames(). (The C function has to restore
`cfp->sp` before it returns, but i...
alanwu (Alan Wu)

08/10/2026

05:43 PM Ruby Revision d2987892 (git): ZJIT: [DOC] Fix references to non-existent `*lightweight_frame*` identifiers
alanwu (Alan Wu)
05:43 PM Ruby Revision 207e52a8 (git): ZJIT: [DOC] Remove comment and done TODO about lightweight frame
The TODO is done and ZJIT sets `cfp->jit_return` now. As a side benefit,
we now provide higher fidelity PC data to the `rb_profile_frames()`.
alanwu (Alan Wu)

08/05/2026

09:56 PM Ruby Revision 19f5b124 (git): Reintroduce recent PRISM changes
This reverts commit 895084e65bee280bddc36dc31f19ec3a0e80587e.
IRB failures are fixed by 6612731a4ffd41c01e836ed2ffd473d46b685ab1.
alanwu (Alan Wu)
09:44 PM Ruby Revision 8593c2be (git): ZJIT: Add LIR `test_fallthrough_to_a_patchpoint` snapshot tests
alanwu (Alan Wu)
09:44 PM Ruby Revision a540312b (git): ZJIT: Remove nops for PatchPoint too close to start of LIR BB
Previously we put a `nop` at the beginning of a block because any two
`PadPatchPoint` checked for minimum distance. The `PadPatchPoint` inserted
at block boundary isn't itself a patch point position, so when we had:
PadPatchPoint
...
alanwu (Alan Wu)
09:44 PM Ruby Revision ac0e68da (git): ZJIT: Pull end-of-function pad out of RPO loop
I think there was a bug there because it checked for block id while
iterating with reverse-post order. No need to check when we can do it
unconditionally outside the loop. (Do we ever try to compile an empty
assembler?)
alanwu (Alan Wu)
09:44 PM Ruby Revision 69b13f2a (git): ZJIT: Rename `PadPatchPoint` to `PatchPointPad`
Two reasons for this: 1. It's less weird for a pad to be zero width than
for an imperative to pad to not actually pad. 2. PatchPoint is a noun so
its related padding reads better when can only be interpreted as a noun.
alanwu (Alan Wu)

Also available in: Atom