|
@@ -93,15 +93,17 @@ vendor/ qbe toolchain pin
|
|
|
docs/ STATUS.md, plan.md, plan-*.md, analysis_*.md, summary_*.md
|
|
docs/ STATUS.md, plan.md, plan-*.md, analysis_*.md, summary_*.md
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-## Status (2026-10-24)
|
|
|
|
|
|
|
+## Status (2026-10-28)
|
|
|
|
|
|
|
|
-- Suite **310/310**; self-hosting **fixpoint OK** (byte-identical
|
|
|
|
|
- stage2/stage3, 3,845,439 bytes); corpus **521/612 compile-OK,
|
|
|
|
|
- 0 crashes** (`tools/v3-corpus`; the corpus is gm2's testsuite, so it
|
|
|
|
|
- mixes conforming Modula-2 with gm2 leniencies — see `docs/gaps/`).
|
|
|
|
|
|
|
+- Suite **333/333**; self-hosting **fixpoint OK** (byte-identical
|
|
|
|
|
+ stage2/stage3, 3,671,466 bytes); per-object fixpoint **OK**
|
|
|
|
|
+ (11 objects); corpus **521/612 compile-OK, 0 crashes**
|
|
|
|
|
+ (`tools/v3-corpus`; the corpus is gm2's testsuite, so it mixes
|
|
|
|
|
+ conforming Modula-2 with gm2 leniencies — see `docs/gaps/`).
|
|
|
The remaining `except*`/`onebyte*`-style corpus files still hit V3's
|
|
The remaining `except*`/`onebyte*`-style corpus files still hit V3's
|
|
|
declaration-order policy.
|
|
declaration-order policy.
|
|
|
-- Active branch **`master`**, feature state **`v3-dynamic-sets`**.
|
|
|
|
|
|
|
+- Active branch **`master`**, feature state
|
|
|
|
|
+ **`v3-address-arith-2026-10-28`**.
|
|
|
Recent milestones: `PACKEDSET`, ISO exceptions (`EXCEPT`/`RETRY`,
|
|
Recent milestones: `PACKEDSET`, ISO exceptions (`EXCEPT`/`RETRY`,
|
|
|
`EXCEPTIONS`, `M2EXCEPTION`, catchable language traps including
|
|
`EXCEPTIONS`, `M2EXCEPTION`, catchable language traps including
|
|
|
`functionException`, module `FINALLY`), self-referential pointer
|
|
`functionException`, module `FINALLY`), self-referential pointer
|
|
@@ -110,12 +112,17 @@ docs/ STATUS.md, plan.md, plan-*.md, analysis_*.md, summary_*.md
|
|
|
payload `SIZE`/view `ADR`, flat multi-dimensional record fields and
|
|
payload `SIZE`/view `ADR`, flat multi-dimensional record fields and
|
|
|
constructors, pointer-based 1-D open views, an `LFLOAT` builtin,
|
|
constructors, pointer-based 1-D open views, an `LFLOAT` builtin,
|
|
|
dialect library folders (`lib/pim`, `lib/iso`, `lib/common`,
|
|
dialect library folders (`lib/pim`, `lib/iso`, `lib/common`,
|
|
|
- `lib/gm2`), and **separate compilation** (`M2 -c` objects,
|
|
|
|
|
- `M2make --separate`).
|
|
|
|
|
|
|
+ `lib/gm2`), **separate compilation** (`M2 -c` objects,
|
|
|
|
|
+ `M2make --separate`), **ISO address arithmetic**
|
|
|
|
|
+ (`ADDADR`/`SUBADR`/`DIFADR`), module/local **absolute variables**
|
|
|
|
|
+ with 64-bit addresses, **4 KiB-class string literals**, and the
|
|
|
|
|
+ broad **SQLite binding** under `bindings/sqlite3`.
|
|
|
|
|
|
|
|
Lowers today: program modules; `CONST`/`VAR`/`TYPE` (scalars,
|
|
Lowers today: program modules; `CONST`/`VAR`/`TYPE` (scalars,
|
|
|
subranges, enums, arrays, records incl. variants and self-referential
|
|
subranges, enums, arrays, records incl. variants and self-referential
|
|
|
-pointer records, sets incl. `PACKEDSET`, pointers);
|
|
|
|
|
|
|
+pointer records, sets incl. `PACKEDSET`, pointers); module and local
|
|
|
|
|
+absolute variables (`VAR x [0x...] : T`); `SYSTEM` byte-address
|
|
|
|
|
+arithmetic (`ADDADR`/`SUBADR`/`DIFADR`);
|
|
|
`ARRAY`/`RECORD`/`SET`/`POINTER`, `WITH`, `IN`; fixed and open
|
|
`ARRAY`/`RECORD`/`SET`/`POINTER`, `WITH`, `IN`; fixed and open
|
|
|
multi-dimensional arrays (view descriptors, row/subarray conversion,
|
|
multi-dimensional arrays (view descriptors, row/subarray conversion,
|
|
|
payload `SIZE`/`ADR`); whole array/record copy; `NEW`/`DISPOSE`; all
|
|
payload `SIZE`/`ADR`); whole array/record copy; `NEW`/`DISPOSE`; all
|