FAILURE MAP
← Case archive

FA-89934 / Bytecode virtual machines / Member archive

Call frames: zero-argument call clears the caller stack · case 04

After calling a function with no arguments the caller loses all pending operands and faults.

Member previewVariant 4 · 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
zero-argument call keeps caller operand stack["vm-fault"]["halt", [6]]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 ↗