From f4bd723d929e53475f7990374dca7b7dfcbbdc42 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Sun, 1 Nov 2026 10:33:55 -0800 Subject: Add Chapter 29 for tech debt cleanup with the parser split Keep Chapter 28b intact and carry the grammar-oriented parser package, Var move, IterPeeps move, and parser regression tests into Chapter 29. Defer privacy and exclude its experimental tests and fixture changes. Register the chapter in the indexes, IntelliJ modules and run configurations, Maven reactor, roadmap, and linear-history publisher. Windows and Linux each pass 573 tests, release builds, 199 allocation replays, and 29 native checks. --- skills/chapter25-codex-notes.md | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'skills/chapter25-codex-notes.md') diff --git a/skills/chapter25-codex-notes.md b/skills/chapter25-codex-notes.md index 4632698a..ff5722a2 100644 --- a/skills/chapter25-codex-notes.md +++ b/skills/chapter25-codex-notes.md @@ -18,20 +18,27 @@ The [incremental build design](incremental-builds.md) expands the roadmap's dependency and output-ownership requirements. For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.md). -## Reset checkpoint (2026-10-29) +## Current workspace (2026-11-01) -Chapter 28b's Encoding/Export cleanup is committed as `f47c7d1f`; the tree -was clean before this notes update. All 570 chapter tests passed on Windows -and Linux. Encoding prepares per-unit objects; Export only writes/links them. -Select combined in-memory output before Encoding, and request Serialize before -Lower for file output. There is no Export fallback that re-encodes the graph. +Chapter 29 is **Tech Debt Cleanup**. Cliff approved keeping the parser split +and moving it into this new snapshot; continue parser work there. Chapter 28b +retains the original parser. The new `parser/` package follows the grammar; +`Var` belongs there and `IterPeeps` belongs in `codegen/`. -Cliff wants to pivot to new language work and a new chapter. The next project -has not been chosen: discuss it before implementing. His goals are readable, -simple, usable; type variables/generics for real collections and low-annotation -automatic memory reclamation are major priorities. Privacy and subclassing -are smaller candidates. The roadmap owns remaining cleanup work; do not resume -it automatically or create a chapter merely because a reset happened. +Source privacy is deferred. `ai_priv` retains the earlier implementation, +`cc_priv` the tests, and local branch `archive/cc_priv-parser-before-ch29` +preserves the combined working state before the split. Do not reintroduce +privacy checks or fixture adaptations as incidental parser cleanup. + +Constructor completion remains open. `addReturn` merges field states already, +but final helper memory can hide missing initialization after conversions. +`parseInitializer` returns the declaration initializer, not the user constructor. +Prefer simplifying around the merged scope before stores; consider the older +same-named constructor binding, parsed before later fields, when removing +`_ctorExits`. No constructor semantics were changed by the chapter split. + +The roadmap retains language candidates, including automatic memory management +and a small game with graphics, keyboard input, and sound. ## Collaboration preferences @@ -61,8 +68,10 @@ it automatically or create a chapter merely because a reset happened. with a ternary expression over an if/else. - Do not wrap normal compiler algorithms in try/finally when no exceptions are expected. Keep the lifetime and phase transitions explicit. -- Space declaration initializers as `Type name = expression;`. Preserve - deliberate column alignment when it makes related declarations easier to read. +- Space assignments and declaration initializers as `x = expression` and + `Type name = expression;`. Preserve deliberate column alignment across rows. +- Name the shared parser reference `P`, including in parser components, to match + `CodeGen.P`. - Do not introduce Java streams. Use loops and explicit sorts; ask Cliff before making any exception. - Cliff often debugs the same failure in parallel. If asked to work in a side -- cgit v1.2.3