|
@@ -1,12 +1,12 @@
|
|
|
# Session summary — SET CONST + builtin CONST folding 2026-10-18
|
|
# Session summary — SET CONST + builtin CONST folding 2026-10-18
|
|
|
|
|
|
|
|
-Branch **`resolve-check`**. Suite **234/234**; fixpoint **OK
|
|
|
|
|
-(3,843,693 bytes)**; corpus **388/612 compile-OK, 0 crashes**.
|
|
|
|
|
|
|
+Branch **`resolve-check`**. Suite **235/235**; fixpoint **OK
|
|
|
|
|
+(3,854,595 bytes)**; corpus **389/612 compile-OK, 0 crashes**.
|
|
|
|
|
|
|
|
Tags: `v3-set-constants`, `v3-const-builtin-fold`, `v3-const-conv-fold`,
|
|
Tags: `v3-set-constants`, `v3-const-builtin-fold`, `v3-const-conv-fold`,
|
|
|
`v3-proc-addr`, `v3-proc-val`, `v3-real64`, `v3-shift-import`,
|
|
`v3-proc-addr`, `v3-proc-val`, `v3-real64`, `v3-shift-import`,
|
|
|
`v3-foreign-module`, `v3-m2-conformance`, `v3-strict-decl-order`,
|
|
`v3-foreign-module`, `v3-m2-conformance`, `v3-strict-decl-order`,
|
|
|
-`v3-gap-examples`.
|
|
|
|
|
|
|
+`v3-convert`, `v3-gap-examples`.
|
|
|
|
|
|
|
|
## Conformance note
|
|
## Conformance note
|
|
|
|
|
|
|
@@ -155,6 +155,23 @@ legal exception. Corpus **398 → 388**: the 10 files dropped
|
|
|
leniency. Forward references to module-level **variables**/**procedures**
|
|
leniency. Forward references to module-level **variables**/**procedures**
|
|
|
from a body (the two-phase parse) remain — a separate, larger item.
|
|
from a body (the two-phase parse) remain — a separate, larger item.
|
|
|
|
|
|
|
|
|
|
+## Track B: CONVERT
|
|
|
|
|
+
|
|
|
|
|
+`CONVERT(T, x)` (ISO SYSTEM, a `VAL` sibling) is now accepted — the
|
|
|
|
|
+grammar's `VAL` production takes `( "VAL" | "CONVERT" )`, so it reuses
|
|
|
|
|
+`VAL`'s conversion rules; `procconv2` passes and runs. Corpus
|
|
|
|
|
+**388 → 389**; suite test `t_convert`, `docs/gaps/gap07` retired.
|
|
|
|
|
+
|
|
|
|
|
+## Remaining genuine gaps (Track B)
|
|
|
|
|
+
|
|
|
|
|
+- **`gap13` builtins as identifiers** — a real V3 bug, but the builtins
|
|
|
|
|
+ are Coco/R keyword tokens; fixing it means de-reserving them (a
|
|
|
|
|
+ parser refactor), *not* a one-liner.
|
|
|
|
|
+- **`gap08` set↔word `CAST`/`VAL`** (BITSET as a machine word).
|
|
|
|
|
+- **`gap15` enumeration literals with an imported type** (ISO
|
|
|
|
|
+ import/export through re-exports).
|
|
|
|
|
+- `gap16`/`gap17` set-span limits.
|
|
|
|
|
+
|
|
|
## Not fixed (recorded)
|
|
## Not fixed (recorded)
|
|
|
|
|
|
|
|
- **`setconst3.mod`** still fails: its `VAR mem: ARRAY [0..CARDINAL(
|
|
- **`setconst3.mod`** still fails: its `VAR mem: ARRAY [0..CARDINAL(
|
|
@@ -193,7 +210,7 @@ modules),
|
|
|
```sh
|
|
```sh
|
|
|
cd .../m2compiler-V3
|
|
cd .../m2compiler-V3
|
|
|
git checkout resolve-check
|
|
git checkout resolve-check
|
|
|
-cd compiler && ./build.sh && ./run_tests.sh # 234/234
|
|
|
|
|
|
|
+cd compiler && ./build.sh && ./run_tests.sh # 235/235
|
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
cd .. && TMP="$PWD/.scratch/fixpoint" ./bootstrap/fixpoint.sh
|
|
|
-M2FLAGS="" ./.scratch/corpusx.sh # 388 OK, 0 crash
|
|
|
|
|
|
|
+M2FLAGS="" ./.scratch/corpusx.sh # 389 OK, 0 crash
|
|
|
```
|
|
```
|