HEAD: 1505ca8 — v3-step1.11, suite 35/35 (15 run + 20 reject).
Repo: /home/eric/Projets/Projets-Modula2/MyWork/m2compiler-V3, no remote
(push recipe in untracked git.txt → http://git.yojik.eu/eric/M2compiler-V3.git).
Uncommitted right now: docs/grammar.md (fresh extraction, needs a
commit decision). git.txt intentionally untracked.
v3-step1 (5/5 integer pipeline) → 1.1 (scope-tree+BST symtab) → 1.2
(heap-allocated storage) → 1.3 (0x-only hex, a-f, E-exponents, //)
→ 1.4 (3 units, imports, opaque, nesting) → 1.5 (file:line:col
console errors) → 1.6 (showcase1=50) → 1.7 (scalar TYPEs, headings,
bodies, FORWARD) → 1.8 (showcase2=71) → 1.9 (statements+booleans,
QBE block discipline) → 1.10 (Clarion classes + corrected OOP.txt
sketch) → 1.11 (showcase4=44, showcase5=7×230 class frontier);
v3-step2 (REAL lowering, scalar story complete); docs-only commits
(OOP.txt ref, root README) untagged between 1.9 and 2.
compiler/src/M2.atg, ~900 lines, LL(1) with onebenign Coco warning in TypeBlock — verified correct codegen)
Lowers: program modules; CONST/VAR/scalar TYPEs (named, subrange
w/ folded literal bounds, enum declared); full scalar arith incl.
REAL (d, swtof, cXXd); relations; eager AND/OR/NOT; IF/CASE
(labels+ranges+ELSE, compare-chain)/WHILE/REPEAT/LOOP+EXIT/FOR-full-BY/
RETURN(232-checked). Parse-now+230: DEFINITION/IMPLEMENTATION,
nesting (+EXPORT), proc bodies, FORWARD, enum use, classes
(decl+single-inheritance+IMPLEMENTATION blocks+VIRTUAL).
Still syntax errors: ARRAY/RECORD/SET/POINTER, WITH, IN, calls.
Classic idents (no _, R10 reserves leading _); 0x-only hex;
# only; NOT/AND/OR only; no B/C; unary minus at expr start
only (Wirth); ; method separators (example over sketch);
single inheritance; every ARRAY = LONGCARD count + elements
(inline, element counts, no NUL); UCHAR=32-bit + UString=count+
codepoints, UTF-8 edges, hard lex errors; self-host bar =
byte-identical .ssa over 3 stages. Truncating DIV/MOD (/ on
ints too, Test2 parity). Eager booleans. Test2-compat QbeGen
signatures kept for growth.
ARRAY/RECORD/SET/POINTER + length-prefixed layout + WITH + IN;
docs/plan.md + docs/summary_step3.md (stub) hold the scope.
Also pending: unmatched-FORWARD 231, fwd/body signature compare,
CHAR-arith policy, enum lowering, LONGINT quads, sibling-method
visibility (step 4 calls), class lowering (vtable/THIS), 0b +
digit separators, grammar.md regen hook in build.sh (offered,
not done). A phantom t_class mid-session failure never
reproduced — see docs/summary_step1.10.md §3; clean-rebuild
first if anything similar appears.
cd /home/eric/Projets/Projets-Modula2/MyWork/m2compiler-V3/compiler
./build.sh && ./run_tests.sh # expect 35/35
Then: interactive § statements for composites (ask which first: ARRAY+indexing, RECORD+WITH, SET+IN, POINTER).