#264 asdf find-system: automatic *central-registry* search finds the .asd but doesn't load/register it (needs explicit load-asd)

closed
Opened by atgreen

On clean baseline (b6b8c5e), (asdf:load-system "alexandria") after (push "…/compat/alexandria/" asdf:central-registry) fails with MISSING-COMPONENT — (asdf:find-system "alexandria" nil) returns NIL.

BUT every piece works in isolation:

So search-for-system-definition returns the .asd path, but find-system/locate-system doesn't turn that into a load-asd + register. Workaround: call (asdf::load-asd "…/alexandria.asd") explicitly before load-system.

Next: trace locate-system → the branch that should load-asd a found pathname; likely a mini-clos generic dispatch or if-let/return-from mismatch swallowing the result.

Comments (1)

atgreen3992785526

FIXED — find-system via central-registry now finds, LOADS, and REGISTERS the system (sysdef-central-registry-search HIT -> load-asd -> registered + session-cached; no explicit load-asd needed). Evidence 2026-07-11: (push asdf:central-registry) + (asdf:load-system "alexandria") completes a REAL multi-file component load on build/funcl; (alexandria:flatten '(1 (2) 3)) => (1 2 3); 8/8 breadth probes incl. closure-returning curry/compose. Fix chain: ADR-0028 closure records e17d39b + eql specializers 822a554 + macro-aware eval 0f0eed8 + REPL robustness 21f15f2.