Files
Stefan ArentzandClaude Fable 5 a757aa7713 Phase 8: parity sweep, benches, docs
- Benches: cpu_bench.c and mem_bench.c ported as plain std::time
  cargo benches (harness = false, no criterion), same output formats
  so C and Rust numbers compare directly. The mem addressing helpers
  in ins.rs become pub, mirroring mem.h. Numbers recorded in
  REWRITE.md: parity or better on most paths (Rust ADC 2x faster,
  JSR 1.7x faster; ind* modes ~2.5x slower from dyn Bus dispatch —
  all orders of magnitude beyond the 1.023 MHz requirement).
- --trace wired end to end: Cpu grows a trace sink written before
  each step via the fmt.rs formatters ('PC: disassembly  state');
  both frontends open it from --trace[=file]. In C the write path
  was dead code — recorded as a documented divergence. Unit-tested
  against exact expected lines, and smoke-tested (767k lines from a
  3s replica1 run, matching the Woz monitor reset sequence).
- --strict audited: accepted but inert at runtime in both C and Rust
  (the only runtime caller of irq/nmi discards the error) — recorded
  as quirk #7.
- REWRITE.md: flag-by-flag and feature-by-feature parity checklist,
  a new 'Documented divergences' section (exact --flag parsing, no
  PC in unexpected-I/O messages, frame-sampled joystick, working
  --trace, Rust-only --screenshot, the skipped dsk.c OOB write,
  no Lua), bench numbers, Phase 8 -> Done.
- README: 'Building the Rust version' section.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 11:06:07 -04:00
..
2026-07-05 11:06:07 -04:00