This should be straightforward. You would catch a `missing-component` error whose `missing-requires` is equal to `(asdf:coerce-name "prove")` (the `coerce-name` is *probably* unnecessary), and do the `ql:install` as needed and then apply the `retry` restart.
On 11 Jun 2019, at 9:43, Mark Evenson wrote:
On Jun 11, 2019, at 14:05, Robert P. Goldman rpgoldman@sift.net wrote:
If you prefer, I believe you could bundle prove to avoid the Quicklisp dependency, perhaps as a git submodule…
It is certainly a way forward to consider bundling PROVE, but since ABCL already has a mechanism to install Quicklisp from the network by using its unique capability to CL:OPEN a given URI, the better way forward might be:
- improve the handler for the condition to introspect the message
from the condition signalled via ASDF
- introspect the existence of Quicklisp, installing if not present
(require :abcl-contrib) (asdf:load-system :quicklisp-abcl)
- then load and execute ABCL/TEST/ANSI/COMPILED
(asdf:test-system :abcl/test/ansi/compile)
As a first stab, I will remove the reference to PROVE in the abcl.asd definition, as this shouldn’t be happening as the :DEPENDS-ON (:PROVE) stanza is a sibling dependency tree as near as I can tell. I should swag [Ionna’s code][asd-graph] to visualize the dependencies to see if this is indeed the case.
In any event, I *really8* don’t want to mess with git submodules: I’d add a “vendor” directory before submitting to that mess of a lack of engineering…
-- "A screaming comes across the sky. It has happened before but there is nothing to compare to it now."