user1576605
user1576605

Reputation: 41

Locating ASDF systems on disk

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?

Upvotes: 2

Views: 193

Answers (2)

Faré
Faré

Reputation: 960

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")))

Upvotes: 2

Rainer Joswig
Rainer Joswig

Reputation: 139261

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

Example:

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

Upvotes: 0

Related Questions