[ 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 !