Skip to content

Commit 753890b

Browse files
committed
Support finding 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 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`.
1 parent 22c8f0b commit 753890b

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)