While trying to package https://github.com/s-expressionists/Cleavir I hit a strange issue in which it would fail to compile, while calling `asdf:load-system' locally worked. Then I realized that our asdf-build-system/sbcl uses `asdf:compile-system' instead of `asdf:load-system'. From the ASDF doc: --8<---------------cut here---------------start------------->8--- This will make sure all the files in the system are compiled, but not necessarily load any of them in the current image; on most systems, it will _not_ load all compiled files in the current image. This function exists for symmetry with 'load-system' but is not recommended unless you are writing build scripts and know what you're doing. --8<---------------cut here---------------end--------------->8--- So should we really use it? By the way this _may_ be related to the issue we've got with loading the tests of some packages, like sbcl-jonathan: --8<---------------cut here---------------start------------->8--- ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found, ;; required by #. Why? --8<---------------cut here---------------end--------------->8--- Recipe to reproduce: - git clone https://github.com/s-expressionists/Cleavir - cd Cleavir - guix shell sbcl sbcl-acclimation sbcl-concrete-syntax-tree sbcl-closer-mop -- sbcl - (asdf:initialize-source-registry `(:source-registry (:tree ,(uiop:getcwd)) :inherit-configuration)) - (asdf:compile-system :cleavir-abstract-interpreter) --8<---------------cut here---------------start------------->8--- debugger invoked on a SB-PCL:CLASS-NOT-FOUND-ERROR in thread #: There is no class named CLEAVIR-ABSTRACT-INTERPRETER:STRATEGY. Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [TRY-RECOMPILING ] Recompile control and try loading it again 1: [RETRY ] Retry loading FASL for #. 2: [ACCEPT ] Continue, treating loading FASL for # as having been successful. 3: Retry ASDF operation. 4: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration. 5: Retry ASDF operation. 6: Retry ASDF operation after resetting the configuration. 7: [ABORT ] Exit debugger, returning to top level. --8<---------------cut here---------------end--------------->8--- And then - (asdf:load-system :cleavir-abstract-interpreter) works like a charm! Thoughts? Pierre