General

Profile

alanwu (Alan Wu)

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

Issues

open closed Total
Assigned issues 6 28 34
Reported issues 1 50 51

Projects

Project Roles Registered on
Ruby Committer 03/19/2021

Activity

09/18/2026

06:16 PM Ruby Revision a19a922f (git): YJIT: ZJIT: Abort faster when mmap(2) persistently fails in rb_jit_reserve_addr_space()
Previously, the loop condition checked the wrong direction so required
wrapping around the address space to break out the loop. It takes
a few seconds to do a few million mmap calls to loop around and then crash.
A way to test this is by...
alanwu (Alan Wu)

09/14/2026

08:16 PM Ruby Bug #22253: Clang UBSan reports NULL/0 memcpy for eval scope locals
Still worth fixing, but I think on the ruby side we do `#define memcpy ruby_nonempty_memcpy` exactly to avoid this UB.
``` c
/* At least since 2004, glibc's <string.h> annotates memcpy to be
* __attribute__((__nonnull__(1, 2))). Howev...
alanwu (Alan Wu)

09/11/2026

06:42 PM Ruby Revision 7c66bea5 (git): YJIT: Stop referencing GC internal constant in a WB test
This way it works on MMTk. The voodo tied to default GC details for
promotions and write-barriers don't test effectively on any other GC but
at least the test completes.
alanwu (Alan Wu)
06:27 PM Ruby Revision 0c7c2107 (git): YJIT: Skip btests that assume default GC on MMTk
alanwu (Alan Wu)
01:33 PM Ruby Revision a0f1aa88 (git): ZJIT: s/side_exit_size/side_exit_size_bytes/ for consistency
Other code size metrics such as `code_region_bytes` use the `_bytes`
suffix and `side_exit_size` was the odd one out.
alanwu (Alan Wu)

09/10/2026

08:01 PM Ruby Bug #22303 (Closed): EncodingError from interpolating symbol crashes whole process
commit:5831948a66412922e1abafd2c38fd6400e420581
The `intern` instruction has been incorrectly marked `leaf=true` for a long time (3.3 through trunk) and its stack canary check crashes the whole runtime process.
The crash reliably h...
alanwu (Alan Wu)

09/09/2026

09:25 PM Ruby Revision 81048db3 (git): YJIT: ZJIT: For init-time mmap failure, use abort() instead of rb_bug()
It's not a bug to be out of memory. Though, the code did have a separate
bug: perror() can fail to write to stderr and set `errno` which made
the check that followed it questionable. When perror() succeeds it
could clobber `errno` anyway...
alanwu (Alan Wu)

09/01/2026

08:47 PM Ruby Revision 18ef46d7 (git): ZJIT: Drop `PartialEq` from `FrameState`
No one was actually doing equality comparison on `FrameState`s and it
was only derived because `FrameState` was in `ParseError::StackUnderflow`.
No one was reading the `FrameState` out of `StackUnderflow` either.
Save some binary size.
alanwu (Alan Wu)
03:35 PM Ruby Revision 4f53e5d5 (git): ZJIT: Skip failing `test_specialize_inlined_megamorphic_receiver`
I tried fixing the test for a bit but it's not clear to me what the test
expects. Skip for now; I've pinged the author.
alanwu (Alan Wu)

08/20/2026

09:32 PM Ruby Revision ba269a0e (git): ZJIT: Refine "same register" constraint for stp_pre and stp_post
Follow-up to 64b9d2f84ec56278e32fff23e1b6cd20e04f8a9f. The commit removed the
check completely, because the conditions were incorrect, but there are in fact
situations where the instruction is unpredictable, namely when the pre/post
inde...
alanwu (Alan Wu)

Also available in: Atom