|
@@ -1,7 +1,7 @@
|
|
|
# Next session — plan (from 2026-10-23)
|
|
# Next session — plan (from 2026-10-23)
|
|
|
|
|
|
|
|
**Branch:** `master`. **Feature state:** `v3-exceptions` (M5 done).
|
|
**Branch:** `master`. **Feature state:** `v3-exceptions` (M5 done).
|
|
|
-**Gates:** suite **275/275**, fixpoint **OK (4,141,580 bytes)**,
|
|
|
|
|
|
|
+**Gates:** suite **276/276**, fixpoint **OK (4,143,847 bytes)**,
|
|
|
corpus **512/612, 0 crashes**.
|
|
corpus **512/612, 0 crashes**.
|
|
|
|
|
|
|
|
Read first: `docs/STATUS.md`, `docs/features.md`,
|
|
Read first: `docs/STATUS.md`, `docs/features.md`,
|
|
@@ -60,15 +60,16 @@ abort (rc 134). Tests: `t_except_trap`, `t_except_case`,
|
|
|
`summary_session-2026-10-23-exceptions.md`; feature tag
|
|
`summary_session-2026-10-23-exceptions.md`; feature tag
|
|
|
`v3-exceptions` at `02b3763`, session-end tag at the docs commit.
|
|
`v3-exceptions` at `02b3763`, session-end tag at the docs commit.
|
|
|
Optional follow-ups: `functionException`, `FINALLY`, coroutine/
|
|
Optional follow-ups: `functionException`, `FINALLY`, coroutine/
|
|
|
-protection exceptions, and the `lazyunique` pointer-chain codegen gap.
|
|
|
|
|
|
|
+protection exceptions.
|
|
|
|
|
|
|
|
-**Corpus reality:** `lazyunique` now **compiles** (corpus **512**) but
|
|
|
|
|
-is not a verified runtime +1: its QBE hits a pre-existing pointer-chain
|
|
|
|
|
-(`p^.next^.value`) codegen gap. The corpus is compile-only; fix that
|
|
|
|
|
-lowering separately before claiming `lazyunique` runs. `except2/4/5/7/
|
|
|
|
|
-8/9` still fail declaration order because `ip` is declared after the
|
|
|
|
|
-procedures, like `onebyte*`; keep moved-`ip` copies as semantic tests
|
|
|
|
|
-but do not count them in the corpus until the policy changes.
|
|
|
|
|
|
|
+**Corpus reality:** `lazyunique` now compiles and runs (`rc=0`,
|
|
|
|
|
+unique output `0, 2, 1`) after the pointer-chain follow-up; the corpus
|
|
|
|
|
+count stays **512** because it was already compile-OK. Regression
|
|
|
|
|
+`t_ptrchain` covers the self-referential record layout and
|
|
|
|
|
+`p^.next^.value` path. `except2/4/5/7/8/9` still fail declaration
|
|
|
|
|
+order because `ip` is declared after the procedures, like `onebyte*`;
|
|
|
|
|
+keep moved-`ip` copies as semantic tests but do not count them in the
|
|
|
|
|
+corpus until the policy changes.
|
|
|
|
|
|
|
|
## 3. Multi-dimensional open arrays — 8 files
|
|
## 3. Multi-dimensional open arrays — 8 files
|
|
|
|
|
|
|
@@ -108,7 +109,7 @@ this feature.
|
|
|
## Gates for every step
|
|
## Gates for every step
|
|
|
|
|
|
|
|
```sh
|
|
```sh
|
|
|
-cd compiler && ./build.sh && ./run_tests.sh # 275/275
|
|
|
|
|
|
|
+cd compiler && ./build.sh && ./run_tests.sh # 276/276
|
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
|
tools/v3-corpus/corpus.sh # 512 OK, 0 crash
|
|
tools/v3-corpus/corpus.sh # 512 OK, 0 crash
|
|
|
```
|
|
```
|
|
@@ -121,13 +122,12 @@ session summary; commit with a `v3-*` tag. Do not push without asking.
|
|
|
```sh
|
|
```sh
|
|
|
cd .../m2compiler-V3
|
|
cd .../m2compiler-V3
|
|
|
git checkout master
|
|
git checkout master
|
|
|
-cd compiler && ./build.sh && ./run_tests.sh # 275/275
|
|
|
|
|
|
|
+cd compiler && ./build.sh && ./run_tests.sh # 276/276
|
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
|
tools/v3-corpus/corpus.sh # 512 OK, 0 crash
|
|
tools/v3-corpus/corpus.sh # 512 OK, 0 crash
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-**Recommendation:** fix the pre-existing pointer-chain codegen gap
|
|
|
|
|
-(`p^.next^.value`) so `lazyunique` can become a real runtime pass, or
|
|
|
|
|
-take the multi-dimensional open-array ABI decision. Library folders and
|
|
|
|
|
-separate compilation remain deferred
|
|
|
|
|
|
|
+**Recommendation:** take the multi-dimensional open-array ABI
|
|
|
|
|
+decision, or start the separate-compilation/library-folder work.
|
|
|
|
|
+Library folders and separate compilation remain deferred
|
|
|
(`docs/plan-separate-compilation.md`).
|
|
(`docs/plan-separate-compilation.md`).
|