You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
codegen: reconcile the root-spill threshold (#8623, 32M) with the RS4GC instruction budget (#8586, 1.57M) — budget-gap functions get refused instead of spilled #8679
Since a function's added instructions ≈ its relocation estimate, a function whose estimate lands in (1.57M, 32M) does not spill (estimate < 32M) yet overruns the budget (post-rewrite > 1.57M) → the budget assertion hard-refuses the whole module.
Concrete case
Compiling the Claude Code cli.js 2.1.112 bundle, __AnonShape_ec12be8bd7b0a2b9_constructor (a large closed-shape object-literal constructor) grew 34,009 → 2,280,128 instructions under RS4GC — above the 1.57M budget, below the 32M spill threshold — and was refused. It only compiled with PERRY_ROOT_SPILL_RELOCATIONS=1500000. (Estimate accuracy for this shape is fixed by #8678, which counts property/index stores; but even with an accurate ~2.25M estimate it still won't spill at the 32M default.)
Activity
fix(codegen): retry oversized RS4GC functions with shadow roots, and …
fix(codegen): a late shadow-frame spill pushes the frame before the e…