|
|
@@ -4,13 +4,14 @@ This answers "where are we now?".
|
|
|
|
|
|
## Numbers
|
|
|
|
|
|
-- Suite **248/248** (`compiler/run_tests.sh`).
|
|
|
+- Suite **249/249** (`compiler/run_tests.sh`).
|
|
|
- Self-hosting **FIXPOINT OK** — stage2 and stage3 images are
|
|
|
byte-identical (3,882,337 bytes).
|
|
|
-- Corpus **427 / 612** sources compile with 0 errors, **0 crashes**
|
|
|
- (`tools/v3-corpus/corpus.sh` over the gm2 testsuite); the rest are
|
|
|
- genuine language gaps, **gm2 leniencies V3 deliberately rejects**, or
|
|
|
- unresolved imports.
|
|
|
+- Corpus **467 / 612** sources compile with 0 errors, **0 crashes**
|
|
|
+ (`tools/v3-corpus/corpus.sh` over the gm2 testsuite; the harness now
|
|
|
+ resolves V3's own shipped libraries); the rest are genuine language
|
|
|
+ gaps, **gm2 leniencies V3 deliberately rejects**, or unresolved
|
|
|
+ imports of gm2-only modules.
|
|
|
- Branch **`master`**; tree clean.
|
|
|
|
|
|
## Architecture (current)
|
|
|
@@ -134,12 +135,16 @@ declarations still work (`t_fwdproc`, `t_fwdok`).
|
|
|
`SymTab`'s `MaxTypes` all report `230` (implementation limit) instead
|
|
|
of truncating silently. Still weak: error recovery and message polish.
|
|
|
4. **Library holes** — the channel framework grew `ChanConsts` and
|
|
|
- `StreamFile` (ISO 10514-1) on top of `IOChan` (2026-10-19). Still
|
|
|
- missing: the remaining device/IO framework (`docs/wip/`). Fixing
|
|
|
- `StreamFile` also fixed a real bug: a **set CONST exported from a
|
|
|
- definition module** is now emitted under its global name
|
|
|
- (`<unit>_<name>`), so a client's qualified reference binds instead of
|
|
|
- hitting an undefined symbol.
|
|
|
+ `StreamFile` (ISO 10514-1) on top of `IOChan`, and the PIM/gm2 I/O
|
|
|
+ family gained `NumberIO`, `RealInOut`, `FpuIO` (`StrIO`/`InOut`
|
|
|
+ already existed). Also fixed the **corpus harness fidelity**: it now
|
|
|
+ searches V3's own shipped libraries (`stdlib`, `runtime/syslib`) via a
|
|
|
+ default `$V3_LIBS`, so a file importing e.g. `Strings` resolves
|
|
|
+ against the real `.def` instead of being mislabelled `LIB`.
|
|
|
+ Building `StreamFile` also fixed a real bug: a **set CONST exported
|
|
|
+ from a definition module** is now emitted under its global name
|
|
|
+ (`<unit>_<name>`), so a client's qualified reference binds. Still
|
|
|
+ missing: gm2 runtime modules (`M2RTS`, `Builtins`, `Processes`, …).
|
|
|
5. **Housekeeping** — `docs/INDEX.md` is the entry point; the
|
|
|
unreferenced historical records are under `docs/archive/` (2026-10-19).
|
|
|
`resolve-check` was merged to `master`.
|
|
|
@@ -149,7 +154,7 @@ declarations still work (`t_fwdproc`, `t_fwdok`).
|
|
|
```sh
|
|
|
cd compiler
|
|
|
./build.sh # M2.atg -> scanner/parser/driver -> ./M2
|
|
|
-./run_tests.sh # 248/248
|
|
|
+./run_tests.sh # 249/249
|
|
|
cd ..
|
|
|
./bootstrap/fixpoint.sh # FIXPOINT OK (byte-identical stage2/stage3)
|
|
|
```
|