Some considerations:

* In order to achieve a declarative syntax in ASDF, the system that we built it with should have the least knowledge about ASDF. In other words, it should work just the same if we bulid it with any other system.

* Following this reasoning, logical pathnames are a useful choice because we do not force the application to invoke any functions on the system being built, for instance. Using special-purpose variables such as *asdf-system-location* are also not an option.

* A complementary action that ASDF might take is to load the libraries with a different value of *default-pathname-defaults*, but this may have nasty effects if the library is expected to work in the directory where the user is going to invoke it.

* The user of the library should be given full choice over the logical pathnames he / she wants to use, within margings. If we begin imposing ASDF-specific choices such as COMMON-LISP:ASDF;CL-PCRE;*.*.* then we are doomed.

* Logical hostname pollution is not such a big issue, as developers tend to have a good sense of measure in choosing their hostnames, prefixing them with their actual hostnames (de.weitz.cl-ppcre: ...) or using other uniform conventions. We can recommend their use and even perform some sanity check: whether two systems use the same logical hostname, for instance.

* Logical hostname lookup is cheap, log(#hostnames) if using sorted vectors or log(1) for hashes. Logical pathname translation is NOT CHEAP, it takes a time which is linear in the number of translations.

* Including logical pathnames in defsystem instead of just the name of the host is going to be problematic. I know at least one implementation (SBCL) that complains when we try to build a logical pathname with a host name that has no logical translations. It is the fish eating its own tail: we can not define the logical pathname in defsystem and thus we can not define the translation and thus...

* We do not need to fix logical pathnames. We just have to offer them as a portable solution for system distribution. Developers will have to care about the way they name their files and learning how logical pathnames work.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com