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
The optimizer IR already models get_index/set_index and deterministic AArch64 paths can call their canonical runtime operations, but reducible loop-region lowering previously rejected both. This issue adds a guarded isolated packed-dense path so numeric array loops remain native while every observable or shared case exits or calls canonical VM semantics.
Acceptance
Lower get_index and set_index through loop-region SSA with exact two/three-input staging and precise stack maps.
Direct AArch64 reads guard isolated mode, object/Array brand, ordinary dense storage, absent cold/hole/accessor/attribute state, exact uint32 array index, bounds, and numeric result when required.
Direct existing-index writes preserve assignment result and call the non-allocating GC barrier before mutation; growth and every guard miss use canonical fallback.
Shared realms, arguments/typed/sparse arrays, proxies, restricted receivers, prototype/indexed hooks, holes, invalid keys, OOB, and concurrent mutation never use the unlocked direct path.
Parent: #133
Roadmap: #146, #134
Related: #132, #433
The optimizer IR already models get_index/set_index and deterministic AArch64 paths can call their canonical runtime operations, but reducible loop-region lowering previously rejected both. This issue adds a guarded isolated packed-dense path so numeric array loops remain native while every observable or shared case exits or calls canonical VM semantics.
Acceptance
Landed
a1307097— loop SSA lowering, AArch64 packed-index guards, write barrier, canonical fallback, direct/callback counters, hot-loop, invalidation, and moving-GC differential witnesses.7b706ea2— concise README and optimizing-tier documentation.zig build test -Dtest-filter='optimizer packed index': 5/5 passed.zig build test -Dtsan=true -Dtest-filter='optimizer packed index': 5/5 passed, zero leaks.Append, growth/reallocation specialization, profiling, and broad release gates remain in #133.