summary_step4.md 952 B

V3 step 4 — procedures, modules, separate compilation (planned)

Status: not started. Blaise multi-file equivalent.

Scope

  • PROCEDURE (value/VAR params, function results, recursion, nested procedures with display), RETURN (232), EXIT/LOOP, REPEAT, FOR..BY, CASE, WITH.
  • DEFINITION/IMPLEMENTATION split, opaque TYPE T; + completion (V2 goal_step8 scope: usable only behind pointers/VAR formals outside the implementation), IMPORT name resolution (233).
  • Procedure-type variables deferred to step 6 unless trivial.

Acceptance (planned)

  • ADT tests (counter/stack: New/Free/Use/Count ExitCodes) + rejection tests (client VAR x:T, field access, value param, opaque result, completion mismatch); suite green.

Files (planned)

  • compiler/src/M2.atg § declarations/statements; SymTab scopes; QbeGen call frames (C-ABI: first 6 int args regs via QBE auto).
  • This file filled in on landing.