[asdf-devel] ASDF 2 questions
Didier Verna
didier at lrde.epita.fr
Thu Sep 23 15:37:27 UTC 2010
[ Please, Cc: me as I'm not on the mailing list ]
Hi,
I'm trying to upgrade my CL configuration to ASDF 2, and I have several
questions:
1/ why isn't "source-registry.conf" named "asdf-source-registry.conf" ?
2/ Should we understand that the convention of having a "systems"
directory with .asd files symlinked there is now obsolete ?
I still prefer to keep that because I can select which of the
installed sources I do want to be seen. I guess you could also use
exclude patterns for doing so, but it seems way more complicated.
Comments ?
3/ The following contents for source-registry.conf fails:
(:source-registry
(:directory (merge-pathnames "share/common-lisp/systems/"
(user-homedir-pathname)))
(:directory "/usr/local/share/common-lisp/systems")
(:directory "/usr/share/common-lisp/systems")
:inherit-configuration)
Am I to understand that this file cannot really contain Lisp code (and
so I couldn't use #'merge-pathnames)? Because in that case, this
sucks. I have several machines on which $HOME is different (e.g.
/home/ or /Users/, and no, I don't want to create a /home/ -> /Users/
symlink on my Macs)
4/ I'm also struggling with the output translations.
I'm happy with the default settings (using .cache/blabla) except for one
case. For lisp files located under ~/Science/Source/Common Lisp/
(recursively), I want the compiled files to remain at the same place,
under an implementation-specific subdirectory, like
asdf-binary-locations did for me before.
For instance, ~/Science/Source/Common Lisp/foo/bar/baz.lisp would
produce somthing like:
~/Science/Source/Common Lisp/foo/bar/sbcl-1.0.32.30-linux-x86-64/baz.fasl
I tried this:
(:output-translations
("/Users/didier/Science/Source/Common Lisp/"
(:current-directory :implementation))
:inherit-configuration)
but this doesn't work. SBCL says:
This is SBCL 1.0.42.52, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
; loading system definition from
; /usr/local/lib/sbcl/sb-bsd-sockets/sb-bsd-sockets.asd into #<PACKAGE "ASDF0">
ASDF could not load sb-grovel because :CURRENT-DIRECTORY fell through ETYPECASE expression.
Wanted one of ((EQL :DEFAULT-DIRECTORY)
(EQL :SYSTEM-CACHE)
(EQL :USER-CACHE)
(EQL :HOME) (EQL :ROOT)
CONS STRING PATHNAME)..
ASDF could not load asdf-install because Error while trying to load definition
for system sb-bsd-sockets from
pathname
/usr/local/lib/sbcl/sb-bsd-sockets/sb-bsd-sockets.asd:
:CURRENT-DIRECTORY fell through ETYPECASE expression.
Wanted one of ((EQL
:DEFAULT-DIRECTORY)
(EQL :SYSTEM-CACHE)
(EQL :USER-CACHE)
(EQL :HOME) (EQL :ROOT)
CONS STRING PATHNAME)..
debugger invoked on a LOAD-SYSTEM-DEFINITION-ERROR:
Error while trying to load definition for system sb-bsd-sockets from pathname
/usr/local/lib/sbcl/sb-bsd-sockets/sb-bsd-sockets.asd:
:CURRENT-DIRECTORY fell through ETYPECASE expression.
Wanted one of ((EQL :DEFAULT-DIRECTORY) (EQL :SYSTEM-CACHE) (EQL :USER-CACHE)
(EQL :HOME) (EQL :ROOT) CONS STRING PATHNAME).
So what's the magick ?
5/ Finally, I would like confirmation that ASDF now handles outdated
fasl's correctly, and we don't need to do the black magick ourselves.
Thanks a lot !
--
Resistance is futile. You will be jazzimilated.
Scientific site: http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com
More information about the asdf-devel
mailing list