Rename FABRIC series: FABRIC.md->0, FABRIC-2.md->1, FABRIC-3.md->2, FABRIC-4.md unchanged
FABRIC.md -> FABRIC-0.md FABRIC-2.md -> FABRIC-1.md FABRIC-3.md -> FABRIC-2.md (the current/living document) FABRIC-4.md unchanged (new #3 to follow separately) Every cross-reference repo-wide updated to match, including doc-comment citations inside kernel source (.c/.h) files -- done via an ordered placeholder substitution (FABRIC-3.md->placeholder2, FABRIC-2.md-> placeholder1, FABRIC.md->placeholder0, then placeholders resolved to final names) in a single pass per file to avoid double-shifting already-renamed references. One line in capsules/font.4th grew past the 64-char block-format limit as a side effect of the longer filename; shortened it and reverified with mkcapsule --lint (34/34 pass) before rebuilding. Verified 3-arch boot to ok> (amd64/aarch64/riscv64, each in the foreground) after the fix; logs and DoE CSVs from this session's verification runs included per this repo's own audit-artifact convention. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019YcT3H2PQeyujrzjqS3Var
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ff2941dfb9
commit
b031b802e3
+4
-4
@@ -5,11 +5,11 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
||||||
> `FABRIC.md`/`FABRIC-2.md` (repo root — read `FABRIC-2.md` first, it is the current/living
|
> `FABRIC-0.md`/`FABRIC-1.md` (repo root — read `FABRIC-1.md` first, it is the current/living
|
||||||
> one) are the sole design-of-record for Artemis work now. Kept here as historical record
|
> one) are the sole design-of-record for Artemis work now. Kept here as historical record
|
||||||
> only; do not read this for current design authority, and do not cite it in place of
|
> only; do not read this for current design authority, and do not cite it in place of
|
||||||
> `FABRIC.md`/`FABRIC-2.md`. Artemis becoming the pre-Artemis-closeout blocker (item 4.6) is
|
> `FABRIC-0.md`/`FABRIC-1.md`. Artemis becoming the pre-Artemis-closeout blocker (item 4.6) is
|
||||||
> tracked in `FABRIC-2.md`, not here. See `.claude/CLAUDE.md`'s own pointer.
|
> tracked in `FABRIC-1.md`, not here. See `.claude/CLAUDE.md`'s own pointer.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ for this scope. `capsules/artemis/init.4th` implements the full flat-pool
|
|||||||
target above.
|
target above.
|
||||||
|
|
||||||
**Corrected 2026-08-13 — the "boots live in the Tripod fleet... on every
|
**Corrected 2026-08-13 — the "boots live in the Tripod fleet... on every
|
||||||
kernel boot" claim below is stale since item 0.1 (`FABRIC.md` Phase 0),
|
kernel boot" claim below is stale since item 0.1 (`FABRIC-0.md` Phase 0),
|
||||||
same pattern already found and fixed in `TRIPOD.md`.** Two distinct things
|
same pattern already found and fixed in `TRIPOD.md`.** Two distinct things
|
||||||
were being conflated: Artemis's block-storage *device* (the virtio-blk
|
were being conflated: Artemis's block-storage *device* (the virtio-blk
|
||||||
disk, `disk/artemis.img`) genuinely does auto-attach at the C level at
|
disk, `disk/artemis.img`) genuinely does auto-attach at the C level at
|
||||||
|
|||||||
+5
-5
@@ -10,12 +10,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
> **Superseded subsystem docs (Captain Bob, 2026-08-15):** `.claude/TRIPOD.md`,
|
> **Superseded subsystem docs (Captain Bob, 2026-08-15):** `.claude/TRIPOD.md`,
|
||||||
> `.claude/HERMES.md`, `.claude/ARTEMIS.md`, and `.claude/CONSOLE.md` are all superseded —
|
> `.claude/HERMES.md`, `.claude/ARTEMIS.md`, and `.claude/CONSOLE.md` are all superseded —
|
||||||
> `FABRIC.md` and `FABRIC-2.md` (both design history/archival as of 2026-08-25) and
|
> `FABRIC-0.md` and `FABRIC-1.md` (both design history/archival as of 2026-08-25) and
|
||||||
> `FABRIC-3.md` (current/living, read this one first) are the sole authoritative source for
|
> `FABRIC-2.md` (current/living, read this one first) are the sole authoritative source for
|
||||||
> Tripod/Hermes/Artemis/Console work now. The four subsystem docs remain in the repo as
|
> Tripod/Hermes/Artemis/Console work now. The four subsystem docs remain in the repo as
|
||||||
> historical record only; each carries its own superseded-header pointing here. Do not treat
|
> historical record only; each carries its own superseded-header pointing here. Do not treat
|
||||||
> them as current, do not read them for design authority, and do not cite them in place of
|
> them as current, do not read them for design authority, and do not cite them in place of
|
||||||
> `FABRIC.md`/`FABRIC-2.md`/`FABRIC-3.md`.
|
> `FABRIC-0.md`/`FABRIC-1.md`/`FABRIC-2.md`.
|
||||||
|
|
||||||
> **Scope:** This repo is LithosAnanke — the bare-metal UEFI kernel that boots StarForth
|
> **Scope:** This repo is LithosAnanke — the bare-metal UEFI kernel that boots StarForth
|
||||||
> directly on hardware. StarForth (the hosted FORTH-79 VM) has its own separate repository
|
> directly on hardware. StarForth (the hosted FORTH-79 VM) has its own separate repository
|
||||||
@@ -133,14 +133,14 @@ The word-level ACL system is fully implemented, including kernel parity. Key con
|
|||||||
- Measured overhead: +0.0054%–+0.0088% across all 9 cells; CV = 0.000%
|
- Measured overhead: +0.0054%–+0.0088% across all 9 cells; CV = 0.000%
|
||||||
- Report confirmed to exist: `experiments/bare_metal/analysis/report/bare_metal_doe_report.pdf`
|
- Report confirmed to exist: `experiments/bare_metal/analysis/report/bare_metal_doe_report.pdf`
|
||||||
(~2MB, with LaTeX source and figures) — patent support material
|
(~2MB, with LaTeX source and figures) — patent support material
|
||||||
- **Correction (found 2026-08-20/21, `FABRIC-2.md` §§M–T):** the "ACL-RWT" name itself was
|
- **Correction (found 2026-08-20/21, `FABRIC-1.md` §§M–T):** the "ACL-RWT" name itself was
|
||||||
wrong — the Rolling-Window-of-Truth mechanism it was named after was dead code, removed
|
wrong — the Rolling-Window-of-Truth mechanism it was named after was dead code, removed
|
||||||
2026-07-08 (`ACL-RECHECK-RW` was never reachable — `acl_recheck()` only ever looks up the
|
2026-07-08 (`ACL-RECHECK-RW` was never reachable — `acl_recheck()` only ever looks up the
|
||||||
11-char `ACL-RECHECK`, never the 14-char `-RW` variant). What this campaign actually
|
11-char `ACL-RECHECK`, never the 14-char `-RW` variant). What this campaign actually
|
||||||
measured was the live `ACL-TTL` mechanism under a misleading name, and at `-O0`, before
|
measured was the live `ACL-TTL` mechanism under a misleading name, and at `-O0`, before
|
||||||
real compiler optimization landed. The corrected, current figure — same live mechanism,
|
real compiler optimization landed. The corrected, current figure — same live mechanism,
|
||||||
correct name, re-run on the current substrate — is **+0.0603% ACL-TTL enforcement overhead,
|
correct name, re-run on the current substrate — is **+0.0603% ACL-TTL enforcement overhead,
|
||||||
architecture-independent, CV=0.000%** (`FABRIC-2.md` §T, memory
|
architecture-independent, CV=0.000%** (`FABRIC-1.md` §T, memory
|
||||||
`project_acl_ttl_overhead_final.md`). Use that number, not the one above.
|
`project_acl_ttl_overhead_final.md`). Use that number, not the one above.
|
||||||
|
|
||||||
**Before writing or modifying any `.4th` capsule file**, read `experiments/bare_metal/README.md`
|
**Before writing or modifying any `.4th` capsule file**, read `experiments/bare_metal/README.md`
|
||||||
|
|||||||
+3
-3
@@ -20,11 +20,11 @@
|
|||||||
|
|
||||||
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative, and its
|
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative, and its
|
||||||
> core premise below ("Console is a 4th Tripod VM, Quadrupod, StarForth-dialect-only") was
|
> core premise below ("Console is a 4th Tripod VM, Quadrupod, StarForth-dialect-only") was
|
||||||
> architecturally reversed by a later, decided ruling: `FABRIC.md` §17.5 — the framebuffer is
|
> architecturally reversed by a later, decided ruling: `FABRIC-0.md` §17.5 — the framebuffer is
|
||||||
> a **utility**, not a patron, not a VM. What actually shipped is direct C
|
> a **utility**, not a patron, not a VM. What actually shipped is direct C
|
||||||
> (`src/starkernel/hal/console.c`/`vt100.c`/`framebuffer.c` plus keyboard drivers), called
|
> (`src/starkernel/hal/console.c`/`vt100.c`/`framebuffer.c` plus keyboard drivers), called
|
||||||
> straight from the kernel, no Hera-spawned Console VM anywhere. `FABRIC.md`/`FABRIC-2.md`
|
> straight from the kernel, no Hera-spawned Console VM anywhere. `FABRIC-0.md`/`FABRIC-1.md`
|
||||||
> (repo root — read `FABRIC-2.md` first) are the sole design-of-record for Console/framebuffer
|
> (repo root — read `FABRIC-1.md` first) are the sole design-of-record for Console/framebuffer
|
||||||
> work now. Kept here as historical record only. See `.claude/CLAUDE.md`'s own pointer.
|
> work now. Kept here as historical record only. See `.claude/CLAUDE.md`'s own pointer.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+2
-2
@@ -5,10 +5,10 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
||||||
> `FABRIC.md`/`FABRIC-2.md` (repo root — read `FABRIC-2.md` first, it is the current/living
|
> `FABRIC-0.md`/`FABRIC-1.md` (repo root — read `FABRIC-1.md` first, it is the current/living
|
||||||
> one) are the sole design-of-record for Hermes work now. Kept here as historical record
|
> one) are the sole design-of-record for Hermes work now. Kept here as historical record
|
||||||
> only — note its message-layout table (8 cells) is confirmed stale against the real shipped
|
> only — note its message-layout table (8 cells) is confirmed stale against the real shipped
|
||||||
> capsule (9 cells, `capsules/hermes/init.4th`), see `FABRIC-2.md`. Do not read this for
|
> capsule (9 cells, `capsules/hermes/init.4th`), see `FABRIC-1.md`. Do not read this for
|
||||||
> current design authority. See `.claude/CLAUDE.md`'s own pointer.
|
> current design authority. See `.claude/CLAUDE.md`'s own pointer.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+4
-4
@@ -5,10 +5,10 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
> **SUPERSEDED (Captain Bob, 2026-08-15).** This document is no longer authoritative.
|
||||||
> `FABRIC.md`/`FABRIC-2.md` (repo root — read `FABRIC-2.md` first, it is the current/living
|
> `FABRIC-0.md`/`FABRIC-1.md` (repo root — read `FABRIC-1.md` first, it is the current/living
|
||||||
> one) are the sole design-of-record for Tripod work now. Kept here as historical record
|
> one) are the sole design-of-record for Tripod work now. Kept here as historical record
|
||||||
> only; do not read this for current design authority, and do not cite it in place of
|
> only; do not read this for current design authority, and do not cite it in place of
|
||||||
> `FABRIC.md`/`FABRIC-2.md`. See `.claude/CLAUDE.md`'s own pointer.
|
> `FABRIC-0.md`/`FABRIC-1.md`. See `.claude/CLAUDE.md`'s own pointer.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -35,8 +35,8 @@ or work execution logic in Hera — stop. You have the wrong VM.
|
|||||||
|
|
||||||
## The Immediate Goal
|
## The Immediate Goal
|
||||||
|
|
||||||
**Corrected 2026-08-13 — stale since item 0.1 (`FABRIC.md` Phase 0), flagged in
|
**Corrected 2026-08-13 — stale since item 0.1 (`FABRIC-0.md` Phase 0), flagged in
|
||||||
`FABRIC-2.md` §A item 5.3, never fixed until now.** This section used to say Hera spawns
|
`FABRIC-1.md` §A item 5.3, never fixed until now.** This section used to say Hera spawns
|
||||||
Hermes and Artemis automatically at boot. She does not, by deliberate design: item 0.1
|
Hermes and Artemis automatically at boot. She does not, by deliberate design: item 0.1
|
||||||
pruned `capsules/init.4th` to boot Hera alone (confirmed current —
|
pruned `capsules/init.4th` to boot Hera alone (confirmed current —
|
||||||
`capsules/init.4th` births no other VM). Hermes and Artemis-as-VM-patron births happen
|
`capsules/init.4th` births no other VM). Hermes and Artemis-as-VM-patron births happen
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ corrected to the valid SMC32 encoding (`0x84000009`).
|
|||||||
Full three-arch DoE campaign (`L8-DOE`, 48 trials each) re-run clean on all
|
Full three-arch DoE campaign (`L8-DOE`, 48 trials each) re-run clean on all
|
||||||
three architectures post-fix: stress campaigns 30/30 PASS, clean `BYE` exit,
|
three architectures post-fix: stress campaigns 30/30 PASS, clean `BYE` exit,
|
||||||
no exceptions. Full investigation trail, evidence, and dead ends in
|
no exceptions. Full investigation trail, evidence, and dead ends in
|
||||||
`FABRIC-2.md` Sections H and I.
|
`FABRIC-1.md` Sections H and I.
|
||||||
|
|
||||||
## 2026-07-24 — Kernel 3-arch acceptance test re-run; amd64 dict_hash non-determinism root-caused (`lithosananke`)
|
## 2026-07-24 — Kernel 3-arch acceptance test re-run; amd64 dict_hash non-determinism root-caused (`lithosananke`)
|
||||||
|
|
||||||
|
|||||||
+17
-17
@@ -1,8 +1,8 @@
|
|||||||
# FABRIC.md — the Stadium
|
# FABRIC-0.md — the Stadium
|
||||||
|
|
||||||
**Status: CLOSED, 2026-08-12.** This document is archival. It is not edited further and no
|
**Status: CLOSED, 2026-08-12.** This document is archival. It is not edited further and no
|
||||||
new work is added to it — everything still open as of the closure date was carried forward
|
new work is added to it — everything still open as of the closure date was carried forward
|
||||||
into **`FABRIC-2.md`**, which is now the living document. Read `FABRIC-2.md` first for
|
into **`FABRIC-1.md`**, which is now the living document. Read `FABRIC-1.md` first for
|
||||||
current status; come back here only for the historical design argument and decision record
|
current status; come back here only for the historical design argument and decision record
|
||||||
behind it.
|
behind it.
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ places were found where something had actually been resolved by later work but t
|
|||||||
document's own note was never updated (§19.6 #3, §21.5 #4, the §25.7 `stadium_owner[idx]`
|
document's own note was never updated (§19.6 #3, §21.5 #4, the §25.7 `stadium_owner[idx]`
|
||||||
bullet, and item 4.5's own parent checkbox) — those four are fixed in place below, since
|
bullet, and item 4.5's own parent checkbox) — those four are fixed in place below, since
|
||||||
they were bookkeeping errors, not open work. Everything else genuinely still open is in
|
they were bookkeeping errors, not open work. Everything else genuinely still open is in
|
||||||
`FABRIC-2.md`.
|
`FABRIC-1.md`.
|
||||||
|
|
||||||
**How to read what remains.** §1–15 are the original design argument, written before any
|
**How to read what remains.** §1–15 are the original design argument, written before any
|
||||||
code was examined. §16 onward are findings and decisions made against the actual tree, in
|
code was examined. §16 onward are findings and decisions made against the actual tree, in
|
||||||
@@ -35,7 +35,7 @@ quotes that reproduce an earlier section verbatim, and in §12's preserved quest
|
|||||||
which several sections quote.
|
which several sections quote.
|
||||||
|
|
||||||
**On `docs/lithosananke/ROADMAP.md`.** As of 2026-08-11, Captain Bob stated this document
|
**On `docs/lithosananke/ROADMAP.md`.** As of 2026-08-11, Captain Bob stated this document
|
||||||
superseded ROADMAP.md entirely. That still holds, transitively, through `FABRIC-2.md` now.
|
superseded ROADMAP.md entirely. That still holds, transitively, through `FABRIC-1.md` now.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -375,7 +375,7 @@ Ten minutes on paper. It confirmed the design and caught one case, which is what
|
|||||||
|
|
||||||
## 10. Sequencing
|
## 10. Sequencing
|
||||||
|
|
||||||
**FABRIC.md first, then Hermes native on the fabric, then measure, then Console, then
|
**FABRIC-0.md first, then Hermes native on the fabric, then measure, then Console, then
|
||||||
Artemis last.**
|
Artemis last.**
|
||||||
|
|
||||||
> **Amended by §16.5 and §21.2.** This ordering is still right for the *subsystems*, but it
|
> **Amended by §16.5 and §21.2.** This ordering is still right for the *subsystems*, but it
|
||||||
@@ -419,7 +419,7 @@ re-running it. Automated, but budget for it.
|
|||||||
This is why the admission test comes before code.
|
This is why the admission test comes before code.
|
||||||
|
|
||||||
**Early signal:** ARTEMIS.md, HERMES.md, CONSOLE.md and TRIPOD.md each currently describe
|
**Early signal:** ARTEMIS.md, HERMES.md, CONSOLE.md and TRIPOD.md each currently describe
|
||||||
their own heat mechanics. After FABRIC.md, each should shrink to roughly three lines —
|
their own heat mechanics. After FABRIC-0.md, each should shrink to roughly three lines —
|
||||||
what an entry is here, what heat means, what the reap event is. If any one of them gets
|
what an entry is here, what heat means, what the reap event is. If any one of them gets
|
||||||
*longer*, that subsystem is fighting the fabric, and you will know which one before
|
*longer*, that subsystem is fighting the fabric, and you will know which one before
|
||||||
writing code.
|
writing code.
|
||||||
@@ -1562,7 +1562,7 @@ noun was overloaded.
|
|||||||
2.1** — `vm_physics_touch()` was restated on the virtual tick (no `now_ns` parameter at
|
2.1** — `vm_physics_touch()` was restated on the virtual tick (no `now_ns` parameter at
|
||||||
all), closing exactly the gap this point raised. This item's own cross-reference (*Refs:*
|
all), closing exactly the gap this point raised. This item's own cross-reference (*Refs:*
|
||||||
§19.6 #3) points back here; this note closes the loop the other direction. Never annotated
|
§19.6 #3) points back here; this note closes the loop the other direction. Never annotated
|
||||||
here at the time (found during the 2026-08-12 FABRIC-2.md audit).
|
here at the time (found during the 2026-08-12 FABRIC-1.md audit).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1623,13 +1623,13 @@ There is no renormalisation anywhere. `vm_physics_conserved()` tests a genuine i
|
|||||||
dropped. **The "guarded, shouldn't happen" description was only half right** — the
|
dropped. **The "guarded, shouldn't happen" description was only half right** — the
|
||||||
Hera-is-root case was reachable via `S" Hera" KILL` (`mama_word_kill()` called
|
Hera-is-root case was reachable via `S" Hera" KILL` (`mama_word_kill()` called
|
||||||
`vm_physics_retire()` before `capsule_vm_kill()`'s own Hera guard ran), fixed 2026-08-13
|
`vm_physics_retire()` before `capsule_vm_kill()`'s own Hera guard ran), fixed 2026-08-13
|
||||||
(`FABRIC-2.md` §C). The broken-parent-chain case remains genuinely unreachable
|
(`FABRIC-1.md` §C). The broken-parent-chain case remains genuinely unreachable
|
||||||
(`parent_vm_id` is set once at birth, never rewritten) and is not tracked further.
|
(`parent_vm_id` is set once at birth, never rewritten) and is not tracked further.
|
||||||
2. ~~**Truncation** (`:304-305`). The proportional fan-out computes
|
2. ~~**Truncation** (`:304-305`). The proportional fan-out computes
|
||||||
`(moved_total * heat) / others_total` per VM in integer arithmetic. The shares sum to
|
`(moved_total * heat) / others_total` per VM in integer arithmetic. The shares sum to
|
||||||
*less than* `moved_total`. **Every multi-VM touch loses a little heat**, so the sum drifts
|
*less than* `moved_total`. **Every multi-VM touch loses a little heat**, so the sum drifts
|
||||||
downward monotonically. `VM_PHYSICS_EPSILON_Q48` is 3277 — 5% of `Q48_ONE` — so given
|
downward monotonically. `VM_PHYSICS_EPSILON_Q48` is 3277 — 5% of `Q48_ONE` — so given
|
||||||
enough touches this would eventually trip.~~ **WRONG, corrected 2026-08-13** (`FABRIC-2.md`
|
enough touches this would eventually trip.~~ **WRONG, corrected 2026-08-13** (`FABRIC-1.md`
|
||||||
§B "Fleet heat leak," investigated when item 4.2 made this measurable) — the truncated
|
§B "Fleet heat leak," investigated when item 4.2 made this measurable) — the truncated
|
||||||
`share` is what actually moves on *both* sides of `vm_physics_transfer()`, so the fleet
|
`share` is what actually moves on *both* sides of `vm_physics_transfer()`, so the fleet
|
||||||
sum cannot drift from this path; only path 1 above can. Left standing here per this
|
sum cannot drift from this path; only path 1 above can. Left standing here per this
|
||||||
@@ -1655,7 +1655,7 @@ conservation law the project makes claims about. It is small per touch and may b
|
|||||||
tolerable, but it is monotonic, and nobody has measured how far it drifts over a long run.~~
|
tolerable, but it is monotonic, and nobody has measured how far it drifts over a long run.~~
|
||||||
**WRONG, corrected 2026-08-13** — see the strikethrough correction on path 2 above. Path 1
|
**WRONG, corrected 2026-08-13** — see the strikethrough correction on path 2 above. Path 1
|
||||||
(the dying-VM-is-root/broken-chain drop) is the only live defect; it is tracked in
|
(the dying-VM-is-root/broken-chain drop) is the only live defect; it is tracked in
|
||||||
`FABRIC-2.md` §C, not here, per this document's closure.
|
`FABRIC-1.md` §C, not here, per this document's closure.
|
||||||
|
|
||||||
### 20.3 Nesting — §12 Q6 is less open than it looks
|
### 20.3 Nesting — §12 Q6 is less open than it looks
|
||||||
|
|
||||||
@@ -1898,7 +1898,7 @@ level it was born on.
|
|||||||
4. ~~**§20.5 #4 remains open.**~~ **RESOLVED by item 1.7 (§25.2), 2026-08-04** — this
|
4. ~~**§20.5 #4 remains open.**~~ **RESOLVED by item 1.7 (§25.2), 2026-08-04** — this
|
||||||
section (§21.5) was written before that ruling and never updated to point to it. Bounded
|
section (§21.5) was written before that ruling and never updated to point to it. Bounded
|
||||||
by a Kconfig-tunable cap, default 2, enforced at VM-birth time. See §20.5 #4 for the full
|
by a Kconfig-tunable cap, default 2, enforced at VM-birth time. See §20.5 #4 for the full
|
||||||
resolution. Stale cross-reference, not new work (found during the 2026-08-12 FABRIC-2.md
|
resolution. Stale cross-reference, not new work (found during the 2026-08-12 FABRIC-1.md
|
||||||
audit).
|
audit).
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -3672,7 +3672,7 @@ document and committing that amendment as its own item.*
|
|||||||
> - Self-test scaffolding (`kernel_main.c`, diagnostic-only, not production code):
|
> - Self-test scaffolding (`kernel_main.c`, diagnostic-only, not production code):
|
||||||
> +119 / −0, 1 file.
|
> +119 / −0, 1 file.
|
||||||
> - **Total: 12 implementation files, +759 / −120 (879 lines changed).**
|
> - **Total: 12 implementation files, +759 / −120 (879 lines changed).**
|
||||||
> - **File count:** 12 implementation files (13 including this write-up in `FABRIC.md`
|
> - **File count:** 12 implementation files (13 including this write-up in `FABRIC-0.md`
|
||||||
> itself).
|
> itself).
|
||||||
- [ ] **4.3 — Console.** Settles 1.11 as part of the work. *Refs:* §17.5.
|
- [ ] **4.3 — Console.** Settles 1.11 as part of the work. *Refs:* §17.5.
|
||||||
|
|
||||||
@@ -5109,7 +5109,7 @@ document and committing that amendment as its own item.*
|
|||||||
- [x] **4.4c — Wire `console_fb_init()` into the boot path.** Found while verifying 4.4d
|
- [x] **4.4c — Wire `console_fb_init()` into the boot path.** Found while verifying 4.4d
|
||||||
(below) by screendump — not a bug in 4.4a/4.4b, a pre-existing, deliberate gap.
|
(below) by screendump — not a bug in 4.4a/4.4b, a pre-existing, deliberate gap.
|
||||||
`kernel_main.c:830-834` has an explicit comment: *"console.c / vt100.c are superseded by
|
`kernel_main.c:830-834` has an explicit comment: *"console.c / vt100.c are superseded by
|
||||||
the Console drawing-fabric redesign (FABRIC.md §27) and are deliberately not invoked
|
the Console drawing-fabric redesign (FABRIC-0.md §27) and are deliberately not invoked
|
||||||
here... `fb_init()` wires the raw GOP framebuffer directly... nothing else touches it."*
|
here... `fb_init()` wires the raw GOP framebuffer directly... nothing else touches it."*
|
||||||
Only raw `fb_init()` runs; `console_fb_init()` (which calls `vt100_init()`) is never
|
Only raw `fb_init()` runs; `console_fb_init()` (which calls `vt100_init()`) is never
|
||||||
called anywhere in the boot sequence. Consequence, confirmed by screendump: `vt100_putc()`
|
called anywhere in the boot sequence. Consequence, confirmed by screendump: `vt100_putc()`
|
||||||
@@ -6261,11 +6261,11 @@ document and committing that amendment as its own item.*
|
|||||||
|
|
||||||
> **Parent closed 2026-08-12.** All six sub-items (4.5a–4.5f) below are `[x]` done; 4.5f's
|
> **Parent closed 2026-08-12.** All six sub-items (4.5a–4.5f) below are `[x]` done; 4.5f's
|
||||||
> own done-when is satisfied by 4.4g's real landing, not a separate pass. This checkbox was
|
> own done-when is satisfied by 4.4g's real landing, not a separate pass. This checkbox was
|
||||||
> never flipped at the time — pure bookkeeping, not new work (found during the FABRIC-2.md
|
> never flipped at the time — pure bookkeeping, not new work (found during the FABRIC-1.md
|
||||||
> audit). One real loose end surfaced by 4.5f's own text, not closed by any of this: the
|
> audit). One real loose end surfaced by 4.5f's own text, not closed by any of this: the
|
||||||
> ACL-RWT DoE campaign's overhead numbers (CLAUDE.md, "+0.0054%–+0.0088%") were all measured
|
> ACL-RWT DoE campaign's overhead numbers (CLAUDE.md, "+0.0054%–+0.0088%") were all measured
|
||||||
> at `-O0`, before this item enabled real optimization — nobody has re-measured or even
|
> at `-O0`, before this item enabled real optimization — nobody has re-measured or even
|
||||||
> asked whether they're still comparable. Carried forward to FABRIC-2.md.
|
> asked whether they're still comparable. Carried forward to FABRIC-1.md.
|
||||||
|
|
||||||
- [x] **4.5a — Full ISR/interrupt-context global-state audit, all three architectures.**
|
- [x] **4.5a — Full ISR/interrupt-context global-state audit, all three architectures.**
|
||||||
Investigation only, no code change. For each architecture, enumerate every vector actually
|
Investigation only, no code change. For each architecture, enumerate every vector actually
|
||||||
@@ -6797,7 +6797,7 @@ so.*
|
|||||||
folded into item 4.2's scope by explicit Captain Bob ruling**, fixed and verified: a
|
folded into item 4.2's scope by explicit Captain Bob ruling**, fixed and verified: a
|
||||||
resident cell's evict-credit lands in the correct VM's reservoir with two VMs holding
|
resident cell's evict-credit lands in the correct VM's reservoir with two VMs holding
|
||||||
quotas (Hera + Hermes), not just asserted from reading the code. This bullet was never
|
quotas (Hera + Hermes), not just asserted from reading the code. This bullet was never
|
||||||
struck through at the time; stale, not new work (found during the 2026-08-12 FABRIC-2.md
|
struck through at the time; stale, not new work (found during the 2026-08-12 FABRIC-1.md
|
||||||
audit). See item 4.2's *Done when* list and its 2026-08-05 addendum.
|
audit). See item 4.2's *Done when* list and its 2026-08-05 addendum.
|
||||||
- **Taxonomy and lexicon.** Raised by Captain Bob 2026-08-04, mid-item-3.1. This document's
|
- **Taxonomy and lexicon.** Raised by Captain Bob 2026-08-04, mid-item-3.1. This document's
|
||||||
physics-flavored vocabulary (heat, mass, density, patron, Stadium, and the rest) needs a
|
physics-flavored vocabulary (heat, mass, density, patron, Stadium, and the rest) needs a
|
||||||
@@ -6805,7 +6805,7 @@ so.*
|
|||||||
covers the growing set of Kconfig build knobs (`STADIUM_MAX_VM_COUNT` and its siblings) so
|
covers the growing set of Kconfig build knobs (`STADIUM_MAX_VM_COUNT` and its siblings) so
|
||||||
the terminology in code, Kconfig help text, and this document stays one language instead
|
the terminology in code, Kconfig help text, and this document stays one language instead
|
||||||
of drifting apart. Not scoped, not placed in a phase. Captain Bob: "I guess that we didn't
|
of drifting apart. Not scoped, not placed in a phase. Captain Bob: "I guess that we didn't
|
||||||
finish out FABRIC.md quite as much as we thought."
|
finish out FABRIC-0.md quite as much as we thought."
|
||||||
|
|
||||||
### 25.7.1 Second review pass — 2026-08-03, pre-coding. Awaiting rulings.
|
### 25.7.1 Second review pass — 2026-08-03, pre-coding. Awaiting rulings.
|
||||||
|
|
||||||
+4420
File diff suppressed because it is too large
Load Diff
+4575
-4359
File diff suppressed because it is too large
Load Diff
-4636
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -1,12 +1,12 @@
|
|||||||
# FABRIC-4.md — forward-looking design notes
|
# FABRIC-4.md — forward-looking design notes
|
||||||
|
|
||||||
**Status:** Not a successor to `FABRIC-3.md` and not a punch-list document. `FABRIC-3.md` is
|
**Status:** Not a successor to `FABRIC-2.md` and not a punch-list document. `FABRIC-2.md` is
|
||||||
still the living document — nothing here supersedes it, and this file doesn't follow the
|
still the living document — nothing here supersedes it, and this file doesn't follow the
|
||||||
close-and-carry-forward discipline `FABRIC.md` → `FABRIC-2.md` → `FABRIC-3.md` used (that
|
close-and-carry-forward discipline `FABRIC-0.md` → `FABRIC-1.md` → `FABRIC-2.md` used (that
|
||||||
chain triggers on *closing* a document; `FABRIC-3.md` isn't closed). This is a separate,
|
chain triggers on *closing* a document; `FABRIC-2.md` isn't closed). This is a separate,
|
||||||
lower-discipline scratchpad for design ideas caught early — theory-stage, pre-punch-list,
|
lower-discipline scratchpad for design ideas caught early — theory-stage, pre-punch-list,
|
||||||
often missing a stated "why" on purpose (captured as raised, not fully justified yet). An idea
|
often missing a stated "why" on purpose (captured as raised, not fully justified yet). An idea
|
||||||
graduates out of here into `FABRIC-3.md` §I (or wherever `FABRIC-3.md` is by then) once it has
|
graduates out of here into `FABRIC-2.md` §I (or wherever `FABRIC-2.md` is by then) once it has
|
||||||
a real scope, not before.
|
a real scope, not before.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
+31
-31
@@ -513,9 +513,9 @@ Slide 2: "Formally: f(t) = f₀ * e^(-λt)"
|
|||||||
**Added 2026-08-13**, closing a real, acknowledged documentation-debt item: the physics
|
**Added 2026-08-13**, closing a real, acknowledged documentation-debt item: the physics
|
||||||
vocabulary built on top of the original heat/decay/inference model above (patron, mass,
|
vocabulary built on top of the original heat/decay/inference model above (patron, mass,
|
||||||
density, Stadium, and the Kconfig knob names built on them) accumulated across
|
density, Stadium, and the Kconfig knob names built on them) accumulated across
|
||||||
`FABRIC.md`/`FABRIC-2.md` without an explicit statement, in one place, that these are named
|
`FABRIC-0.md`/`FABRIC-1.md` without an explicit statement, in one place, that these are named
|
||||||
analogies — the same discipline Section III already applies to "heat," extended to the
|
analogies — the same discipline Section III already applies to "heat," extended to the
|
||||||
newer terms. Definitions below are drawn directly from `FABRIC.md`'s own DECIDED sections
|
newer terms. Definitions below are drawn directly from `FABRIC-0.md`'s own DECIDED sections
|
||||||
(cited inline), not invented here.
|
(cited inline), not invented here.
|
||||||
|
|
||||||
### 9.1 The metaphor, restated for this layer
|
### 9.1 The metaphor, restated for this layer
|
||||||
@@ -537,7 +537,7 @@ LITERAL IMPLEMENTATIONS (No Metaphor):
|
|||||||
K → Σ execution_heat_q48 across live entries, conserved at 1.0
|
K → Σ execution_heat_q48 across live entries, conserved at 1.0
|
||||||
```
|
```
|
||||||
|
|
||||||
The Stadium metaphor is a **venue**, not a building: §2 (`FABRIC.md`) is explicit that a
|
The Stadium metaphor is a **venue**, not a building: §2 (`FABRIC-0.md`) is explicit that a
|
||||||
patron *arrives and departs* — the Stadium holds what is live, not everything that exists.
|
patron *arrives and departs* — the Stadium holds what is live, not everything that exists.
|
||||||
That is the load-bearing distinction between "Stadium" and "warehouse" below, and it is why
|
That is the load-bearing distinction between "Stadium" and "warehouse" below, and it is why
|
||||||
the dictionary-at-rest is warehouse, not Stadium, even though every dictionary entry is
|
the dictionary-at-rest is warehouse, not Stadium, even though every dictionary entry is
|
||||||
@@ -549,29 +549,29 @@ the dictionary-at-rest is warehouse, not Stadium, even though every dictionary e
|
|||||||
*Definition*: The Stadium's fixed-size unit of storage — a patron header, or a continuation
|
*Definition*: The Stadium's fixed-size unit of storage — a patron header, or a continuation
|
||||||
cell owned by exactly one patron.
|
cell owned by exactly one patron.
|
||||||
*Formal*: A closed, two-constructor sum type: `Cell = Header | Continuation(owner)`, fixed
|
*Formal*: A closed, two-constructor sum type: `Cell = Header | Continuation(owner)`, fixed
|
||||||
at build time (`FABRIC.md` §3).
|
at build time (`FABRIC-0.md` §3).
|
||||||
*Measurement*: Proposed size 64 bytes (`FABRIC.md` §23.3, **not yet built** — see
|
*Measurement*: Proposed size 64 bytes (`FABRIC-0.md` §23.3, **not yet built** — see
|
||||||
`FABRIC-2.md`'s §23.4 #2 closure: the one real patron kind actually shipped, Hermes
|
`FABRIC-1.md`'s §23.4 #2 closure: the one real patron kind actually shipped, Hermes
|
||||||
messages, did not adopt this cell shape).
|
messages, did not adopt this cell shape).
|
||||||
*Category*: Storage unit.
|
*Category*: Storage unit.
|
||||||
*Warning*: Not a pointer target — links between cells are Stadium-array indices, never
|
*Warning*: Not a pointer target — links between cells are Stadium-array indices, never
|
||||||
addresses (`FABRIC.md` §3, §13).
|
addresses (`FABRIC-0.md` §3, §13).
|
||||||
|
|
||||||
**Code field**
|
**Code field**
|
||||||
*Definition*: A closed-enumeration behaviour tag stored in a patron header, dispatched by
|
*Definition*: A closed-enumeration behaviour tag stored in a patron header, dispatched by
|
||||||
the engine rather than branched on by kind.
|
the engine rather than branched on by kind.
|
||||||
*Formal*: `behaviour ∈ {MIGRATE, DELIVER, EXPIRE, COOL, ...}` — a fixed datatype, not an
|
*Formal*: `behaviour ∈ {MIGRATE, DELIVER, EXPIRE, COOL, ...}` — a fixed datatype, not an
|
||||||
open extension point (`FABRIC.md` §3, §13, §18.3).
|
open extension point (`FABRIC-0.md` §3, §13, §18.3).
|
||||||
*Category*: Dispatch mechanism.
|
*Category*: Dispatch mechanism.
|
||||||
*Note*: This is deliberately **the entire type system** — the engine never asks what kind
|
*Note*: This is deliberately **the entire type system** — the engine never asks what kind
|
||||||
of patron it holds, only what its code field says to do (`FABRIC.md` §3).
|
of patron it holds, only what its code field says to do (`FABRIC-0.md` §3).
|
||||||
|
|
||||||
**Density**
|
**Density**
|
||||||
*Definition*: A patron's heat share divided by its mass — heat per unit of occupied
|
*Definition*: A patron's heat share divided by its mass — heat per unit of occupied
|
||||||
Stadium floor space.
|
Stadium floor space.
|
||||||
*Formal*: `density(p) = heat(p) / mass(p)`, derived, never stored (`FABRIC.md` §19.2).
|
*Formal*: `density(p) = heat(p) / mass(p)`, derived, never stored (`FABRIC-0.md` §19.2).
|
||||||
*Measurement*: Used for ranking and admission (denser evicts sparser), not computed by a
|
*Measurement*: Used for ranking and admission (denser evicts sparser), not computed by a
|
||||||
separate scheduler — it is read, not decided (`FABRIC.md` §19.3).
|
separate scheduler — it is read, not decided (`FABRIC-0.md` §19.3).
|
||||||
*Category*: Derived quantity.
|
*Category*: Derived quantity.
|
||||||
*Warning*: This is the one place the thermodynamic metaphor is literal in form (quantity
|
*Warning*: This is the one place the thermodynamic metaphor is literal in form (quantity
|
||||||
per unit volume) even though heat itself remains metaphorical.
|
per unit volume) even though heat itself remains metaphorical.
|
||||||
@@ -581,65 +581,65 @@ per unit volume) even though heat itself remains metaphorical.
|
|||||||
*Formal*: `K = Σ execution_heat_q48`, held at `Q48_ONE` (1.0) by construction — verified by
|
*Formal*: `K = Σ execution_heat_q48`, held at `Q48_ONE` (1.0) by construction — verified by
|
||||||
`vm_physics_conserved()` (`capsule_vm_physics.c`).
|
`vm_physics_conserved()` (`capsule_vm_physics.c`).
|
||||||
*Measurement*: A correctness check, not a diagnostic — it is 1.0 by construction and can
|
*Measurement*: A correctness check, not a diagnostic — it is 1.0 by construction and can
|
||||||
never itself signal system state (`FABRIC.md` §14, §19.1). Entropy over the heat
|
never itself signal system state (`FABRIC-0.md` §14, §19.1). Entropy over the heat
|
||||||
*distribution* is the actual instrument; K is not.
|
*distribution* is the actual instrument; K is not.
|
||||||
*Category*: Invariant.
|
*Category*: Invariant.
|
||||||
*Warning*: Not an occupancy ratio (`Σmass / capacity`) — that definition was considered and
|
*Warning*: Not an occupancy ratio (`Σmass / capacity`) — that definition was considered and
|
||||||
explicitly rejected because it contradicts the already-implemented, tested mechanism
|
explicitly rejected because it contradicts the already-implemented, tested mechanism
|
||||||
(`FABRIC.md` §19.1).
|
(`FABRIC-0.md` §19.1).
|
||||||
|
|
||||||
**Mass**
|
**Mass**
|
||||||
*Definition*: The number of Stadium cells a patron occupies — its footprint.
|
*Definition*: The number of Stadium cells a patron occupies — its footprint.
|
||||||
*Formal*: Integer ≥ 1, an entry field independent of heat; never enters K
|
*Formal*: Integer ≥ 1, an entry field independent of heat; never enters K
|
||||||
(`FABRIC.md` §3, §19.2).
|
(`FABRIC-0.md` §3, §19.2).
|
||||||
*Category*: Structural quantity, not conserved.
|
*Category*: Structural quantity, not conserved.
|
||||||
*Note*: A large patron is not "referenced" from the Stadium — it simply occupies more
|
*Note*: A large patron is not "referenced" from the Stadium — it simply occupies more
|
||||||
cells. By-reference storage is reserved for things outside the Stadium entirely
|
cells. By-reference storage is reserved for things outside the Stadium entirely
|
||||||
(`FABRIC.md` §19.3, §23.1).
|
(`FABRIC-0.md` §19.3, §23.1).
|
||||||
|
|
||||||
**Mass conservation vs. heat conservation**
|
**Mass conservation vs. heat conservation**
|
||||||
*Definition*: Two independent invariants that must not be confused. Heat (K) is conserved
|
*Definition*: Two independent invariants that must not be confused. Heat (K) is conserved
|
||||||
globally and moved by traffic. Mass is conserved *per patron* during a residency —
|
globally and moved by traffic. Mass is conserved *per patron* during a residency —
|
||||||
identity and mass never change as a side effect of use — but is not a fleet-wide summed
|
identity and mass never change as a side effect of use — but is not a fleet-wide summed
|
||||||
invariant the way heat is (`FABRIC.md` §24.2).
|
invariant the way heat is (`FABRIC-0.md` §24.2).
|
||||||
|
|
||||||
**Patron**
|
**Patron**
|
||||||
*Definition*: A live thing occupying a Stadium cell or linked run of cells — the unit the
|
*Definition*: A live thing occupying a Stadium cell or linked run of cells — the unit the
|
||||||
Stadium actually holds.
|
Stadium actually holds.
|
||||||
*Formal*: One structure, no variants, no type field — identified by its code field's
|
*Formal*: One structure, no variants, no type field — identified by its code field's
|
||||||
behaviour, not by a kind tag (`FABRIC.md` §3, §13).
|
behaviour, not by a kind tag (`FABRIC-0.md` §3, §13).
|
||||||
*Measurement*: Nine header wires: identity, heat, TTL, pin, link, code field, mass,
|
*Measurement*: Nine header wires: identity, heat, TTL, pin, link, code field, mass,
|
||||||
payload, contains (`FABRIC.md` §3, with amendments cited in place).
|
payload, contains (`FABRIC-0.md` §3, with amendments cited in place).
|
||||||
*Category*: The Stadium's sole occupant type.
|
*Category*: The Stadium's sole occupant type.
|
||||||
*Known kinds (as of this writing)*: words (dictionary — fully migrated and live via
|
*Known kinds (as of this writing)*: words (dictionary — fully migrated and live via
|
||||||
`stadium_word_dispatch()`, `FABRIC.md` §16.3/§17.7), blocks (Artemis), messages (Hermes — shipped with a
|
`stadium_word_dispatch()`, `FABRIC-0.md` §16.3/§17.7), blocks (Artemis), messages (Hermes — shipped with a
|
||||||
**different** shape than this header, see `FABRIC-2.md`'s §23.4 #2 closure), VMs (Tripod,
|
**different** shape than this header, see `FABRIC-1.md`'s §23.4 #2 closure), VMs (Tripod,
|
||||||
`FABRIC.md` §20), dirty events (console, `FABRIC.md` §17.5). Five kinds, not four — an
|
`FABRIC-0.md` §20), dirty events (console, `FABRIC-0.md` §17.5). Five kinds, not four — an
|
||||||
earlier draft undercounted (`FABRIC.md` §1).
|
earlier draft undercounted (`FABRIC-0.md` §1).
|
||||||
|
|
||||||
**Reap**
|
**Reap**
|
||||||
*Definition*: The event that ends a patron's residency — not destruction, a return of its
|
*Definition*: The event that ends a patron's residency — not destruction, a return of its
|
||||||
cells and remaining heat to the pool.
|
cells and remaining heat to the pool.
|
||||||
*Formal*: Consumed on delivery (messages), on redraw (dirty events), on cooling below floor
|
*Formal*: Consumed on delivery (messages), on redraw (dirty events), on cooling below floor
|
||||||
(VMs), or on eviction by a denser newcomer (`FABRIC.md` §17.2, §17.5, §19.3).
|
(VMs), or on eviction by a denser newcomer (`FABRIC-0.md` §17.2, §17.5, §19.3).
|
||||||
*Category*: Lifecycle event.
|
*Category*: Lifecycle event.
|
||||||
|
|
||||||
**Stadium**
|
**Stadium**
|
||||||
*Definition*: A single, bounded region of memory outside any VM, holding everything
|
*Definition*: A single, bounded region of memory outside any VM, holding everything
|
||||||
currently live.
|
currently live.
|
||||||
*Formal*: A fixed-size array of cells, index-linked (not pointer-linked), allocated at
|
*Formal*: A fixed-size array of cells, index-linked (not pointer-linked), allocated at
|
||||||
boot before any VM exists, not part of the heap (`FABRIC.md` §2, §17.6).
|
boot before any VM exists, not part of the heap (`FABRIC-0.md` §2, §17.6).
|
||||||
*Measurement*: Per-VM quota over a single global cell pool, elastic under pressure,
|
*Measurement*: Per-VM quota over a single global cell pool, elastic under pressure,
|
||||||
arbitrated by Hera (`FABRIC.md` §22) — not per-VM physical regions.
|
arbitrated by Hera (`FABRIC-0.md` §22) — not per-VM physical regions.
|
||||||
*Category*: The bounded live-state substrate this whole vocabulary describes.
|
*Category*: The bounded live-state substrate this whole vocabulary describes.
|
||||||
*Warning*: "Live" is the operative word — the Stadium holds what is live, not everything
|
*Warning*: "Live" is the operative word — the Stadium holds what is live, not everything
|
||||||
that exists. A dictionary word sitting cold and unexecuted is warehouse, not Stadium, even
|
that exists. A dictionary word sitting cold and unexecuted is warehouse, not Stadium, even
|
||||||
once the dictionary itself migrates into this representation (`FABRIC.md` §2, §16.3).
|
once the dictionary itself migrates into this representation (`FABRIC-0.md` §2, §16.3).
|
||||||
|
|
||||||
**Warehouse**
|
**Warehouse**
|
||||||
*Definition*: What lies beneath the Stadium — storage for things not currently live.
|
*Definition*: What lies beneath the Stadium — storage for things not currently live.
|
||||||
*Formal*: Artemis (block storage) and the resting dictionary are warehouse; the Stadium is
|
*Formal*: Artemis (block storage) and the resting dictionary are warehouse; the Stadium is
|
||||||
the floor above it (`FABRIC.md` §17.5's three-category taxonomy: warehouse / Stadium /
|
the floor above it (`FABRIC-0.md` §17.5's three-category taxonomy: warehouse / Stadium /
|
||||||
utility).
|
utility).
|
||||||
*Category*: Storage layer, outside the engine's live-state model.
|
*Category*: Storage layer, outside the engine's live-state model.
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ utility).
|
|||||||
*Definition*: External infrastructure the Stadium consumes but never contains — beside the
|
*Definition*: External infrastructure the Stadium consumes but never contains — beside the
|
||||||
building, not inside or beneath it.
|
building, not inside or beneath it.
|
||||||
*Formal*: The framebuffer and devices generally; the engine never learns about a utility's
|
*Formal*: The framebuffer and devices generally; the engine never learns about a utility's
|
||||||
existence, which is what makes it a boundary rather than an exception (`FABRIC.md` §17.5).
|
existence, which is what makes it a boundary rather than an exception (`FABRIC-0.md` §17.5).
|
||||||
*Category*: Third taxonomy category, coordinate with warehouse and Stadium, not a
|
*Category*: Third taxonomy category, coordinate with warehouse and Stadium, not a
|
||||||
sub-case of either.
|
sub-case of either.
|
||||||
|
|
||||||
@@ -655,7 +655,7 @@ sub-case of either.
|
|||||||
|
|
||||||
Per Bob's own flag: code, Kconfig, and documentation terminology must not drift apart.
|
Per Bob's own flag: code, Kconfig, and documentation terminology must not drift apart.
|
||||||
The table below is the current, verified wiring status of every `STADIUM_*` Kconfig
|
The table below is the current, verified wiring status of every `STADIUM_*` Kconfig
|
||||||
symbol — confirmed by direct source grep during the `FABRIC-2.md` closure work this
|
symbol — confirmed by direct source grep during the `FABRIC-1.md` closure work this
|
||||||
vocabulary accompanies, not assumed from the symbol's name or Kconfig help text alone.
|
vocabulary accompanies, not assumed from the symbol's name or Kconfig help text alone.
|
||||||
|
|
||||||
| Kconfig symbol | Vocabulary term | Wiring status (2026-08-13) |
|
| Kconfig symbol | Vocabulary term | Wiring status (2026-08-13) |
|
||||||
@@ -664,8 +664,8 @@ vocabulary accompanies, not assumed from the symbol's name or Kconfig help text
|
|||||||
| `STADIUM_MEMORY_PERCENT` | Stadium capacity sizing | **Live** — read in `stadium.c` |
|
| `STADIUM_MEMORY_PERCENT` | Stadium capacity sizing | **Live** — read in `stadium.c` |
|
||||||
| `STADIUM_WORD_HEAT_QUANTUM` | Heat (word-patron admission) | **Live** — read in `stadium_words.c` |
|
| `STADIUM_WORD_HEAT_QUANTUM` | Heat (word-patron admission) | **Live** — read in `stadium_words.c` |
|
||||||
| `STADIUM_WORD_COOL_RATE_Q48` | Heat decay rate (word patrons) | **Live** — read in `stadium_words.c` |
|
| `STADIUM_WORD_COOL_RATE_Q48` | Heat decay rate (word patrons) | **Live** — read in `stadium_words.c` |
|
||||||
| `STADIUM_CONTAINS_DEPTH_MAX` | `contains` wire depth cap (§3, §8) | **Declared, not yet enforced** — reap-gating enforcement is item 3.5's scope, not implemented (`FABRIC-2.md` §A item 5.3 area; not a bug, a known sequencing gap) |
|
| `STADIUM_CONTAINS_DEPTH_MAX` | `contains` wire depth cap (§3, §8) | **Declared, not yet enforced** — reap-gating enforcement is item 3.5's scope, not implemented (`FABRIC-1.md` §A item 5.3 area; not a bug, a known sequencing gap) |
|
||||||
| `STADIUM_CAPACITY_TICK` | Capacity-loop cadence, distinct from heat's (§22.4) | **Dead** — declared with the correct intended default (1000, matching §22.4's precedent) but never read by any code path; only appearance beyond its own default is a compile-time `> 0` static assertion in `stadium.h`. Found and reported during this session's §12 Q5 closure (`FABRIC-2.md`) — `vm_physics_heartbeat_tick()` still literally shares `HEARTBEAT_INFERENCE_FREQUENCY` instead |
|
| `STADIUM_CAPACITY_TICK` | Capacity-loop cadence, distinct from heat's (§22.4) | **Dead** — declared with the correct intended default (1000, matching §22.4's precedent) but never read by any code path; only appearance beyond its own default is a compile-time `> 0` static assertion in `stadium.h`. Found and reported during this session's §12 Q5 closure (`FABRIC-1.md`) — `vm_physics_heartbeat_tick()` still literally shares `HEARTBEAT_INFERENCE_FREQUENCY` instead |
|
||||||
|
|
||||||
This table is a snapshot, not a promise — it will drift the moment any of these symbols is
|
This table is a snapshot, not a promise — it will drift the moment any of these symbols is
|
||||||
wired or unwired. Re-verify against source before relying on it for anything past a casual
|
wired or unwired. Re-verify against source before relying on it for anything past a casual
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
> Tripod/Stadium/word-level ACL existed, and before "Phase 1 Starting (HAL)" had any of the
|
> Tripod/Stadium/word-level ACL existed, and before "Phase 1 Starting (HAL)" had any of the
|
||||||
> meaning it has now. Kept for historical record only. For current status, see
|
> meaning it has now. Kept for historical record only. For current status, see
|
||||||
> `docs/lithosananke/ROADMAP.md` (repo-specific, LithosAnanke roadmap) and
|
> `docs/lithosananke/ROADMAP.md` (repo-specific, LithosAnanke roadmap) and
|
||||||
> `FABRIC.md`/`FABRIC-2.md`/`FABRIC-3.md` (design history and current work) — not this
|
> `FABRIC-0.md`/`FABRIC-1.md`/`FABRIC-2.md` (design history and current work) — not this
|
||||||
> document.
|
> document.
|
||||||
|
|
||||||
**Version**: 1.0
|
**Version**: 1.0
|
||||||
|
|||||||
+152
-152
File diff suppressed because it is too large
Load Diff
@@ -65,7 +65,7 @@ Block 4137
|
|||||||
( item 4.6 -- Stadium cell-index arena, not a heat arena. One )
|
( item 4.6 -- Stadium cell-index arena, not a heat arena. One )
|
||||||
( slot per possible LBN, holding STADIUM-NONE or a live cell )
|
( slot per possible LBN, holding STADIUM-NONE or a live cell )
|
||||||
( index -- residency exists only while a block is allocated )
|
( index -- residency exists only while a block is allocated )
|
||||||
( (admission-on-allocate, FABRIC-2.md item 4.6's ruling). )
|
( (admission-on-allocate, FABRIC-1.md item 4.6's ruling). )
|
||||||
CREATE BLK-CELL ART-DATA-BLKS CELLS ALLOT
|
CREATE BLK-CELL ART-DATA-BLKS CELLS ALLOT
|
||||||
Block 4138
|
Block 4138
|
||||||
( Cell-index accessors and LBN conversion. Heat itself now )
|
( Cell-index accessors and LBN conversion. Heat itself now )
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Block 4019
|
|||||||
( Policy words this file: BLK-ACL-CHECK )
|
( Policy words this file: BLK-ACL-CHECK )
|
||||||
( Mirrors ACL.4th's C-primitive/FORTH-policy split, )
|
( Mirrors ACL.4th's C-primitive/FORTH-policy split, )
|
||||||
( applied to blocks instead of words. )
|
( applied to blocks instead of words. )
|
||||||
( FABRIC-3.md H.12 step 16, 2026-09-03. )
|
( FABRIC-2.md H.12 step 16, 2026-09-03. )
|
||||||
256 CONSTANT BLK-ACL-BASE-TTL
|
256 CONSTANT BLK-ACL-BASE-TTL
|
||||||
|
|
||||||
Block 4020
|
Block 4020
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# capsules/contrib/
|
# capsules/contrib/
|
||||||
|
|
||||||
Milestone 7 (contributor capsules / trust tiers), FABRIC-3.md §I.5.
|
Milestone 7 (contributor capsules / trust tiers), FABRIC-2.md §I.5.
|
||||||
|
|
||||||
Any `.4th` file placed here gets `FLAG_CONTRIB` in addition to the usual
|
Any `.4th` file placed here gets `FLAG_CONTRIB` in addition to the usual
|
||||||
`FLAG_PRODUCTION | FLAG_EXPERIMENT` pair — `tools/mkcapsule.c`'s
|
`FLAG_PRODUCTION | FLAG_EXPERIMENT` pair — `tools/mkcapsule.c`'s
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
Block 4900
|
Block 4900
|
||||||
( fabric.4th -- Console drawing-fabric coordinate machinery )
|
( fabric.4th -- Console drawing-fabric coordinate machinery )
|
||||||
( FABRIC.md item 4.3.3. 45-degree cavalier orthographic )
|
( FABRIC-0.md item 4.3.3. 45-degree cavalier orthographic )
|
||||||
( projection. Z is depth-into-screen, not height. Q48.16 )
|
( projection. Z is depth-into-screen, not height. Q48.16 )
|
||||||
( throughout. Raw pixel write (PLOT/FB-WIDTH/FB-HEIGHT) is )
|
( throughout. Raw pixel write (PLOT/FB-WIDTH/FB-HEIGHT) is )
|
||||||
( C; this capsule is the FORTH-side policy on top of it. )
|
( C; this capsule is the FORTH-side policy on top of it. )
|
||||||
|
|||||||
+4
-4
@@ -6,7 +6,7 @@ Block 4925
|
|||||||
( (fabric.4th 5000-5002); straight strokes stay G-LINE. Not )
|
( (fabric.4th 5000-5002); straight strokes stay G-LINE. Not )
|
||||||
( every round-ish letter was converted -- only ones a single )
|
( every round-ish letter was converted -- only ones a single )
|
||||||
( circle/arc/ellipse renders cleanly without per-glyph angle )
|
( circle/arc/ellipse renders cleanly without per-glyph angle )
|
||||||
( tuning (S/s/&/2/3/5/6/8/9 etc. stay blocky; see FABRIC.md). )
|
( tuning (S/s/&/2/3/5/6/8/9 stay blocky; FABRIC-0.md). )
|
||||||
Block 4926
|
Block 4926
|
||||||
( Digit 0: ELLIPSE -- true oval, not a 6-line rectangle. )
|
( Digit 0: ELLIPSE -- true oval, not a 6-line rectangle. )
|
||||||
: G-0 ( -- adv )
|
: G-0 ( -- adv )
|
||||||
@@ -534,7 +534,7 @@ Block 4969
|
|||||||
500 ;
|
500 ;
|
||||||
|
|
||||||
Block 4970
|
Block 4970
|
||||||
( Latin-1 Supplement, 11 glyphs. codepoints per FABRIC.md )
|
( Latin-1 Supplement, 11 glyphs. codepoints per FABRIC-0.md )
|
||||||
( 27.6.4. DEGREE/CENT use curves; rest are line-only. )
|
( 27.6.4. DEGREE/CENT use curves; rest are line-only. )
|
||||||
: G-DEGREE ( -- adv ) 250 600 60 G-CIRCLE 350 ;
|
: G-DEGREE ( -- adv ) 250 600 60 G-CIRCLE 350 ;
|
||||||
: G-CENT ( -- adv )
|
: G-CENT ( -- adv )
|
||||||
@@ -600,7 +600,7 @@ Block 4975
|
|||||||
: G-NBSP ( -- adv ) 300 ;
|
: G-NBSP ( -- adv ) 300 ;
|
||||||
|
|
||||||
Block 4976
|
Block 4976
|
||||||
( General Punctuation, 7 glyphs. codepoints per FABRIC.md )
|
( General Punctuation, 7 glyphs. codepoints per FABRIC-0.md )
|
||||||
( 27.6.4. ELLIPSIS uses three CIRCLEs, matching PERIOD. )
|
( 27.6.4. ELLIPSIS uses three CIRCLEs, matching PERIOD. )
|
||||||
: G-LSQUOTE ( -- adv )
|
: G-LSQUOTE ( -- adv )
|
||||||
230 650 220 600 G-LINE
|
230 650 220 600 G-LINE
|
||||||
@@ -636,7 +636,7 @@ Block 4978
|
|||||||
|
|
||||||
Block 4979
|
Block 4979
|
||||||
( Real DISPATCH-DIGIT, replaces fabric.4th's placeholder. )
|
( Real DISPATCH-DIGIT, replaces fabric.4th's placeholder. )
|
||||||
( Redefinition needed -- CASE binds early (FABRIC.md 27.6.5).)
|
( Redefinition needed -- CASE binds early (FABRIC-0.md 27.6.5).)
|
||||||
: DISPATCH-DIGIT ( codepoint -- adv ) CASE
|
: DISPATCH-DIGIT ( codepoint -- adv ) CASE
|
||||||
48 OF G-0 ENDOF 49 OF G-1 ENDOF 50 OF G-2 ENDOF
|
48 OF G-0 ENDOF 49 OF G-1 ENDOF 50 OF G-2 ENDOF
|
||||||
51 OF G-3 ENDOF 52 OF G-4 ENDOF 53 OF G-5 ENDOF
|
51 OF G-3 ENDOF 52 OF G-4 ENDOF 53 OF G-5 ENDOF
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# capsules/fonts/
|
# capsules/fonts/
|
||||||
|
|
||||||
Font capsule for FABRIC.md items 4.3.7/4.3.7b (TrueType rendering, adjunct
|
Font capsule for FABRIC-0.md items 4.3.7/4.3.7b (TrueType rendering, adjunct
|
||||||
to the stroke font — §27.7).
|
to the stroke font — §27.7).
|
||||||
|
|
||||||
| File | License | Provenance |
|
| File | License | Provenance |
|
||||||
|------|---------|------------|
|
|------|---------|------------|
|
||||||
| `JetBrainsMono-Regular.ttf` | SIL Open Font License, Version 1.1 | The JetBrains Mono Project Authors, copyright 2020 (https://github.com/JetBrains/JetBrainsMono). License string confirmed by reading the font's own embedded `name` table directly (`strings -e b JetBrainsMono-Regular.ttf`) — not taken on trust from the filename. |
|
| `JetBrainsMono-Regular.ttf` | SIL Open Font License, Version 1.1 | The JetBrains Mono Project Authors, copyright 2020 (https://github.com/JetBrains/JetBrainsMono). License string confirmed by reading the font's own embedded `name` table directly (`strings -e b JetBrainsMono-Regular.ttf`) — not taken on trust from the filename. |
|
||||||
|
|
||||||
Chosen as the v1 test/default TTF font 2026-08-10 (FABRIC.md §27.7 "Update
|
Chosen as the v1 test/default TTF font 2026-08-10 (FABRIC-0.md §27.7 "Update
|
||||||
2026-08-10"), resolving that item's licensing-check blocker.
|
2026-08-10"), resolving that item's licensing-check blocker.
|
||||||
|
|
||||||
**Embedded as a raw-binary capsule, not text-encoded.** `tools/mkcapsule.c`'s
|
**Embedded as a raw-binary capsule, not text-encoded.** `tools/mkcapsule.c`'s
|
||||||
@@ -21,7 +21,7 @@ relative path, per `build_capsule_name()`). Fetch it with
|
|||||||
`capsule_find_by_name()` (`include/starkernel/capsule.h`) — that returns
|
`capsule_find_by_name()` (`include/starkernel/capsule.h`) — that returns
|
||||||
`offset`/`length` into the arena without ever routing through
|
`offset`/`length` into the arena without ever routing through
|
||||||
`capsule_exec_payload()`, so nothing tries to interpret the font bytes as
|
`capsule_exec_payload()`, so nothing tries to interpret the font bytes as
|
||||||
FORTH source. This superseded FABRIC.md §27.7 decision #3 (hex/base64
|
FORTH source. This superseded FABRIC-0.md §27.7 decision #3 (hex/base64
|
||||||
text-encoding) — see that section's 2026-08-10 correction note.
|
text-encoding) — see that section's 2026-08-10 correction note.
|
||||||
|
|
||||||
No SIL OFL 1.1 full license text is bundled here yet — only the font's own
|
No SIL OFL 1.1 full license text is bundled here yet — only the font's own
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Block 4855
|
Block 4855
|
||||||
( Hermes v1 -- WELCOME. Generic messaging vocab moved to )
|
( Hermes v1 -- WELCOME. Generic messaging vocab moved to )
|
||||||
( common:messaging.4th, FABRIC-3.md Phase C 2026-08-28. )
|
( common:messaging.4th, FABRIC-2.md Phase C 2026-08-28. )
|
||||||
: WELCOME ( -- ) LOG-INFO" Hermes: loaded" ;
|
: WELCOME ( -- ) LOG-INFO" Hermes: loaded" ;
|
||||||
WELCOME
|
WELCOME
|
||||||
Block 4153
|
Block 4153
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Block 4021
|
|||||||
( Hera's own dict -- delivered here by messaging.4th's )
|
( Hera's own dict -- delivered here by messaging.4th's )
|
||||||
( MSG-DELIVER via VM-EXEC when a session calls the )
|
( MSG-DELIVER via VM-EXEC when a session calls the )
|
||||||
( common:messaging.4th SEND-ELEVATE-REQUEST entrypoint. )
|
( common:messaging.4th SEND-ELEVATE-REQUEST entrypoint. )
|
||||||
( FABRIC-3.md H.12 step 21, 2026-09-03. )
|
( FABRIC-2.md H.12 step 21, 2026-09-03. )
|
||||||
CREATE ELEVATE-PK-BUF 32 ALLOT
|
CREATE ELEVATE-PK-BUF 32 ALLOT
|
||||||
|
|
||||||
Block 4022
|
Block 4022
|
||||||
|
|||||||
+2
-2
@@ -85,7 +85,7 @@ carrying timestamp noise in git history.
|
|||||||
|
|
||||||
- `artemis-metafence-fresh.img` — 30MB raw image, blank at creation,
|
- `artemis-metafence-fresh.img` — 30MB raw image, blank at creation,
|
||||||
added 2026-08-26 for the top-of-device system-metadata fence
|
added 2026-08-26 for the top-of-device system-metadata fence
|
||||||
(`meta_fence_blocks` in `blk_volume_meta_t`, FABRIC-3.md Phase 8 §C).
|
(`meta_fence_blocks` in `blk_volume_meta_t`, FABRIC-2.md Phase 8 §C).
|
||||||
Same reasoning as `artemis-reloc-test.img` above: the fence is only
|
Same reasoning as `artemis-reloc-test.img` above: the fence is only
|
||||||
initialized to `BLK_META_FENCE_INIT` (128) by
|
initialized to `BLK_META_FENCE_INIT` (128) by
|
||||||
`blk_compute_fresh_geometry()` on a fresh format, so a genuinely blank
|
`blk_compute_fresh_geometry()` on a fresh format, so a genuinely blank
|
||||||
@@ -103,7 +103,7 @@ carrying timestamp noise in git history.
|
|||||||
or misreading adjacent fields.
|
or misreading adjacent fields.
|
||||||
|
|
||||||
- `zuse.img` — 64MB raw image simulating the physical Zuse superuser
|
- `zuse.img` — 64MB raw image simulating the physical Zuse superuser
|
||||||
thumbdrive for QEMU testing (FABRIC-3.md, Phase 8: `zuse.img` "bleach"
|
thumbdrive for QEMU testing (FABRIC-2.md, Phase 8: `zuse.img` "bleach"
|
||||||
mechanism, added 2026-08-26). **64MB is only this fixture's size, not a
|
mechanism, added 2026-08-26). **64MB is only this fixture's size, not a
|
||||||
constraint on real home-blocks thumbdrives** (Captain Bob, 2026-08-26) —
|
constraint on real home-blocks thumbdrives** (Captain Bob, 2026-08-26) —
|
||||||
the design is not bound to any particular drive size; `homeblocks_sig_t`'s
|
the design is not bound to any particular drive size; `homeblocks_sig_t`'s
|
||||||
|
|||||||
Binary file not shown.
@@ -597,7 +597,7 @@ like `ttf_words.c`, not a word-registration file.
|
|||||||
## Console Fabric — Framebuffer (`framebuffer_words.c`)
|
## Console Fabric — Framebuffer (`framebuffer_words.c`)
|
||||||
|
|
||||||
Kernel-only (`__STARKERNEL__`); no-ops on hosted builds. Raw hardware-boundary access —
|
Kernel-only (`__STARKERNEL__`); no-ops on hosted builds. Raw hardware-boundary access —
|
||||||
FABRIC.md item 4.3.3.
|
FABRIC-0.md item 4.3.3.
|
||||||
|
|
||||||
| Word | Stack Effect | Description |
|
| Word | Stack Effect | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -618,7 +618,7 @@ FABRIC.md item 4.3.3.
|
|||||||
|
|
||||||
## Console Fabric — TrueType Text (`ttf_words.c`)
|
## Console Fabric — TrueType Text (`ttf_words.c`)
|
||||||
|
|
||||||
Kernel-only (`__STARKERNEL__`); no-op on hosted builds. FABRIC.md item 4.3.7e.
|
Kernel-only (`__STARKERNEL__`); no-op on hosted builds. FABRIC-0.md item 4.3.7e.
|
||||||
|
|
||||||
| Word | Stack Effect | Description |
|
| Word | Stack Effect | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -626,7 +626,7 @@ Kernel-only (`__STARKERNEL__`); no-op on hosted builds. FABRIC.md item 4.3.7e.
|
|||||||
|
|
||||||
## Console Fabric — Scrollback (`scroll_words.c`)
|
## Console Fabric — Scrollback (`scroll_words.c`)
|
||||||
|
|
||||||
Kernel-only (`__STARKERNEL__`); no-op on hosted builds. FABRIC.md item 4.4q (boot-mode
|
Kernel-only (`__STARKERNEL__`); no-op on hosted builds. FABRIC-0.md item 4.4q (boot-mode
|
||||||
scrollback added by 4.4ac).
|
scrollback added by 4.4ac).
|
||||||
|
|
||||||
| Word | Stack Effect | Description |
|
| Word | Stack Effect | Description |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# M7.1: Init Capsule Architecture
|
# M7.1: Init Capsule Architecture
|
||||||
|
|
||||||
**Status:** Shipped and live, not just designed — this document predates the actual
|
**Status:** Shipped and live, not just designed — this document predates the actual
|
||||||
capsule/Tripod/Stadium work; see `FABRIC.md`/`FABRIC-2.md`/`FABRIC-3.md` for real status
|
capsule/Tripod/Stadium work; see `FABRIC-0.md`/`FABRIC-1.md`/`FABRIC-2.md` for real status
|
||||||
(per `.claude/CLAUDE.md`'s standing redirect)
|
(per `.claude/CLAUDE.md`'s standing redirect)
|
||||||
**Branch:** `master` (post-split; the old `lithosananke` branch no longer exists in this repo)
|
**Branch:** `master` (post-split; the old `lithosananke` branch no longer exists in this repo)
|
||||||
**Prerequisite:** M7 (VM Parity Validation)
|
**Prerequisite:** M7 (VM Parity Validation)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
**Branch:** `master` (post-split: this repo's `master` is the sole LithosAnanke production
|
**Branch:** `master` (post-split: this repo's `master` is the sole LithosAnanke production
|
||||||
line; the old `lithosananke` branch belonged to the pre-split combined monorepo and no
|
line; the old `lithosananke` branch belonged to the pre-split combined monorepo and no
|
||||||
longer exists here — see `.claude/CLAUDE.md`'s "On the branch topology" note)
|
longer exists here — see `.claude/CLAUDE.md`'s "On the branch topology" note)
|
||||||
**Current:** M7.1 in progress — see `FABRIC.md`/`FABRIC-2.md`/`FABRIC-3.md` for real status
|
**Current:** M7.1 in progress — see `FABRIC-0.md`/`FABRIC-1.md`/`FABRIC-2.md` for real status
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ belongs here.
|
|||||||
|
|
||||||
Applied to the two planned releases: the **v2.0.0** cut (even major, so LTS) is the QEMU
|
Applied to the two planned releases: the **v2.0.0** cut (even major, so LTS) is the QEMU
|
||||||
release; **v2.5.0** is the hardware bare-metal release that transfers v2.0.0's QEMU story to
|
release; **v2.5.0** is the hardware bare-metal release that transfers v2.0.0's QEMU story to
|
||||||
real boards. See `FABRIC-3.md` §G for the release-gate punch lists.
|
real boards. See `FABRIC-2.md` §G for the release-gate punch lists.
|
||||||
|
|
||||||
**Board-by-board hardware rollout, decided 2026-08-29 (extends the above as boards come
|
**Board-by-board hardware rollout, decided 2026-08-29 (extends the above as boards come
|
||||||
online).** Real silicon is arriving incrementally (Beelink SER5 in hand now; RasPi 5 + Milk-V
|
online).** Real silicon is arriving incrementally (Beelink SER5 in hand now; RasPi 5 + Milk-V
|
||||||
@@ -151,8 +151,8 @@ M4 APIC ██████████████████
|
|||||||
M5 Timer ████████████████████ COMPLETE
|
M5 Timer ████████████████████ COMPLETE
|
||||||
M6 Heap ████████████████████ COMPLETE
|
M6 Heap ████████████████████ COMPLETE
|
||||||
M7 VM Parity ████████████████████ COMPLETE
|
M7 VM Parity ████████████████████ COMPLETE
|
||||||
M7.1 Capsules ████████████████░░░░ LIVE — see FABRIC.md/FABRIC-2.md/FABRIC-3.md
|
M7.1 Capsules ████████████████░░░░ LIVE — see FABRIC-0.md/FABRIC-1.md/FABRIC-2.md
|
||||||
M8 REPL ░░░░░░░░░░░░░░░░░░░░ OBSOLETE — see FABRIC.md §25.5 item 4.4
|
M8 REPL ░░░░░░░░░░░░░░░░░░░░ OBSOLETE — see FABRIC-0.md §25.5 item 4.4
|
||||||
M9 Block I/O ░░░░░░░░░░░░░░░░░░░░ PLANNED
|
M9 Block I/O ░░░░░░░░░░░░░░░░░░░░ PLANNED
|
||||||
M10 Networking ░░░░░░░░░░░░░░░░░░░░ FUTURE
|
M10 Networking ░░░░░░░░░░░░░░░░░░░░ FUTURE
|
||||||
```
|
```
|
||||||
@@ -328,15 +328,15 @@ APIC Timer: started
|
|||||||
**Goal:** Content-addressed, immutable init capsules for VM birth
|
**Goal:** Content-addressed, immutable init capsules for VM birth
|
||||||
|
|
||||||
**Status:** Design Complete (see [M7.1.md](M7.1.md)) — this section predates the actual
|
**Status:** Design Complete (see [M7.1.md](M7.1.md)) — this section predates the actual
|
||||||
capsule/Tripod/Stadium work and is not current. **See `FABRIC.md`/`FABRIC-2.md` for real
|
capsule/Tripod/Stadium work and is not current. **See `FABRIC-0.md`/`FABRIC-1.md` for real
|
||||||
status** (per `.claude/CLAUDE.md`'s standing redirect) — Tripod (Hera/Hermes/Artemis),
|
status** (per `.claude/CLAUDE.md`'s standing redirect) — Tripod (Hera/Hermes/Artemis),
|
||||||
word-level ACL Phases 1–7, and the Stadium physics-economy migration are all live, not just
|
word-level ACL Phases 1–7, and the Stadium physics-economy migration are all live, not just
|
||||||
designed. Most recently: item 4.6 (Artemis's block-heat arena migrated to Stadium
|
designed. Most recently: item 4.6 (Artemis's block-heat arena migrated to Stadium
|
||||||
admission-on-allocate) verified passing its 30-rep stress campaign on all three
|
admission-on-allocate) verified passing its 30-rep stress campaign on all three
|
||||||
architectures 2026-08-18, after fixing a quota-grant ordering bug (`capsule_birth.c`) that
|
architectures 2026-08-18, after fixing a quota-grant ordering bug (`capsule_birth.c`) that
|
||||||
had made every admission fail; see `FABRIC-2.md` Section H. The same pass also fixed a
|
had made every admission fail; see `FABRIC-1.md` Section H. The same pass also fixed a
|
||||||
long-standing aarch64-only crash on `BYE` (wrong PSCI conduit — SMC has nothing to answer it
|
long-standing aarch64-only crash on `BYE` (wrong PSCI conduit — SMC has nothing to answer it
|
||||||
under AAVMF/no-EL3 boot; switched to HVC), see `FABRIC-2.md` Section I.
|
under AAVMF/no-EL3 boot; switched to HVC), see `FABRIC-1.md` Section I.
|
||||||
|
|
||||||
**Core Concepts:**
|
**Core Concepts:**
|
||||||
|
|
||||||
@@ -379,7 +379,7 @@ under AAVMF/no-EL3 boot; switched to HVC), see `FABRIC-2.md` Section I.
|
|||||||
## Phase 4: Interactive Forth (M8)
|
## Phase 4: Interactive Forth (M8)
|
||||||
|
|
||||||
> **⚠ OBSOLETE (2026-08-11).** This entire M8 section is superseded by
|
> **⚠ OBSOLETE (2026-08-11).** This entire M8 section is superseded by
|
||||||
> `FABRIC.md` §25.5 item 4.4 (REPL). The console/REPL design has moved past
|
> `FABRIC-0.md` §25.5 item 4.4 (REPL). The console/REPL design has moved past
|
||||||
> what's scoped here — do not use this section as a source for REPL or
|
> what's scoped here — do not use this section as a source for REPL or
|
||||||
> CANVAS design decisions. Kept in place for history only.
|
> CANVAS design decisions. Kept in place for history only.
|
||||||
|
|
||||||
@@ -387,7 +387,7 @@ under AAVMF/no-EL3 boot; switched to HVC), see `FABRIC-2.md` Section I.
|
|||||||
|
|
||||||
**Status:** Scoped 2026-08-11 (this section). Substrate (interrupt-driven keyboard
|
**Status:** Scoped 2026-08-11 (this section). Substrate (interrupt-driven keyboard
|
||||||
input, glyph rendering) already complete via Stadium's Console fabric work
|
input, glyph rendering) already complete via Stadium's Console fabric work
|
||||||
(FABRIC.md §25.5 items 4.3.5–4.3.7f) — see "What's already done" below. This
|
(FABRIC-0.md §25.5 items 4.3.5–4.3.7f) — see "What's already done" below. This
|
||||||
scoping pass covers what's left: wiring the existing keyboard-event stream into
|
scoping pass covers what's left: wiring the existing keyboard-event stream into
|
||||||
the REPL's character input path.
|
the REPL's character input path.
|
||||||
|
|
||||||
@@ -401,11 +401,11 @@ is a second input source feeding the same loop.
|
|||||||
aarch64/riscv64 virtio-keyboard-pci + GIC/PLIC), converged behind one shared
|
aarch64/riscv64 virtio-keyboard-pci + GIC/PLIC), converged behind one shared
|
||||||
interface: `KEY-EVENT ( -- keycode pressed -1 | 0 )` in
|
interface: `KEY-EVENT ( -- keycode pressed -1 | 0 )` in
|
||||||
`src/word_source/keyboard_words.c`, `keycode` in the Linux input keycode
|
`src/word_source/keyboard_words.c`, `keycode` in the Linux input keycode
|
||||||
namespace. FABRIC.md items 4.3.5–4.3.5f, verified live on all three
|
namespace. FABRIC-0.md items 4.3.5–4.3.5f, verified live on all three
|
||||||
architectures with real keypresses.
|
architectures with real keypresses.
|
||||||
- Glyph rendering, both paths: the stroke-drawn font (`TEXT`, capsule-based,
|
- Glyph rendering, both paths: the stroke-drawn font (`TEXT`, capsule-based,
|
||||||
113-glyph v1 repertoire, FABRIC.md 4.3.6–4.3.6g) and TrueType (`TTF-TEXT`,
|
113-glyph v1 repertoire, FABRIC-0.md 4.3.6–4.3.6g) and TrueType (`TTF-TEXT`,
|
||||||
proportional spacing via real `hmtx` advance widths, FABRIC.md 4.3.7–4.3.7f).
|
proportional spacing via real `hmtx` advance widths, FABRIC-0.md 4.3.7–4.3.7f).
|
||||||
Neither is required for the REPL text itself, though — see the VT100 finding
|
Neither is required for the REPL text itself, though — see the VT100 finding
|
||||||
below.
|
below.
|
||||||
- **The REPL's on-screen text already renders independently of both of the
|
- **The REPL's on-screen text already renders independently of both of the
|
||||||
@@ -468,7 +468,7 @@ ok 1 2 + .
|
|||||||
3 ok
|
3 ok
|
||||||
```
|
```
|
||||||
(via a real keypress on all three architectures, same live-keypress
|
(via a real keypress on all three architectures, same live-keypress
|
||||||
verification standard FABRIC.md 4.3.5f already established — not a
|
verification standard FABRIC-0.md 4.3.5f already established — not a
|
||||||
serial-injected synthetic test, though serial injection must still work
|
serial-injected synthetic test, though serial injection must still work
|
||||||
identically afterward.)
|
identically afterward.)
|
||||||
|
|
||||||
@@ -546,7 +546,7 @@ LithosAnanke is successful when:
|
|||||||
1. **M7 Parity** — VM dictionary hash reproducible across boots
|
1. **M7 Parity** — VM dictionary hash reproducible across boots
|
||||||
2. **M7.1 Capsules** — Birth protocol enforced, provenance logged
|
2. **M7.1 Capsules** — Birth protocol enforced, provenance logged
|
||||||
3. ~~**M8 REPL** — Interactive Forth at bare metal~~ — superseded, this criterion is now met
|
3. ~~**M8 REPL** — Interactive Forth at bare metal~~ — superseded, this criterion is now met
|
||||||
via Stadium's Console fabric work (`FABRIC.md` §25.5 item 4.4), not a standalone M8; see
|
via Stadium's Console fabric work (`FABRIC-0.md` §25.5 item 4.4), not a standalone M8; see
|
||||||
the OBSOLETE banner above Phase 4
|
the OBSOLETE banner above Phase 4
|
||||||
4. **M9 Persistence** — State survives reboot
|
4. **M9 Persistence** — State survives reboot
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ What actually exists, as of 2026-08-19:
|
|||||||
|-----------|------|--------------|---------------|
|
|-----------|------|--------------|---------------|
|
||||||
| Word-level DoE (**this HOWTO**) | `doe.4th` | `DOE` / `EXEC-DOE ( seed n-reps -- )` | A single embedded arithmetic workload (`DOE-WORK`), run across the 16 L8 factor configurations, streaming a CSV row per run to serial. Not auto-run anywhere. |
|
| Word-level DoE (**this HOWTO**) | `doe.4th` | `DOE` / `EXEC-DOE ( seed n-reps -- )` | A single embedded arithmetic workload (`DOE-WORK`), run across the 16 L8 factor configurations, streaming a CSV row per run to serial. Not auto-run anywhere. |
|
||||||
| Compudynamics fleet campaign | `doe-campaign.4th` | `CAMPAIGN` / `SMOKE-CAMPAIGN` / `THREE-VM-CAMPAIGN` | Spawns Hermes/Artemis and drives real `VM-EXEC` touches between them to measure fleet heat conservation (`VM-CONSERVED?`). Not auto-run anywhere. |
|
| Compudynamics fleet campaign | `doe-campaign.4th` | `CAMPAIGN` / `SMOKE-CAMPAIGN` / `THREE-VM-CAMPAIGN` | Spawns Hermes/Artemis and drives real `VM-EXEC` touches between them to measure fleet heat conservation (`VM-CONSERVED?`). Not auto-run anywhere. |
|
||||||
| Artemis stress campaign | `capsules/artemis/init.4th` | `ART-STRESS-CAMPAIGN` | Runs unconditionally at the bottom of the file, so it fires automatically every time Artemis is born. This is the actual source of the live `[Artemis][HADES][DOE ]` CSV rows visible during every kernel boot — unrelated to either mechanism above, and the subject of FABRIC-2.md's item 4.6 fix. |
|
| Artemis stress campaign | `capsules/artemis/init.4th` | `ART-STRESS-CAMPAIGN` | Runs unconditionally at the bottom of the file, so it fires automatically every time Artemis is born. This is the actual source of the live `[Artemis][HADES][DOE ]` CSV rows visible during every kernel boot — unrelated to either mechanism above, and the subject of FABRIC-1.md's item 4.6 fix. |
|
||||||
|
|
||||||
Only the first is a self-contained "package/library" in the sense the
|
Only the first is a self-contained "package/library" in the sense the
|
||||||
cookbook wants — a capsule you load and call with your own parameters, not
|
cookbook wants — a capsule you load and call with your own parameters, not
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
# SDK HOWTO — `capsules/sdk.4th`
|
# SDK HOWTO — `capsules/sdk.4th`
|
||||||
|
|
||||||
**Status:** WORKING. Part of the v1.9.0 scoping work (FABRIC-2.md section K).
|
**Status:** WORKING. Part of the v1.9.0 scoping work (FABRIC-1.md section K).
|
||||||
Loads the two cookbook capsules (turtle graphics, DoE library) and adds an
|
Loads the two cookbook capsules (turtle graphics, DoE library) and adds an
|
||||||
`SDK` vocabulary entry point plus `FENCE` protection on top of them.
|
`SDK` vocabulary entry point plus `FENCE` protection on top of them.
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ word wrongly destroyed every other word back to the fence too; forgetting
|
|||||||
an older word (which correctly cascades to remove newer words, per
|
an older word (which correctly cascades to remove newer words, per
|
||||||
FORTH-79 semantics) crashed with a SIGSEGV — a use-after-free in the
|
FORTH-79 semantics) crashed with a SIGSEGV — a use-after-free in the
|
||||||
dictionary relink logic. Found and fixed as part of this work; full
|
dictionary relink logic. Found and fixed as part of this work; full
|
||||||
root-cause writeup in FABRIC-2.md section K. Three POST cases were added to
|
root-cause writeup in FABRIC-1.md section K. Three POST cases were added to
|
||||||
`dictionary_manipulation_words_test.c` (Module 14) alongside `FORGET`'s
|
`dictionary_manipulation_words_test.c` (Module 14) alongside `FORGET`'s
|
||||||
own, including the exact regression scenario, so it can't silently return.
|
own, including the exact regression scenario, so it can't silently return.
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ rather than a `POLYGON` call with `n=5`.
|
|||||||
documented in `DOE-LIBRARY-HOWTO-20260819.md`) — it carried a stale
|
documented in `DOE-LIBRARY-HOWTO-20260819.md`) — it carried a stale
|
||||||
`TEMP: ... revert once that run is done` comment for a verification
|
`TEMP: ... revert once that run is done` comment for a verification
|
||||||
run that had already closed. Reverted to disabled, matching the
|
run that had already closed. Reverted to disabled, matching the
|
||||||
file's own note (FABRIC-2.md section K/L).
|
file's own note (FABRIC-1.md section K/L).
|
||||||
- The kernel's heartbeat CSV logging (`[HADES][DOE ]` rows) draws to
|
- The kernel's heartbeat CSV logging (`[HADES][DOE ]` rows) draws to
|
||||||
the *same* console surface `PLOT` draws pixels to, and scrolls
|
the *same* console surface `PLOT` draws pixels to, and scrolls
|
||||||
continuously — anything drawn gets visually overwritten within a
|
continuously — anything drawn gets visually overwritten within a
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user