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:

0) improve the handler for the condition to introspect the message from the
condition signalled via ASDF

1) introspect the existence of Quicklisp, installing if not present

(require :abcl-contrib)
(asdf:load-system :quicklisp-abcl)

2) 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…


[asd-graph]: https://gitlab.common-lisp.net/idimitriou/asd-graph

--
"A screaming comes across the sky. It has happened before but there is nothing
to compare to it now."