Hello.
In my workflow I use (ql:quickload :my-project) to start development session
on my system, and to run the program on server after git pull.
ql:quickload makes sure dependencies are downloaded from internet
and frees me from care about installation.
But ql:quickload does not allow to ensure the libraries are freshly rebuild and
I sometimes have problems because of that, because ql:quickload inherits
issues like this
https://bugs.launchpad.net/asdf/+bug/479522 from asdf:load-op
which is used in the ql:quickload implementation.
asdf:load-op allows to rebuild using :force t, but doesn't download dependencies
from Internet.
But I can not combine the two features and have them simultaneously -
download from Internet and recompilation.
It would be good if quicklisp allowed for this.
Even despite I understand the internals, that ql:quickload internally invokes asdf:load-op,
catches asdf:missing-dependency, downloads the missing libraries and allows the process to continue,
I don't see how to hook into the current version and enable fresh recompilation
I can suggest two solutions:
- introduce the :force t parameter to ql:quickload
- allow user to provide a function to call instead of asdf:load-op.
something like
(ql:quickload :my-project :local-loader (lambda (name) (asdf:operate 'asdf:load-op name :force T))
(ql:quickload :my-project :local-loader (lambda (name) (asdf:operate 'asdf:load-op name :force NIL))
the function passed to :local-loader may signal 'missing-dependency
Best regards,
- Anton