Skip to content

C-256 statement says a break over a heap frame walls; the structural wasm leg lowers it #114

Description

@O6lvl4

C-256's statement ends with: "A break over a heap frame stays a loud wall (an early exit must not skip a per-iteration Drop)."

That sentence describes the retired v1 lowering. The default structural wasm leg lowers break / continue over heap locals: under a statement-position if before almide/almide#2882, and in guard … else and match arms since then. On that leg a body local is a frame credit, released by the next pass's rebind or by the epilogue, so an early exit skips no release. almide/almide#2882 adds spec/wasm_cross/loop_break_continue_heap.almd as C-256 evidence, with allocs == frees under ALMIDE_WASM_ALLOC_COUNT.

Suggested edit: drop the last sentence, or replace it with "An early exit over heap locals releases nothing on the jump edge and leaks nothing: the next pass's rebind or the frame's epilogue releases them." After this lands, the almide als pin has to advance before the statement bytes match (check-als-pin compares statements byte for byte).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions