feat(adr0026): --dump-static-symbol-pool determinism witness (Risk 1)Verified
ADR 0026 Phase 3 (quote emission -> static canonical record) requires the baked static symbol pool to be complete, deterministically ordered, and dedup'd, or two funcl-built stages bake divergent lea targets — the ADR's Risk 1. Add a --dump-static-symbol-pool flag (ag-dump-static-symbol-pool-* in compiler.lisp, dispatched in both src/main.lisp and src/main-cold.lisp) that writes each baked static record's name in physical pool order (gc-symbol-pool-range-start/count, 40-byte records, name at +8). Names only, so the action reaches no number-printer and stays out of the cold live set, like ag-dump-symbols. tests/adr0026-static-pool-witness.sh diffs the dump across build/funcl-stage2 and build/funcl (both compile the same COLD_SRCS) and checks for duplicate names. Today: 3440 records, byte-identical across funcl-built binaries, zero duplicates — Risk 1 GREEN before touching quote emission. Self-host fixed point holds (208/208 ert, 0 unexpected). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>