From e88032b7e8fe3397f76c4ed0cddbd4343557029a Mon Sep 17 00:00:00 2001 From: rajames Date: Mon, 5 Oct 2026 16:44:57 -0400 Subject: [PATCH] docs(v4.0.0): ruling -- the unit of heat in v4 is the opcode, not the word Captain Bob, 2026-10-05: v4 = v3 functionally; heat accumulates on the 32 opcodes; the opcode replaces the word as the smallest unit. Answers D-6 and the three conflicts of V3-PARITY.md 2.4. Records what follows (the per-call-target array goes; pipelining and the hot-words cache are not retired; decomposition no longer waits) and what is still open. Co-Authored-By: Claude Opus 5.5 --- docs/v4.0.0/V3-PARITY.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/v4.0.0/V3-PARITY.md b/docs/v4.0.0/V3-PARITY.md index e2ea2cbd..7b6164dc 100644 --- a/docs/v4.0.0/V3-PARITY.md +++ b/docs/v4.0.0/V3-PARITY.md @@ -193,6 +193,45 @@ fabric"). v3's code for each is the reference: `rolling_window_of_truth.c`, - **K.** Nothing computes K on v4. It is a figure over heat; it waits for A and C. +### 2.7 Ruling (Captain Bob, 2026-10-05) + +> One more time: v4 = v3 functionally. We will use [heat accumulation] on +> 32 opcodes rather than words. Before, a word was our smallest unit; now +> it is the opcode. + +This settles section 2.4: + +- **A.** Heat is kept per opcode: 32 accumulators in the node. Not in a + word's dictionary entry, and not per call target. +- **B.** The unit is the opcode. Whether a word is called or compiled in + line makes no difference to what is counted. `call` is one of the 32 and + is counted as itself. +- **C.** v4 = v3 functionally, so every loop v3 runs before its prompt + runs on v4, over opcodes where v3's runs over words. + +What follows from it, and is not yet done: + +- The per-call-target array (`v4/src/heat.c`, `call[]`, the freeze mask, + `v4_heat_on_call`) has no place and is to be removed, with `HEAT-CALL` + in `DECOMPOSITION.md` sections 1.4, 5.19, 5.23 and 7. D-6 is answered: + per-opcode. +- Sections 5.21 and 5.22 of `DECOMPOSITION.md` retire pipelining and the + hot-words cache. Under C they are not retired. +- Decomposition no longer waits on this: moving a word from assembler to a + colon definition changes which opcodes run, and those are counted + wherever the code is. + +Still open, for the words v3 keys by word and v4 must key by something: + +- **ACL.** Access control is per word, and v3 works a word's TTL out from + that word's heat (`ACL-TTL-COMPUTE`). A v4 word has no heat of its own. +- **Freeze and pin.** v3 freezes or pins a word's heat (`FREEZE-WORD`, + `WORD_PINNED`). In v4 what is frozen is an opcode, or nothing. +- **Hot-words cache.** v3 promotes a hot word so that it is found faster. + A v4 opcode is not looked up. +- **Heartbeat.** What ticks it on a node (v3: the kernel's timer + interrupt). + ## 3. Stand-ins in v4, as found 2026-10-05 Each describes itself as one. None has been changed.