feat(v4): HEAT-OP[0..31] and ANTICLOCK, read by HEAT-OP@ and ANTICLOCK@

#189 -- Captain Bob, 2026-11-12: "Add HEAT-OP. If it's a huge performance
hit, we'll revert it. If not ... it stands"; a full 33-cell array, as
DECOMPOSITION.md section 7 draws it; the Stadium feed is Phase 1's.

- node.h/node.c: v4_node_heat_regs_attach; a data fetch from base+k gives
  opcode k's count, base+32 the anti-clock (the low cell at 32 bits); a
  store changes nothing. Reset detaches them.
- host_map.h: HEAT_REG at word 13824, in what was free between the
  dictionary space and SEND_TEXT; the compile-time check covers it.
  Nothing moved. map-*.f18: HEAT-OP 13824, ANTICLOCK 13856.
- image.h/image.c/mkmap.c: the image carries the address; v4_image_born
  attaches the node's own counts.
- system.f18: HEAT-OP@ ( op -- n ), op mod 32; ANTICLOCK@ ( -- n ).
  word_count 318 -> 320 (hosted 317 -> 319): dict_hash changes.
- v4-dictionary.tsv: both words; DECOMPOSITION.md 7 records the build.

Also in this batch:
- Makefile: make init installs qemu-user -- hosted-check needs it
  (Captain Bob: "Add to make init now").
- .claude/memory/rules.md, rule 5: stop and ask when something comes up
  (Captain Bob: "you are supposed to stop and ask").

Tests first (logs/20261113-005047/heat-op): test_node did not compile;
test_host_quit 3 of 1337 failed. Suite: 199 programs, 7448554 checks, 0
failures; hosted-check, the three alike. Timing: no measurable cost.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017RzZgrf7V7Zk2iczBXDRbm
This commit is contained in:
Claude
2026-11-13 00:50:56 +00:00
parent 9710bd1779
commit dd6c393a89
21 changed files with 163 additions and 5 deletions
+6
View File
@@ -0,0 +1,6 @@
# HEAT-OP[0..31] and ANTICLOCK (#189), 2026-11-12/13
test_node-before.log: test_node.c before the registers: does not compile (no heat_reg, no attach).
test_host_quit-before.log: the map entries in, the words not yet: 3 of 1337 fail (HEAT-OP@, ANTICLOCK@ unknown).
suite.log: make -C v4 test test-32 sanitize hosted-check: 199 programs, 7448554 checks, 0 failures; the three hosted builds alike.
suite-stopped-by-container-restart.log: the first run of the same, cut off by the session's container restart at 110 programs, 0 failures.
timing.txt: the hosted amd64 boot (POST 538), five runs each, alternating: OLD = 3c97534c, NEW = with HEAT-OP. Median 3.734 s / 3.731 s; instructions 59145258 / 59302047 (+0.27%, the two words' assembly). No measurable cost: by Captain Bob's rule it stands.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
OLD 1 3.734 s instructions=59145258 V4_POST tests=538 pass=538
NEW 1 3.731 s instructions=59302047 V4_POST tests=538 pass=538
OLD 2 3.736 s instructions=59145258 V4_POST tests=538 pass=538
NEW 2 3.760 s instructions=59302047 V4_POST tests=538 pass=538
OLD 3 3.783 s instructions=59145258 V4_POST tests=538 pass=538
NEW 3 4.330 s instructions=59302047 V4_POST tests=538 pass=538
OLD 4 3.577 s instructions=59145258 V4_POST tests=538 pass=538
NEW 4 3.727 s instructions=59302047 V4_POST tests=538 pass=538
OLD 5 3.617 s instructions=59145258 V4_POST tests=538 pass=538
NEW 5 3.644 s instructions=59302047 V4_POST tests=538 pass=538