Browse Source

docs: record v3-ptrchain and the pointer-chain fix

Eric Streit 1 day ago
parent
commit
5c92728db3

+ 1 - 1
docs/STATUS.md

@@ -15,7 +15,7 @@ This answers "where are we now?".
   (`rc=0`); the corpus stays 512 because it was already compile-OK.
   The pointer-chain (`p^.next^.value`) layout/codegen gap is fixed
   (`t_ptrchain`).
-- Branch **`master`**, feature state **`v3-exceptions`**; tree clean.
+- Branch **`master`**, feature state **`v3-exceptions` + `v3-ptrchain`**; tree clean.
 
 ## Architecture (current)
 

+ 12 - 12
docs/git-branches-tags.md

@@ -1,9 +1,9 @@
 # Git branches and tags — how this repository is organised
 
-**Snapshot:** 2026-10-23, after `v3-exceptions`. `master` =
-`96a3080` (the exceptions M5 docs commit) plus this map update;
-`origin/master` = `2a30d8c`.  The exceptions M1–M5 commits are local
-and **not pushed yet**.  304 tags (302 `v3-*` checkpoints).
+**Snapshot:** 2026-10-23, after `v3-ptrchain`. `master` =
+`e804e57` (the pointer-chain fix) plus this map update;
+`origin/master` = `a02e24c`.  The pointer-chain fix and its docs are local and **not pushed yet**;
+M1–M5 are on the remote.  305 tags (303 `v3-*` checkpoints).
 
 Mental model:
 
@@ -14,7 +14,7 @@ Mental model:
 
 | Branch | State | What it is |
 | --- | --- | --- |
-| **`master`** | `96a3080` + map, 5 commits ahead of origin | The only active branch; all current work is here. |
+| **`master`** | `e804e57` + docs, 2 commits ahead of origin | The only active branch; all current work is here. |
 | `ast-stage-c` | `0f611c0` (2026-10-08), local only | Old stage branch, fully merged into master. Stale. |
 | `generics-inc1` | `6639c19`, 6 commits behind `origin/generics-inc1` | Old generics work, fully merged into master. Stale. |
 | `resolve-check` | `95ca4d6`, in sync with origin | Old branch merged into master. Stale. |
@@ -45,6 +45,7 @@ Each points at the commit that landed a feature, all with green gates:
 | `v3-rangechecks` | `54d84b9` | runtime subrange range checks (+3 trap tests) |
 | `v3-packedset` | `6b2df4c` | ISO `PACKEDSET`, 1/2/4-byte storage |
 | `v3-exceptions` | `02b3763` | ISO exceptions M1–M4: parser, runtime, libraries, traps |
+| `v3-ptrchain` | `e804e57` | self-referential record layout and `p^.next^.value` |
 
 These are immutable checkpoints.  Useful commands:
 
@@ -86,20 +87,19 @@ git tag -d v3-session-2026-10-22-final
 git push origin :refs/tags/v3-session-2026-10-22-final
 ```
 
-## Why 304 tags?
+## Why 305 tags?
 
 The project convention is one `v3-*` tag per green step across all
 sessions (two-phase parse slices, generics increments, Unicode, stdlib,
 …).  They are a searchable history of passing states, not branches.
-`git tag --list | wc -l` = 304 (302 `v3-*`) is expected; only the
+`git tag --list | wc -l` = 305 (303 `v3-*`) is expected; only the
 recent ones above matter for the current session.
 
 ## Current state
 
-- `master` = `96a3080` + this map, **5 commits ahead** of
-  `origin/master` (`2a30d8c`).
-- `v3-exceptions` and `v3-session-2026-10-23-exceptions-end` are local;
-  push them with `master` when ready.  Earlier PACKEDSET/history tags
-  are already on the remote.
+- `master` = `e804e57` + docs, **2 commits ahead** of
+  `origin/master` (`a02e24c`).
+- `v3-ptrchain` is local; push it with `master` when ready.  Earlier
+  exceptions/PACKEDSET/history tags are already on the remote.
 - Next session: start from `master` and read
   `docs/handoff-2026-10-23-next.md`.

+ 1 - 1
docs/handoff-2026-10-23-next.md

@@ -1,6 +1,6 @@
 # Next session — plan (from 2026-10-23)
 
-**Branch:** `master`.  **Feature state:** `v3-exceptions` (M5 done).
+**Branch:** `master`.  **Feature state:** `v3-exceptions` + `v3-ptrchain`.
 **Gates:** suite **276/276**, fixpoint **OK (4,143,847 bytes)**,
 corpus **512/612, 0 crashes**.
 

+ 4 - 3
docs/summary_session-2026-10-23-exceptions.md

@@ -4,7 +4,7 @@ Follows the same-day range-check/PACKEDSET session
 (`summary_session-2026-10-23.md`) and the earlier design commit
 `2a30d8c`.
 
-**Branch:** `master`.  **Feature state:** `v3-exceptions`.
+**Branch:** `master`.  **Feature state:** `v3-exceptions` + `v3-ptrchain`.
 **Gates at the end:** suite **276/276**, fixpoint **OK
 (4,143,847 bytes)**, corpus **512/612 compile-OK, 0 crashes**.
 
@@ -99,7 +99,8 @@ because `ip` is declared after the procedures, like `onebyte*`.
 | `6e87def` | — | M2 runtime, `sigsetjmp` codegen, `SYSTEM.THROW` |
 | `5f47b76` | — | M3 `EXCEPTIONS` / `M2EXCEPTION` libraries |
 | `02b3763` | `v3-exceptions` | M4 catchable index/range/CASE traps |
-| this docs commit | `v3-session-2026-10-23-exceptions-end` | M5 summary/docs |
+| `96a3080` | `v3-session-2026-10-23-exceptions-end` | M5 summary/docs |
+| `e804e57` | `v3-ptrchain` | self-referential record layout / pointer chains |
 
 The design commit is `2a30d8c`.
 
@@ -110,7 +111,7 @@ and `p^.next^.value` gaps were fixed by publishing an unresolved alias
 for a TYPE before parsing its body, then invalidating record/class
 layout when `SetTarget` completes the alias.  Regression
 `t_ptrchain`; `lazyunique` now runs with rc 0.  This follow-up is
-tagged `v3-ptrchain`.
+tagged `v3-ptrchain` (`e804e57`).
 
 ---