#297 fasl replay mints a SECOND (pkg,name) record bypassing ag-intern-in-pkg — last blocker for pkgsym quote eq across fasls

closed
Opened by atgreen

ADR-0030 slice 4 residue. After the ag-pkg-own-publish reconciliation (map/alist divergence fixed, codex-verified), (eq spk2::qf 'spk2::f) still reads NIL after fasl load: TWO (SPK2,F) records exist (measured bases 1080060864 vs 1112539216). Some path allocates a pkgsym record WITHOUT passing ag-intern-in-pkg's ag-pkgsym-lookup — candidates: the stdlib unqualified-intern door for current-package reads, or a genuine mid-replay ag-pkgsym-find miss (fence/idx sync during replay on an image-restored binary). Plan: instrument ag-dynamic-symbol-record-allocate-pkg (print name+pkg on each mint) during the spike-pkgsym replay; the two known addresses are tracers — one focused session. Everything else is green: package-qualified calls and (function NAME) work across fasls (KIND-6); this eq is the LAST gate before general (alexandria-scale) fasls.

Comments (1)

atgreen3992898492

RESOLVED — not a mint-door bug at all: the test piped (load fasl) and the qualified probes in ONE stdin buffer, and ag-repl-iter reads all forms before evaluating the first, so spk2::f was read before SPK2 existed → the reader's qualified-intern correctly fell back to a bare-name mint. Instrumented: exactly ONE (SPK2,F) mint during replay, all KIND-6 sites patch to it. Fixed by sequencing the probes into a file loaded after the fasl (commit above). eq → T; full battery green. The real defect exposed — REPL piped-stdin read-ahead doesn't interleave read/eval per form — filed separately.