feat(v4): every word but the ten is called, so it can be checked

Plan 2026-10-20 (ENGINE step 4), Task A2, for #189. Captain Bob,
2026-11-13: "The ten"; "Accept it".

- compile.f18 (COMPILE,): a word is copied in line only when it is flagged
  in-line and compile-only (24) -- the ten that work on the return stack,
  >R R> R@ I J LEAVE and the later UNLOOP 2>R 2R> 2R@. Every other word,
  in-line ones too, is a call the hook at `call` sees.
- EXECUTE calls the xt: `call xt` (opcode 3, slot 0) and a ; in (EXEC),
  run. INTERPRET runs a word by (GO): `call xt` and `jump (IL)` in
  (RUNX), entered by a jump, at the old return-stack depth.
- host_map.h: (EXEC) BUF0_W-22, (RUNX) BUF0_W-115, from what was free.
- Its cost, accepted: one return entry at the bottom of a chain (30 deep
  from the prompt, not 31) and one per explicit EXECUTE while its word
  runs; the hosted boot +2.4% (2.917 s to 2.987 s), instructions +0.4%.
- Tests first (logs/20261113-045122/a2): inline_words_are_called,
  residue_stays_inline, execute_passes_the_hook, rstack_kept_across_call,
  abandoned_definition_not_called -- 3 of 1096 failed before. The depth
  checks moved to the new figures; SEE shows the calls; two layout checks
  use in-line test words; 2>R 2R@ 2R> checked in test_host_quit.
- DECOMPOSITION.md EXECUTE, the plan's A2 and rulings, FABRIC-3 XLVIII.22.

Suite: test, test-32 99 programs 0 failures; v4-checks 79 under the
sanitizers 0 failures, the hosted builds alike; hosted POST 539/539.

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 05:30:10 +00:00
parent bacb7b0616
commit 892e3889f5
14 changed files with 197 additions and 38 deletions
+5
View File
@@ -0,0 +1,5 @@
# A2 (plan 2026-10-20; #189), 2026-11-13
test_host_compile-before.log: A2's five tests against the compiler before the change: 3 of 1096 fail (no call seen for DUP and +; EXECUTE not seen, in a definition or at the prompt); the other two pin what must not change.
test-test32.log: make -C v4 test test-32 after: 99 programs, 3724180 checks, 0 failures.
../v4-checks: scripts/nightly.sh v4-checks after: 79 programs under the sanitizers, 0 failures; the hosted builds alike.
timing.txt: the hosted amd64 boot (POST 539), five runs each, alternating: OLD = bacb7b06, NEW = A2. Median 2.917 s / 2.987 s (+2.4%); instructions 59302047 / 59537530 (+0.4%).
Binary file not shown.
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
OLD 1 2.901 s instructions=59302047 V4_POST tests=539 pass=539
NEW 1 2.995 s instructions=59537530 V4_POST tests=539 pass=539
OLD 2 2.958 s instructions=59302047 V4_POST tests=539 pass=539
NEW 2 2.987 s instructions=59537530 V4_POST tests=539 pass=539
OLD 3 2.917 s instructions=59302047 V4_POST tests=539 pass=539
NEW 3 2.858 s instructions=59537530 V4_POST tests=539 pass=539
OLD 4 3.025 s instructions=59302047 V4_POST tests=539 pass=539
NEW 4 2.964 s instructions=59537530 V4_POST tests=539 pass=539
OLD 5 2.903 s instructions=59302047 V4_POST tests=539 pass=539
NEW 5 2.989 s instructions=59537530 V4_POST tests=539 pass=539