General

Profile

alanwu (Alan Wu)

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

Issues

open closed Total
Assigned issues 4 24 28
Reported issues 1 49 50

Projects

Project Roles Registered on
Ruby Committer 03/19/2021

Activity

02/28/2026

02:29 AM Ruby Revision 4eadf035 (git): ZJIT: Check special_const_p() before using rb_obj_shape_id()
It only works with heap objects. alanwu (Alan Wu)
02:29 AM Ruby Revision 3251792f (git): ZJIT: Fix infinite loop from `make_equal_to(x,y)` where `x=y`
Sometimes it's convenient to write that
`make_equal_to(x, big_decision_tree_to_find_replacement)` where
most of the time the decision tree gives something not equal to `x`.
Since infinite loops are hard to debug and this condition is ea...
alanwu (Alan Wu)

02/27/2026

02:14 PM Ruby Revision 2ecda70f (git): ZJIT: GuardType and GuardTypeNot can read from memory
When guarding on anything but special const forms (`types::Immediate`),
we need to dereference the VALUE to load RBasic::flags and maybe
RBasic::class. Those are memory read effects.
alanwu (Alan Wu)

02/20/2026

04:04 PM Ruby Revision 906176ad (git): ZJIT: zjit-bisect.rb: Pass options with -T for `make test-spec`
It was passing options to the test harness rather than ruby(1). alanwu (Alan Wu)

02/18/2026

03:16 PM Ruby Revision ea7d3eb8 (git): YJIT: Fix always-failing guard for `super()` in BMETHODs
Previously, when dealing with a `super()` nested in a block that runs as
a method (through e.g. `define_method`), YJIT generated a guard that
never passes leading to a misidentification of the callsite as
megamorphic and an unconditional...
alanwu (Alan Wu)
03:16 PM Ruby Revision 219ad682 (git): ZJIT: Don't specialize `super` from within a block
As we found out from YJIT, `super` from within a block needs a loop for
the running CME guard, and the current LEP based guard always fails.
Don't specialize for now so we use the fallback instead of side-exiting.
alanwu (Alan Wu)

02/13/2026

05:05 PM Ruby Feature #21878: More file types: DOOR, PORT, WHITEOUT
Solaris mentioned, so I'm bringing up illumos. Ruby has an [OpenIndiana](https://www.ruby-lang.org/en/documentation/installation/#openindiana) port, so this could be tested there :P
https://illumos.org/man/3C/door_create
alanwu (Alan Wu)

01/29/2026

08:30 PM Ruby Revision cfa3a4a7 (git): ZJIT: Make printout and identifier name consistent for `Guard{AnyBit,NoBits}Set`
alanwu (Alan Wu)

01/21/2026

12:42 AM Ruby Revision 36809a8d (git): ZJIT: Add fail-fast assert for non-register {cpush,cpop}_pair
There is no splitting for these so let's add a assert to try and catch
misuse. VRegs are not necessarily registers in the end, so this is best
effort. In those situations they'll get a less proximate panic message.
alanwu (Alan Wu)

01/20/2026

09:37 PM Ruby Revision 631a5076 (git): ZJIT: Delete Insn::CPushAll and Insn::CPopAll
Since we automatically preserve registers across calls, it's never
necessary to manually and imprecisely do it with `C{Push,Pop}All`.
Delete them to remove the maintenance burden and reduce confusion.
alanwu (Alan Wu)

Also available in: Atom