[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