2
votes

When trying to use an mpd interface for common lisp, the corresponding asdf system having been named simply "mpd", I came across a peculiar problem. When I loaded the system, it would appear to succeed, yet when I tried to use the functions, it would claim they were undefined. Experimentally, I tried to rename the system "cl-mpd", and load that, only to find that it worked. I therefore concluded that ASDF were loading a different system, also named "mpd". Generally wanting to avoid such hackery as renaming systems, I looked for the offending system in the installation directories for quicklisp, to no avail. I searched for it in my home folder, with no success.

So now I ask you: is there a way to get the location of an ASDF system on disk?

2

2 Answers

2
votes

Is this what you're looking for?

(asdf:system-relative-pathname :foo "foo/bar/baz.lisp")

(asdf:component-pathname (asdf:find-component :foo '("bar" "baz")))

1
votes
  1. find the system
  2. get the components
  3. look at one of them

Example:

(describe (first (asdf:module-components (asdf:find-system "mpd"))))