|
@@ -1,4 +1,4 @@
|
|
|
-# m2compiler-V3 — feature status (at `v3-ustring-files`, 135/135 green)
|
|
|
|
|
|
|
+# m2compiler-V3 — feature status (at `v3-polish-ustr-iochan`, 137/137 green)
|
|
|
|
|
|
|
|
Pipeline: Coco/R `M2.atg` (1748 lines, 73 productions) → `gm2`-built
|
|
Pipeline: Coco/R `M2.atg` (1748 lines, 73 productions) → `gm2`-built
|
|
|
`M2` → QBE `.ssa` → `qbe` → `cc` → run. `SymTab.mod` 1623 lines,
|
|
`M2` → QBE `.ssa` → `qbe` → `cc` → run. `SymTab.mod` 1623 lines,
|
|
@@ -27,9 +27,10 @@ Legend: ✅ done · 🔄 partial · ⏸ not started / deferred.
|
|
|
- ✅ `SET OF` bool/char/subrange (multi-word masks).
|
|
- ✅ `SET OF` bool/char/subrange (multi-word masks).
|
|
|
- ✅ `POINTER TO`, `NIL` as a real type.
|
|
- ✅ `POINTER TO`, `NIL` as a real type.
|
|
|
- ✅ `UCHAR` (32-bit codepoint) + `U'a'`/`U"…"` literals (strict
|
|
- ✅ `UCHAR` (32-bit codepoint) + `U'a'`/`U"…"` literals (strict
|
|
|
- RFC3629 decode → 234 on bad bytes), `UCHR`/`CHR8`/`UORD`, and
|
|
|
|
|
- `U"…"` whole-string assignment to a 1-D `ARRAY OF UCHAR` (content
|
|
|
|
|
- copy, terminator slot reserved like CHAR arrays).
|
|
|
|
|
|
|
+ RFC3629 decode → 234 on bad bytes), `UCHR`/`CHR8`/`UORD`, `U"…"`
|
|
|
|
|
+ whole-string assignment to a 1-D `ARRAY OF UCHAR`, `+`
|
|
|
|
|
+ concatenation of `U"…"` (and single-codepoint operands), and
|
|
|
|
|
+ `LEN`/`LENGTH`/`HIGH` of a UString.
|
|
|
- ✅ Opaque `TYPE T;` + completion in the implementation.
|
|
- ✅ Opaque `TYPE T;` + completion in the implementation.
|
|
|
- ✅ Variant records (`RECORD CASE … OF … END`); ⏸ whole-record
|
|
- ✅ Variant records (`RECORD CASE … OF … END`); ⏸ whole-record
|
|
|
equality/assignment for variants is 236 (overlapping storage).
|
|
equality/assignment for variants is 236 (overlapping storage).
|
|
@@ -95,14 +96,16 @@ Legend: ✅ done · 🔄 partial · ⏸ not started / deferred.
|
|
|
- ✅ `runtime/syslib`: `SysShim`, `FileIO`, `Utf8` (UTF-8 codec).
|
|
- ✅ `runtime/syslib`: `SysShim`, `FileIO`, `Utf8` (UTF-8 codec).
|
|
|
- ✅ `stdlib`: `SysIO`, `TextIO` (+ UTF-8 `U*`), `WholeIO`, `Math`,
|
|
- ✅ `stdlib`: `SysIO`, `TextIO` (+ UTF-8 `U*`), `WholeIO`, `Math`,
|
|
|
`Strings`, `CharClass`, `Files` (layered on `IOChan`),
|
|
`Strings`, `CharClass`, `Files` (layered on `IOChan`),
|
|
|
- `Conversions`, `RealIO`, `ProgramArgs`, `IOChan` (streams + files),
|
|
|
|
|
- `Storage`.
|
|
|
|
|
|
|
+ `Conversions`, `RealIO`, `ProgramArgs`,
|
|
|
|
|
+ `IOChan` (streams + files; `Position`/`Seek`/`Rewind`), `Storage`.
|
|
|
|
|
|
|
|
## Not started
|
|
## Not started
|
|
|
-- ⏸ Clarion `CLASS` lowering (declared + checked only); `IOChan`
|
|
|
|
|
- position/seek; UString concatenation/`Length`. (ISO `ConvResults`
|
|
|
|
|
- enumerations are now expressible.) The TopSpeed legacy grammar
|
|
|
|
|
- (`TopSpeed-V3-M2.atg`) is a separate sidecar, not merged.
|
|
|
|
|
|
|
+- ⏸ Clarion `CLASS` lowering — declared and checked only (fields,
|
|
|
|
|
+ methods, single inheritance, `VIRTUAL`); bodies/dispatch need a
|
|
|
|
|
+ receiver-passing design (see `docs/summary_class-lowering.md`).
|
|
|
|
|
+ (ISO `ConvResults` enumerations are now expressible.) The TopSpeed
|
|
|
|
|
+ legacy grammar (`TopSpeed-V3-M2.atg`) is a separate sidecar, not
|
|
|
|
|
+ merged.
|
|
|
|
|
|
|
|
(Self-hosting is reached: `bootstrap/fixpoint.sh` builds a
|
|
(Self-hosting is reached: `bootstrap/fixpoint.sh` builds a
|
|
|
byte-identical compiler image; `stdlib/` + `runtime/syslib` are in
|
|
byte-identical compiler image; `stdlib/` + `runtime/syslib` are in
|