FAILURE MAP
← Case archive

FA-89942 / Bytecode virtual machines / Member archive

Call frames: zero padding placed before arguments · case 02

Functions with extra locals read zero where their first parameter should be.

Member previewVariant 2 · 3 implementations · 7 checks per implementation

Case contract

Instructions: push v, load k, store k, add/sub/mul (second-from-top op top), jz t, jmp t, call t nargs nlocals, ret, halt. call pops nargs values (the first pushed becomes local 0), appends zero locals up to nlocals, records return pc = call pc + 1, and raises ["StackOverflowError", frames] when the frame count already equals max_depth. ret pops the result, discards the callee frame, pushes the result on the caller stack and resumes at the saved pc. Each executed instruction costs one fuel; running out returns ["fuel", pc]; host faults are ["vm-fault"].

Why this case matters

Frame setup and teardown decide argument binding, return values and recursion limits in every stack VM.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
extra locals are zero-initialised after arguments["halt", [0]]["halt", [10]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗