|
|
@@ -1,10 +1,13 @@
|
|
|
# m2comp step 5 — separate compilation (tag: `m2comp-step5`)
|
|
|
|
|
|
Single-image separate compilation, v1 step-11 style: `M2comp lib.def
|
|
|
-impl.mod prog.mod` compiles definitions, then implementations, then
|
|
|
-exactly one program into one `<Prog>.MC4` (depCount 0). One `.LST`
|
|
|
-per input, fail-fast. Suite 54/54 (41 inherited + 6 run + 7 reject);
|
|
|
-all single-file images byte-identical to step 4 (no drift).
|
|
|
+lib.mod prog.mod` compiles definitions, then implementations, then
|
|
|
+exactly one program into one `<Prog>.MC4` (depCount 0). Definition
|
|
|
+and implementation share their basename (`toto.def` / `toto.mod`)
|
|
|
+and hence one `.LST` (the implementation listing overwrites the
|
|
|
+definition's); one `.LST` per basename otherwise, fail-fast. Suite
|
|
|
+55/55 (41 inherited + 7 run + 7 reject); all single-file images
|
|
|
+byte-identical to step 4 (no drift).
|
|
|
|
|
|
## Session model
|
|
|
|
|
|
@@ -59,14 +62,16 @@ all single-file images byte-identical to step 4 (no drift).
|
|
|
- `run_tests.sh`: `expect_run_files` / `expect_fail_files` /
|
|
|
`expect_fail_multi` (MC4-aware, timeout-guarded like the rest).
|
|
|
|
|
|
-## Tests — 54/54
|
|
|
+## Tests — 55/55
|
|
|
|
|
|
New `tests/d_*` (hand-computed ExitCodes): `DBasic` 60 (FROM +
|
|
|
qualified, var/proc), `DFrom` 35 (two libs, const/var/proc,
|
|
|
cross-def import), `DMulti` 68 (qualified VAR actual), `DInit` 7
|
|
|
(impl `BEGIN` runs: preset 2 vs zeroed 0), `DFunc` 81 (nested
|
|
|
function calls), `DType` 40 (`FROM` array type + qualified
|
|
|
-`Lib.Point` record). Rejections: unknown definition (201),
|
|
|
+`Lib.Point` record). Showcase `tests/showcase5.mod` (+ `s5lib.def`
|
|
|
+/ `s5lib.mod`) tours every interface kind in one program and
|
|
|
+prints 46. Rejections: unknown definition (201),
|
|
|
signature mismatch (231), missing body (231), unimplemented
|
|
|
import (201), duplicate definition (200), private access (201),
|
|
|
second program file (driver-level).
|