quicklisp-client icon indicating copy to clipboard operation
quicklisp-client copied to clipboard

Support installing non-primary systems not explicitly defined in .asd

Open daewok opened this issue 8 years ago • 4 comments

When using ASDF's package-inferred-system, not all systems are explicitly defined in the .asd file, and therefore do not get picked up during the metadata generation. This makes it impossible to load these subsystems directly (for example: "lil/pure/all").

This patch solves this by trying to find a system in a dist by its primary name (the part before the first slash) if it is not found verbatim. If the minimum ASDF version is upped in the future, I recommend replacing much of this with asdf:primary-system-name.

daewok avatar Jan 11 '17 01:01 daewok

I believe this is fixed on the ASDF side, which re-runs search functions with the primary name if the original name is not found.

quicklisp avatar Jan 11 '17 01:01 quicklisp

That works only if the release containing the system has already been installed.

daewok avatar Jan 11 '17 01:01 daewok

(updated title and commit message to make it more clear the issue exists when trying to install the systems)

daewok avatar Jan 11 '17 01:01 daewok

This problem bother me too.

But I've used another approach – patched ql::compute-load-strategy function like this: https://github.com/40ants/quicklisp-client-fix/blob/master/quicklisp-fix.lisp#L3C8-L3C29

@quicklisp are there any change that some of these approaches will be merged into the upstream?

Or probably we could make a hook instead of ql::compute-load-strategy which will allow to replace the original function with an alternative?

svetlyak40wt avatar Dec 13 '23 21:12 svetlyak40wt