(asdf:operate :build-op :system) creates image in ~/.cache/[...]

Faré fahree at gmail.com
Mon Sep 28 19:24:06 UTC 2015


On Mon, Sep 28, 2015 at 3:01 PM, Florian Margaine <florian at margaine.com> wrote:
> Faré,
>
> Following our IRC discussion, I'd like to show a workaround in the
> meantime (for future googlers):
>
>> <Fare> not using quotes around asdf:program-op, it should work
>
> This does indeed work. So the .asd file would be like this:
>
> (asdf:defsystem #:my-system
>   :description "foo"
>   :serial t
>   :depends-on (:sb-posix)
>   :components ((:file "package")
>                (:file "my-system"))
>   :build-operation asdf:program-op
>   :build-pathname "my-system"
>   :entry-point "my-system:main")
>
> And the my-system binary is created in the current folder.
>
Note that this works because the operation you care about, program-op,
exists in a package that already exists when the defsystem form is
read, asdf. The purpose of accepting classes named in a string is to
enable (the symbol that names) such a class to exist in package that
doesn't exist yet, but is being defined by a defsystem-depends-on
dependency.

Also note that ASDF fails to re-load a defsystem-depends-on dependency
when it has changed, or to re-process a .asd file when that happens.
OK, created https://bugs.launchpad.net/asdf/+bug/1500578 for that.
Don't expect any work on it whatsoever from me, though.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Time and money spent in helping men to do more for themselves is far better
than mere giving. — Henry Ford



More information about the asdf-devel mailing list