Dependency issue with program-op

Didier Verna didier at
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
> dependency.

  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:
Available on all digital platforms now!

Lisp, Jazz, Aïkido:

More information about the ecl-devel mailing list