Dependency issue with program-op
didier at lrde.epita.fr
Mon Mar 22 08:59:21 UTC 2021
François-René ÐVB Rideau écrivait:
> Your manual (asdf:load-system ...) from the .asd file is equivalent to
> a :defsystem-depends-on dependency. It creates a dependency at
> system-definition-time, but not at runtime. Not at runtime, ergo, not
> to be included in the executable.
No, this is wrong. Like I said, there is ALSO a load-time (indirect)
dependency on the setup system via :depends-on, so the setup system IS
included in the executable.
> If it defines packages that are required in the executable, it MUST be
> added as a load-time dependency as well as a system-definition-time
Which, again, is exactly the case. After sleeping over it, I have a
different hypothesis: a problem in the execution order of everything
that's dumped. The reason for the LOAD-SYSTEM call is for this line in
the system definition:
:version #.(net.didierverna.clon.setup:version :short)
So I don't really know how program-op works in ECL (in particular,
what it does with the .asd files), but now I think that at the time
this above function needs to be called, the setup system isn't hot
yet, and so its package hasn't been created.
Regardless, if that's indeed the case, the conclusion remains the
same: in order to "program-op" a system depending on Clon with ECL, an
explicit dependency on clon.setup needs to be added first.
The other obvious solution would be for ASDF to let me provide a form
to be executed without the need for #., but I seem to recall that you
didn't want such things to be possible in system definitions.
¡En Seguida! -- New album: https://www.didierverna.com/records/en-seguida.php
Available on all digital platforms now!
Lisp, Jazz, Aïkido: http://www.didierverna.info
More information about the ecl-devel