FABRIC.md §16.3: correct the DictEntry wire count against the struct
Review item REVIEW-B2, settled by reading include/vm.h:335-351. The subsection's table and prose disagreed: the table listed the code field as present, the prose named it as one of two missing wires, and neither accounted for payload. Actual mapping against §3's eight wires: identity, heat, TTL and pin are present in correct form; link is a pointer rather than an index; the code field is a raw function pointer rather than an enumerated tag; mass and payload are absent. Four correct, two wrong-form, two absent -- not "six of eight." The wrong-form pair matters more than the count. §13 names pointer-free index links as the single biggest difference between a tractable proof effort and a research project, and §18.3 requires the function pointer to become a closed tag. Those are exactly the two. The claim that the dictionary "is" a Stadium entry is therefore overstated and has been weakened to what the struct supports: the dictionary already has the concepts, and two of the eight wires need to change form. That still carries §1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fd820fc9eb
commit
e44dc7830c
@@ -528,22 +528,32 @@ riscv64 timing numbers before and after that fix are not comparable.
|
||||
|
||||
### 16.3 The dictionary is already a Stadium
|
||||
|
||||
§1 claims the dictionary is the reference implementation. It is stronger than that.
|
||||
`DictEntry` today carries six of the eight wires in §3 — the two it lacks are `mass`, which
|
||||
§19.2 added later, and a behaviour tag, since its code field is a raw function pointer
|
||||
rather than an enumerated tag (§18.3):
|
||||
§1 claims the dictionary is the reference implementation. It is stronger than that — but not
|
||||
as strong as an earlier draft of this subsection claimed. Read against `DictEntry`
|
||||
(`include/vm.h:335-351`):
|
||||
|
||||
| §3 wire | Already in `DictEntry` |
|
||||
|---|---|
|
||||
| identity | name / `word_id` |
|
||||
| heat | `physics.*` (Loop #1) |
|
||||
| TTL | `acl_ttl` |
|
||||
| pin | `acl_pinned`, plus `WORD_PINNED` / `WORD_FROZEN` |
|
||||
| link | dictionary chaining |
|
||||
| code field | literally a function pointer |
|
||||
| §3 wire | In `DictEntry` | Form |
|
||||
|---|---|---|
|
||||
| identity | `word_id` + `name[]` | correct |
|
||||
| heat | `execution_heat` + `physics` | correct |
|
||||
| TTL | `acl_ttl` | correct |
|
||||
| pin | `acl_pinned`, plus `WORD_PINNED` / `WORD_FROZEN` | correct |
|
||||
| link | `struct DictEntry *link` | **a pointer, not an index** |
|
||||
| code field | `word_func_t func` | **a raw function pointer, not an enumerated tag** |
|
||||
| mass | — | absent |
|
||||
| payload | — (definition body lives outside the entry) | absent |
|
||||
|
||||
The dictionary is not *analogous* to a Stadium entry. It is one, already built and already
|
||||
tested. Everything else is what gets generalized toward it.
|
||||
**Four wires present in correct form, two present in the wrong form, two absent.** An
|
||||
earlier draft said "six of eight" and named the missing two as mass and a behaviour tag,
|
||||
which double-counted the code field and omitted payload.
|
||||
|
||||
The wrong-form pair is the interesting part. `link` being a pointer is precisely what §13
|
||||
identifies as *"the single biggest difference between a tractable proof effort and a research
|
||||
project,"* and the raw function pointer is what §18.3 requires to become a closed tag.
|
||||
|
||||
So the honest claim is weaker than "the dictionary *is* a Stadium entry" and still strong
|
||||
enough to carry §1: **the dictionary already has the concepts, and two of the eight need to
|
||||
change form.** Everything else is what gets generalised toward it.
|
||||
|
||||
**But run §9's admission test on it before moving it in.** Its reap event is the weak
|
||||
wire. Blocks migrate, messages deliver, VMs die by cooling — a dictionary word does not
|
||||
|
||||
Reference in New Issue
Block a user