Skip to content

Commit

Permalink
Support finding non-primary systems not explicitly defined in .asd
Browse files Browse the repository at this point in the history
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`.
  • Loading branch information
daewok committed Jan 11, 2017
1 parent 22c8f0b commit 753890b
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion quicklisp/dist.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -954,7 +954,11 @@ the given NAME."
(ensure-system-cdb-file dist))))
(when line
(setf (gethash system-name index)
(make-system-from-line line dist)))))))
(make-system-from-line line dist))))
(let ((slash-index (position #\/ system-name)))
(when (and slash-index
(plusp slash-index))
(find-system-in-dist (subseq system-name 0 slash-index) dist))))))

(defmethod preference ((system system))
(if (probe-file (preference-file system))
Expand Down

0 comments on commit 753890b

Please sign in to comment.