On 3/15/10 Mar 15 -10:06 PM, Faré wrote: > On 15 March 2010 22:58, Robert Goldman <rpgold...@sift.info> wrote: >> Isn't supplying :unspecific as the value of :type always to be avoided? >> >> The CLHS says: >> >> "Portable programs should not supply :unspecific for any component." >> [documentation for function MAKE-PATHNAME] >> >> and in section 19.2.2.2.3 :UNSPECIFIC as a component value >> >> "A conforming program must never unconditionally use a :unspecific as >> the value of a pathname component because such a value is not >> guaranteed to be permissible in all implementations." >> >> So instead of supplying this for a couple of cases and then trying to >> avoid it for others, shouldn't we be avoiding it altogether? >> >> I confess that I don't fully understand this issue, since it seems like >> the CLHS makes it clear that NIL is /not/ fully equivalent to >> :unspecific (since the latter is not "overwritten" in a merge), and yet >> tells us not to use the latter.... >> >> If anyone can clarify this, it would be great.... >> > > Oops. I hadn't paid attention to this paragraph. > Should we use :unspecific based on a whitelist of known-working > implementations, or should we just avoid it altogether?
Either of those seems OK to me. I think a blacklist is probably wrong, just because it's too hard to update. OTOH, I don't really understand the motivation in two places here: 1. I don't understand the rationale for the prohibition in the CLHS (probably someone from one of the implementation groups can say something about this) and 2. I don't know the rationale for returning it from SPLIT-NAME-TYPE. I understand that :unspecific has different behavior under merging (which is why I don't understand why it's forbidden), so it seems like one of two things should be the case: a. if you can return NIL for clisp and ABCL, it should be possible to return NIL for all the other implementations or b. if returning :unspecific is necessary for some implementations, shouldn't returning NIL on CLISP And ABCL fail? It seems like either these pathnames are never subjected to MERGE-PATHNAMES, in which case we can just always return NIL, or they /are/ sometimes subjected to MERGE-PATHNAMES, in which case sometimes the use of NIL instead of :unspecific will cause oddities (unless the default type is always empty). Can you clarify? thanks, r _______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel