Skip to content

Commit 5104d83

Browse files
committed
Support installing non-primary systems not explicitly defined in .asd
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`.
1 parent 22c8f0b commit 5104d83

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Diff for: quicklisp/dist.lisp

+5-1
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,11 @@ the given NAME."
954954
(ensure-system-cdb-file dist))))
955955
(when line
956956
(setf (gethash system-name index)
957-
(make-system-from-line line dist)))))))
957+
(make-system-from-line line dist))))
958+
(let ((slash-index (position #\/ system-name)))
959+
(when (and slash-index
960+
(plusp slash-index))
961+
(find-system-in-dist (subseq system-name 0 slash-index) dist))))))
958962

959963
(defmethod preference ((system system))
960964
(if (probe-file (preference-file system))

0 commit comments

Comments
 (0)