Hello,
QUESTION:
1. Could someone add a system naming convention section to the ASDF
documentation, to help future users with similar problems?
2. If someone knows whether my rules-of-thumb (below) are right or wrong,
let me know.
EXPLANATION:
I've been porting a large code base from Franz/Allegro's defsystem to ASDF
2.012. I was originally writing the .ASD files on Windows and recently tried
testing the build with the same .ASD files on the Linux variant, Fedora 14,
but had some problems with various missing-components. I realized the
problem had something to do with the treatment of case in filenames, and
ended up fixing problem by examining the ASDF code and inventing some
rules-of-thumb:
1. When using Strings to name a system, make sure the filename of the ASD
file, the name of the system defined in that file, and any uses of the
system-name in other ASD files all have the same case. i.e.:
In the file "SyStEmA.asd":
(asdf:defsystem "SyStEmA" ...)
In the file "SyStEmB.asd"
(asdf:defsystem "SyStEmB"
:depends-on ("SyStEmA"))
2. If you ever want to use a Symbol to name a system, make sure the filename
of the ASD file is all lowercase. The name of the system defined in that
file and any uses of the system-name in other ASD files should either be a
symbol or a lowercase string.
In the file "systema.asd":
(asdf:defsystem #:SYSTEMA ...)
In the file "systemb.asd"
(asdf:defsystem "systemb"
:depends-on ("systema"))
I don't know if they are correct for all combinations of OSes, CL-variants,
and system names, but from my limited knowledge of ASDF's code I think
they'll work well.
- Thanks!
- David Wang
P.S. Thanks for helping develop ASDF. I couldn't imagine a [Lisp] world in
which it didn't exist.