Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

daewok
Copy link
Contributor

@daewok daewok commented Jan 11, 2017

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.

@quicklisp
Copy link
Owner

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.

@daewok
Copy link
Contributor Author

daewok commented Jan 11, 2017

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

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 install
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 daewok force-pushed the load-package-inferred-system-subsystems branch from 753890b to 5104d83 Compare January 11, 2017 01:47
@daewok daewok changed the title Support finding non-primary systems not explicitly defined in .asd Support installing non-primary systems not explicitly defined in .asd Jan 11, 2017
@daewok
Copy link
Contributor Author

daewok commented Jan 11, 2017

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

@svetlyak40wt
Copy link
Contributor

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants