From e1bba17ff54400a34ede0eaacad863420d021119 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Tue, 29 Sep 2026 09:44:41 -0700 Subject: Split ch10 Basic memory introduction in 10a, then precise aliases in 10b. --- docs/chapter-backports.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'docs/chapter-backports.md') diff --git a/docs/chapter-backports.md b/docs/chapter-backports.md index c2a4b56c..f76f92de 100644 --- a/docs/chapter-backports.md +++ b/docs/chapter-backports.md @@ -7,9 +7,9 @@ are disposable build artifacts. Reusable rules live in Introduce independent fixes in the earliest applicable chapter and propagate them through every affected snapshot. Testing Chapter 25's inherited tests does -not validate the compilers in the earlier chapter directories. Keep building -SSA with incomplete types in Chapter 25 for now; moving that architecture or -renumbering chapters is deferred. Cliff wants to revisit splitting Chapter 25 +not validate the compilers in the earlier chapter directories. Chapter 10 is +now split into 10a (bulk memory) and 10b (lazy memory partitioning). Keep the +rest of SSA construction with incomplete types in Chapter 25 for now. Cliff wants to revisit splitting Chapter 25 into smaller chapters; escape analysis remains in 25 until that larger review. Reset checkpoint (2026-09-28): Cliff committed the completed FunPtr work as @@ -22,6 +22,13 @@ Splitting Chapter 25 is deferred, not an instruction to renumber. ## Pending corrections +- **Forward Chapter 10b memory partitioning through 11-24.** The 10a/10b split + introduces whole-memory SSA first, then `MemMerge`, `MemPhi`, and `BulkMemPhi`. + Later snapshots retain their original memory representation. Migration + boundaries include scheduling in 11, array/allocation memory in 15, the + parser's `ScopeMinNode` in 16, and call/return aggregation in 18. Keep private + constructor memory, escape tracking, and incomplete-type inference in 25. + - **Chapter 24 Load BOTTOM-on-error backport, unwound/deferred (2026-09-28).** Cliff requested starting with 24 and analyzing failures before proceeding. Literal global BOTTOM memory/pointer inputs already propagate BOTTOM. The @@ -210,6 +217,20 @@ The top-level runner accepts explicit chapter lists, e.g. ## Validation record +- **Chapter 10a/10b split (2026-09-29).** Replaced `chapter10` with two + independently buildable snapshots: whole-memory SSA in 10a, then lazy + `MemMerge`/`MemPhi`/`BulkMemPhi` partitioning in 10b. Updated Make discovery, + Maven modules, IDEA descriptors/local module list, chapter navigation, + linear-history link handling, and regenerated the memory diagrams. + Fresh Make builds pass **156 tests in 10a and 159 in 10b**, including the + chapter-local fuzzer regression wrapper. Both release jars and tags build. + Offline Maven tests pass in both modules. Five memory programs each pass + seven inputs across 100 optimizer seeds in each compiler (**3,500 executions + per chapter**). Seed 97's missed bulk-Phi revisit is retained as a regression. + Logs: `build/chapter10-clean-build.log`, `build/chapter10-maven.log`, + `build/10a-seeds.log`, and `build/10b-seeds.log`. Chapters 11-24 have not yet + adopted the new memory representation; that forward migration is queued above. + This is a condensed completion record, not a list of current suite counts for old revisions. Earlier detailed traces are in Git history; durable invariants have been consolidated into the [AI notes](../skills/chapter25-codex-notes.md). -- cgit v1.2.3