[asdf-devel] :logical-hostname

Robert Goldman rpgoldman at sift.info
Tue Mar 30 14:25:00 UTC 2010


On 3/30/10 Mar 30 -5:00 AM, Juan Jose Garcia-Ripoll wrote:
> 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's argument seems persuasive, since it does not require us to wait
until the Messiah comes, bringing improved logical pathnames, but allows
us to live with the logical pathnames that we have today.

Question:  should we raise a style warning if the user supplies a
logical pathname that does not comply with the ANSI spec?  I would
prefer that we do that.

Question:  are we going to create a logical pathname translation for
just the system sources?  Or should we create also something like

CL-PPCRE;FASLS;*.*.*

in addition?  This seems a little tricky, since it requires that we hook
into the output name rewriting logic, but probably is The Right Thing.



Best,
Robert




More information about the asdf-devel mailing list