feat(v4.0.0): POST for FORTH-79, from v3's cases; not passing yet

capsules/v4/post79.4th: 537 of v3's POST cases for the FORTH-79 Required
Word Set, each carrying what the hosted v3 binary did with the same line
(error or not, the stack, the length and checksum of what it printed).
Written by v4/tools/mkpost.py.  The harness is FORTH-79 plus the two
nucleus hooks.  docs/v4.0.0/NUCLEUS.md section 6.

- NODE-ERROR has a FORTH name: how a definition in FORTH raises an error
- the boot passes POST only on seeing its tally line with fail=0
- POST is not in the boot yet (V4_POST_AT_BOOT=0); make -C v4 post runs it

Result: tests=537 pass=439 fail=98.  The 98 are not yet sorted into v4
defects and differences needing a ruling; v4/README.md has a first reading.

Verified: make -C v4 test passes; hosted-check passes on three ISAs; clean
qemu with STARFORTH_V4=1 on amd64, aarch64 and riscv64 reaches ok> with the
same hashes as hosted (logs/20261005-1601xx..1604xx).  Nothing was typed at
a bare-metal prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rajames
2026-10-05 16:04:48 -04:00
co-authored by Claude Opus 5.5
parent ed6b11ad88
commit 5d6043e37e
11 changed files with 2779 additions and 14 deletions
+67 -2
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-10-05T19:24:40Z -->
<!-- Generated by mkcapsule --manifest 2026-10-05T20:03:22Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -30,6 +30,7 @@
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | n/a |
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | n/a |
| `v4:forth79.4th` | 6000 | `0xa4b74bdc7deaf204` | n/a |
| `v4:post79.4th` | 7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063 | `0x24df7b11992128ed` | n/a |
| `workload-0.4th` | 2200, 2201 | `0x93f86f60aeba8feb` | n/a |
| `workload-1-lite.4th` | 5058, 5059 | `0x44a7a7e3176dcc8d` | n/a |
| `workload-1.4th` | 4406, 4415, 4425, 4435 | `0x63e251adb0a03613` | n/a |
@@ -368,10 +369,74 @@
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 6000 | `v4:forth79.4th` | `0xa4b74bdc7deaf204` | ok |
| 7000 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7001 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7002 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7003 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7004 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7005 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7006 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7007 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7008 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7009 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7010 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7011 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7012 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7013 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7014 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7015 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7016 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7017 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7018 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7019 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7020 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7021 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7022 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7023 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7024 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7025 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7026 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7027 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7028 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7029 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7030 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7031 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7032 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7033 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7034 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7035 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7036 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7037 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7038 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7039 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7040 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7041 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7042 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7043 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7044 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7045 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7046 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7047 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7048 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7049 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7050 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7051 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7052 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7053 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7054 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7055 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7056 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7057 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7058 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7059 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7060 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7061 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7062 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
| 7063 | `v4:post79.4th` | `0x24df7b11992128ed` | ok |
## Conflicts
None.
---
*37 capsule(s) scanned. Re-run `mkcapsule --manifest <dir>` to refresh.*
*38 capsule(s) scanned. Re-run `mkcapsule --manifest <dir>` to refresh.*
File diff suppressed because it is too large Load Diff