Subject: Re: Should asdf-build-system/sbcl use load-system instead of compile-system?

From: Guillaume Le Vaillant <[email-masked]>
Date: Fri, 01 Jul 2022 11:13:30 +0000

Pierre Neidhardt <[email-masked]> skribis:

> 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:
>
> 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.
>
>
> 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:
>
>       ;; Tests fail with: Component JONATHAN-ASD::JONATHAN-TEST not found,
>       ;; required by #<SYSTEM "jonathan">. Why?
>
> [...]

Hi,

The cl-gamepad package has a similar issue (and a custom build phase
using load-system instead of compile-system as a workaround).

If the doc of ASDF indicates that load-system is the preferred way to
compile systems, we should probably do that, and remove current
workarounds and check if everything is still working.