feat(fasl): boot-time asdf auto-load behind the build-id gate; mint-sym fence index; bounded build-id sampleVerified
- build/funcl probes build/asdf.funclfa (then ./asdf.funclfa) at REPL entry and replays it when the FUNCLFA v3 build-id matches this binary (ag-fasl-id-ok-p is QUIET on mismatch, so stale/foreign fasls are silent no-ops). New `make asdf-fasl' produces the artifact (rm-first + .tmp naming keep the recipe's own boot virgin); `release' depends on it. Runs before ~/.funclrc so rc files can use asdf — which exposed a pre-existing uiop source-registry :COUNT check-type bug, filed as cave#312. - fasl loads now save/restore *package* (a REPL (load "x.funclfa") used to strand the prompt in the file's last in-package). - *ag-runtime-mint-sym-vaddrs* gets the cave#188 fence-index treatment (ag-mint-sym-lookup): first-byte buckets + self-healing fence, same newest-wins/bv-equal semantics via ag-symbol-pool-find-offset inside the bucket — the flat walk was O(mints x relocs) on an asdf-sized replay. - ag-fasl-build-id hashes a bounded sample (4 KiB head + 4 KiB tail + u64 size) instead of the whole 6.5 MB binary: the fixnum-arith sha (~1.7 ms/block) made the id ~7s originally and still ~2s at 64-KiB windows; now ~0.2s. Anti-footgun identity, not crypto. - tests/smoke.sh: OOM probes sized past the cave#214 24 GiB heap. - tests/fasl/.gitignore: pattern was repo-relative and never matched; spike-matrix.funclfa now properly ignored. NOT landed: the incremental warm-reloc drain drafted alongside this work — it broke asdf/mini-clos (the per-form FULL patch re-walk is the redefinition-healing mechanism for early-bound call sites; each defmethod rebuilds its dispatcher under the same name). Reverted; finding + fix direction filed as cave#311. Fasl replay at boot is ~18s until #311 lands (vs ~70s source load). Verified: 8/8 sharded suite, smoke, fasl spike suite, --hosted exit gate, and (asdf:load-system "alexandria") green on BOTH the source path and the auto-loaded-fasl path (plus the real-HOME ocicl rc path). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By:
Claude Fable 5 <noreply@anthropic.com>