[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