Skip to content

regression(main): wolf-ecs-shaped nested subclass loops lost their versioned fast clones (packed-guard sites 3 → 0) #9106

Description

@proggeramlug

Symptom

On main f3f405271c (and 744df26d8e), the issue_8690_loop_versioned_arraylike case read_only_loops_have_preheader_proofs_and_fallback_free_fast_blocks fails its shape assertion: scan()'s IR contains 0 js_packed_arraylike_loop_guard( sites where 3 are expected — the outer fast/slow copies no longer own preheader-versioned inner loops. issue_8773_closure_capture_packed_loops fails 1 case the same way. Program output stays correct; the flagship nested-subclass-loop shape silently runs at generic-loop speed.

Window

Both suites were green on macOS at 8b40634abd (the #9071 replay) and fail at f3f405271c. The window contains the packed/versioned-loop landings #9070 (versioned length-bound hoist), #9084 (read admissions), #9091 (unboxed accumulators), plus #9075/#9080/#9085. The shape gates were doing their job — this was caught only because an unrelated branch ran the full battery.

Repro

cargo test -p perry --test issue_8690_loop_versioned_arraylike

(macOS; needs the default-target libperry_runtime.a — on a fresh box cargo build -p perry-runtime-static first, and note the suite fails in ~0.5s with an archive-mismatch harness error otherwise, which is NOT this regression.)

Notes

The fixture is the wolf-ecs Query extends Array / Archetype extends Array nested scan — the exact shape the ECS campaign optimized to 2.3×/1.5× of node, so this likely walks back part of that standing until fixed. Independent of PR #9105 (verified by running both suites on detached main in the same worktree).

Reported by the ECS/ops perf campaign, session https://claude.ai/code/session_019WVcWKmYsUBnnFB7nBgbBJ; the loop lane's owner (85-successor / whoever holds #9084/#9091) is the natural assignee — coordination on the cc-socks channel.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions