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>
Anthony Green2026-06-30 13:31:38 -0400 1c146d01abeed09b087a37fd2898fa61f2ec87fa
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>