[Asdf-devel] Questions about LOAD-SYSTEM & OPERATE
Robert P. Goldman
rpgoldman at sift.info
Sat Jul 5 15:57:17 UTC 2014
In the process of making a test for bug1335323, I discovered that the
top-level call to look up the system in LOAD-SYSTEM/OPERATE, is
FIND-COMPONENT, not FIND-SYSTEM, so that the
REINITIALIZE-SOURCE-REGISTRY-AND-RETRY restart is not available. Also,
for some reason, I am unable to find the "force1" subsystem of
"test-asdf", although "test-asdf" is found correctly:
1: (OPERATE LOAD-OP "test-asdf/force1")
2: (FIND-COMPONENT NIL "test-asdf/force1")
3: (FIND-COMPONENT "test-asdf/force1" NIL)
4: (FIND-SYSTEM "test-asdf/force1" NIL)
5: (FIND-SYSTEM "test-asdf" NIL)
5: FIND-SYSTEM returned #<PACKAGE-INFERRED-SYSTEM "test-asdf">
5: (FIND-SYSTEM "test-asdf" NIL)
5: FIND-SYSTEM returned #<PACKAGE-INFERRED-SYSTEM "test-asdf">
4: FIND-SYSTEM returned NIL
3: FIND-COMPONENT returned NIL
2: FIND-COMPONENT returned NIL
Any idea why this is happening? It's after an attempt to clear the ASDF
cache, and I wonder if that's implicated -- maybe just smashing the
*asdf-cache* isn't correct. When I first call FIND-SYSTEM, I do find
the system:
; Loading system definition for test-asdf from
/Users/rpg/lisp/asdf/test/test-asdf.asd
;; loading #P"/Users/rpg/lisp/asdf/test/test-asdf.asd"
; Registering #<SYSTEM "test-asdf">
; Registering #<SYSTEM "test-asdf/all">
; Registering #<SYSTEM "test-asdf/1">
; Registering #<SYSTEM "test-asdf/2">
; Registering #<SYSTEM "test-asdf/4">
; Registering #<SYSTEM "test-asdf/test9-1">
; Registering #<SYSTEM "test-asdf/test-module-depend">
; Registering #<SYSTEM "test-asdf/test9-2">
; Registering #<SYSTEM "test-asdf/test9-3">
; Registering #<SYSTEM "test-asdf/test-source-directory-1">
; Registering #<SYSTEM "test-asdf/test-source-directory-2">
; Registering #<SYSTEM "test-asdf/bundle-1">
; Registering #<SYSTEM "test-asdf/bundle-2">
; Registering #<SYSTEM "test-asdf/force">
; Registering #<SYSTEM "test-asdf/force1">
Clearing the caches and finding.....
I have pushed my bug1335323 topic branch to cl.net, since I could use
some help with it, in case anyone has the time to examine it. (whoops.
I can see now that I should be keeping the cache entries for ASDF, POIU,
and their components; that's probably a bug, since if you are changing
ASDF you're probably better off unwinding completely and starting over,
instead of trying to handle an error)
Cheers,
r
More information about the asdf-devel
mailing list