General

Profile

alanwu (Alan Wu)

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

Issues

open closed Total
Assigned issues 2 33 35
Reported issues 3 51 54

Projects

Project Roles Registered on
Ruby Committer 03/19/2021

Activity

11/05/2026

12:05 AM Ruby Revision 9573399e (git): ZJIT: Set INSTA_WORKSPACE_ROOT to save ~15ms per snapshot test
Without this it shells out to `cargo metadata` which takes about ~15ms
per snapshot test. The costs add up quickly considering we give each
test a dedicated process. Setting this variable saves ~1.5s in a full
test run on my laptop.
alanwu (Alan Wu)

11/04/2026

08:09 PM Ruby Revision 9f6a9d0a (git): ZJIT: A64: Use STADD for counters when LSE is available
Use a single-instruction relaxed add instead of a retry loop (!) for
counters when Large System Extensions (LSE) are available. For
reference, Apple's M series chips all have LSE.
Implementation is straightforward thanks to Rust's
`is_a...
alanwu (Alan Wu)

11/03/2026

10:38 PM Ruby Revision 70ad14ae (git): ZJIT: Make `side_exit_count` a default counter
Previously, ZJIT required --zjit-stats for showing how many side exits
had been taken. As the first point of contact for ZJIT performance
observability, this info was too hidden, not least because --zjit-stats
has a significant probe eff...
alanwu (Alan Wu)
10:38 PM Ruby Revision 26d140fc (git): ZJIT: Add --zjit-no-exit-counting
alanwu (Alan Wu)

11/02/2026

08:50 PM Ruby Revision b51db981 (git): ZJIT: Bitstream encoding for stack map unwind code (GH-19570)
Use a simple `tag,payload` scheme with a variable length integer scheme
for the opcodes in zjit_jit_frame_t. The integer scheme (`varint`)
uses a set high bit to signal to read more.
This is setup work for having locals in the stack map...
alanwu (Alan Wu)
07:24 PM Ruby Revision 15314737 (git): ZJIT: Fix and then `deny(clippy::useless_conversion)`
alanwu (Alan Wu)
07:24 PM Ruby Revision 36ba2601 (git): ZJIT: Remove identity `as` casts then `deny(clippy::useless_conversion)`
alanwu (Alan Wu)

10/28/2026

07:34 PM Ruby Bug #22481 (Open): `break` in block passed to Method#to_proc cause [BUG] Stack consistency error
```ruby
def m(a) = yield(a)
def run = method(:m).to_proc.(7) { break }
p run
```
Found by fuzzing. Crashes all released versions and on trunk. I haven't investigated a fix.
alanwu (Alan Wu)

10/27/2026

03:15 PM Ruby Bug #22476: rb_profile_frames() called from a signal handler segfaults while vm_make_env_each() is escaping a chain of frames
CC @jhawthorn
This sounds very similar to the issue from https://github.com/ruby/ruby/pull/16615
alanwu (Alan Wu)

10/26/2026

06:13 PM Ruby Feature #22474 (Feedback): Kernel#using (or BasicObject#using)
> However, since any block is a lexical scope, why not allow using in any block?
Seems to be already addressed by #22097.
alanwu (Alan Wu)

Also available in: Atom