[asdf-devel] Loading an .asd file directly using its pathname

Faré fahree at gmail.com
Tue Jun 25 12:44:49 UTC 2013


Dear Luís,

On Mon, Jun 24, 2013 at 1:11 PM, Luís Oliveira <luismbo at gmail.com> wrote:
> Given a pathname to an .asd file, I sometimes load it using this hack:
>
>   (defun load-asd (path &rest options)
>     (let ((asdf:*system-definition-search-functions*
>            (cons (lambda (system)
>                    (when (string= (asdf::coerce-name system) (pathname-name path))
>                      path))
>                  asdf:*system-definition-search-functions*)))
>       (apply #'asdf:load-system (pathname-name path) options)))
>
>
> Other times I use:
>
>    (let ((asdf:*central-registry* (cons <directory-where-my-asd-lives>
>                                         asdf:*central-registry*)))
>      (asdf:load-system :some-system))
>
>
> Also, I see that the slime-asdf contrib uses this definition:
>
>   (defun load-asd (pathname &key name &allow-other-keys)
>     (asdf::load-sysdef (or name (string-downcase (pathname-name pathname)))
>                        pathname))
>
In ASDF 3, there is already a function ASDF/FIND-SYSTEM:LOAD-ASD, aka
ASDF::LOAD-ASD, that is being reimplemented by slime-asdf when not present.
I suppose it could be usefully exported from the ASDF/INTERFACE package.
I will leave that to the new maintainer, Robert Goldman.

> I wonder if ASDF could export LOAD-SYSDEF or perhaps have
> ASDF:LOAD-SYSTEM accept a pathname in addition to what it currently
> accepts.
>
The ASDF::LOAD-SYSDEF is obsolete. Please use ASDF::LOAD-ASD instead,
at least, if you can afford to use either ASDF3 or SLIME.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Between what I think, what I try to say, what I think I say, what I actually
say, what you want to hear, what you hear, what you think you understand,
what you want to understand and what you do understand, there are at least
nine ways to not understand each other.



More information about the asdf-devel mailing list