Files
StarForth/scripts
Robert Allan JamesandClaude Sonnet 5 51940f49d0
Build / build-amd64-iso (push) Canceled after 0s
Build / build-aarch64-iso (push) Canceled after 0s
Build / build-riscv64-img (push) Canceled after 0s
Add per-slot CRC + campaign crash-resume (DOE-RESUME-COUNT)
FABRIC-3.md §XXXV.12: closes two real gaps found by walking the disk-to-
PDF pipeline end to end. (1) doe_trial_slot_t had no integrity check of
its own -- 64 slots share one devblock via a read-modify-write, so a
crash mid-write to any slot could silently corrupt its siblings with
nothing to catch it. Added an 8-byte CRC (same discipline the control
header already had), computed/verified the same way. (2) The campaign
itself had no crash-resume -- a reboot always restarted the whole
18-trial loop from index 0 even with good persisted data already on
disk. Since the trial matrix is fully deterministic from (seed, n-reps),
resuming needs no persisted "which trials ran" state, just a count:
DOE-RESUME-COUNT (new kernel primitive, same pattern as
DOE-PERSIST-TRIAL) walks the ring counting CRC-valid records for a given
ISA; MU-EXEC-CAMPAIGN's signature changes to accept a start-idx and seeds
MU-RUN-ID/the DO loop from it. Each RUN-*-CAMPAIGN entry word now calls
DOE-RESUME-COUNT before launching. Both block-namespace-checked to fit
existing headroom before committing to the design -- no new blocks
needed.

Real bug caught by the build, not shipped: an implicit compiler-inserted
alignment byte before slot_crc silently broke the hand-computed trailing
pad size (doe_trial_slot_size_check failed to compile). Fixed with an
explicit alignment field, matching log_slot_t's own zero-implicit-
padding discipline.

extract_doe_region.py now verifies both CRCs with the REAL CRC-64/XZ
algorithm from block_subsystem.c's compute_crc64() (ported and verified
bit-for-bit against a native C reference this session), replacing
§XXXV.11's incorrect guessed implementation.

Verified: clean compile on all 3 ISAs (amd64/aarch64/riscv64 -- amd64
verified via isolated build only, not boot, since the real per-ISA
campaign is currently live on the only QEMU instance this project's own
rule allows), both capsules pass mkcapsule --lint, CRC64 bit-exact via
native reference. Live boot-verification explicitly deferred until that
campaign finishes or is interrupted -- not claimed as tested when it
wasn't. Found (not missed) a real compatibility consequence: the running
campaign's data is in the old pre-CRC format, so it reads as "corrupt"
under the new extractor and DOE-RESUME-COUNT will resume it from 0, not
mid-campaign -- no data loss, cheap redundant re-run of ~1-2 trials.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
2026-09-17 19:17:04 -04:00
..

scripts/

Utility scripts for building, profiling, DoE experiments, and documentation.

DoE / experiment scripts

Script Purpose
run_doe.sh Run a standard DoE experiment
run_factorial_doe.sh 2^7 factorial DoE
run_factorial_doe_with_heartbeat.sh Factorial DoE with heartbeat metrics
run_nested_doe.sh Nested DoE design
run_ablation_study.sh Physics loop ablation
run_optimization_doe.sh Optimization-focused DoE
run_quick_doe_test.sh Quick smoke-check DoE (1 rep)
extract_doe.sh Extract CSV rows from QEMU serial logs

Build / profile scripts

Script Purpose
perf-profile.sh Linux perf profiling harness
perf-profile_control.sh Control run for perf comparison
rundisk.sh Boot a disk image in QEMU
qemu_screenshot.sh Capture QEMU serial output

Phase 8 / identity testing scripts

Script Purpose
bleach_zuse_img.sh Reset disk/zuse.img back to pristine/unminted (blank) state, for repeatable first-boot mint-flow testing

FORTH capsule scripts

Script Purpose
4th-apply-init.sh Apply init.4th patches to capsule set
4th-update-init.sh Update init.4th across capsule variants

Documentation scripts

Script Purpose
asciidoc-to-latex.sh Convert AsciiDoc to LaTeX
convert-markdown-to-asciidoc.sh Markdown → AsciiDoc
doxygen-xml-to-asciidoc.py Doxygen XML → AsciiDoc
generate-doxygen-appendix.sh Build Doxygen API appendix
build_patent_structure.sh Scaffold patent document structure
setup-ide-integration.sh Configure IDE integration
analyze_heartbeat_stability.R R analysis of heartbeat stability data
analyze_opp2_regression.py Python regression analysis
gen_pe_reloc.py PE relocation table generator (see also tools/)
remove_loop_conditionals.sh Remove loop conditional guards

See also