Phase 5 close-out: Isabelle pass, doc sweep, SBOM, version bump (FABRIC-3.6.md tasks 5.1-5.4)
5.1: Isabelle/HOL pass (52 theories, clean) -- restated the boundary rather than just citing the green build: proof/ scope was already entirely outside this reshuffle's footprint (src/starkernel/, capsules/*.4th), so the boundary is unchanged, not moved. 5.2: Documentation sweep. CLAUDE.md's stale WIP banner and Tripod fleet description updated now that Phases 0-4 have actually landed (Hera/ Artemis/Hestia, no Hermes). MANIFEST.md rides the strip -- hermes/init.4th's block table replaced with a deletion note, init.4th/doe-campaign.4th/ hestia/init.4th entries corrected to match the post-strip live files. Confirmed the TRIPOD.md/0.1 contradiction was already resolved (2026-08-13). Settled the superseded-docs call explicitly: archive as-is, do not rewrite. Fixed experiments/bare_metal/README.md's block-size framing (still said 1024-byte budget; real rule is 64 chars x 16 lines). K-qualification checked clean against the two living documents; full retroactive sweep of the closed archival FABRIC corpus explicitly declined as disproportionate. 5.3: make sbom. Installed syft (user-local, approved). Found and fixed a real Makefile bug while at it -- the sbom target hardcoded --source-name StarForth, so DocumentName was wrong even after regenerating. 5.4: LITHOS_VERSION 2.0.0 -> 2.1.0, engine VERSION 3.1.0 -> 3.2.0 (minor, per the dictionary-visible-only rule). Replaced the stale version-comment block in Makefile.starkernel (had the odd/even LTS rule backwards) and docs/lithosananke/ROADMAP.md's retired versioning-policy section with the ratified ladder. Verified on all three architectures; riscv64's first pass hit a transient virtio_blk timeout during boot-time Zuse genesis mint, reported and confirmed non-reproducing on an immediate clean retry. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
3e201c82a5
commit
a4ad14aec6
@@ -137,16 +137,22 @@ before building) rather than wiring it into `doe.4th`.
|
||||
## `.4th` File Structure
|
||||
|
||||
Every `.4th` file must follow StarForth's block format. The block system
|
||||
maps source text to 1024-byte logical blocks; the `Block NNNN` header tells
|
||||
the loader which block slot to fill.
|
||||
maps source text to logical blocks; the `Block NNNN` header tells the loader
|
||||
which block slot to fill.
|
||||
|
||||
**Mandatory rules:**
|
||||
|
||||
1. The first line of each logical block must be `Block NNNN` (capital B,
|
||||
single space, decimal integer).
|
||||
2. Block numbers must be unique within a single capsule file.
|
||||
2. Block numbers must be unique within a single capsule file, and must fall
|
||||
in `[2048, 5120)`.
|
||||
3. Blocks are loaded in file order and executed top-to-bottom.
|
||||
4. Each block can hold up to 1024 bytes of source text.
|
||||
4. Each block can hold at most 16 content lines, each at most 64 characters
|
||||
long (`validate_forth_blocks` in `tools/mkcapsule.c`, corrected 2026-09-19
|
||||
against the tool itself — **not** a 1024-byte budget: 8 lines of 128
|
||||
characters is 1024 bytes and still fails, since the limit is enforced
|
||||
per-line and per-line-count, not as a total byte count). Verify with
|
||||
`mkcapsule --lint capsules/`, not `wc -c`.
|
||||
5. Comments use `( ... )` — parentheses with spaces inside.
|
||||
6. Word definitions use `: NAME ... ;` — standard FORTH-79.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user