[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: PATHNAME-UNSPECIFIC-COMPONENT (Version 1)



Ah, I thought I'd dropped my pointer to this message. Even though I answered
it in mail to Jeff a bit ago, I want to make sure it's filed where the answer
can be found, since it's important:

    Date: 11 Jan 89 22:20 PST
    From: masinter.pa@Xerox.COM

    I hadn't given much thought to this issue before. In Medley, we represented
    "unspecific" components by the empty string. 

The null type is not what we call an unspecific component.

    I.e., "foo." => (host nil device nil directory nil name "foo" type ""
    version nil), 

This is a null type.

    while "foo" => (host nil device nil directory nil name "foo" type nil
    version nil).

This is an unspecific type, but it cannot be represented this way because of
reasons outlined in the problem description of this proposal.

    Why do you need a separate keyword?

It doesn't merge right. If I have two Unix files "stuff" and "stuff.l" and I do
(OPEN "stuff") from within Lisp while the file defaults are for "/joe/foo.l"
then, you will open "stuff.l" rather than "stuff" if you have represented the
unspecific type as NIL because of the way Lisp pathname merging is defined to
work.

Since Unix allows you to create files which deliberately have no type (and so
do not want to have a type merged into them), there must be a way to distinguish
 "This pathname has no type but wants one." (type = NIL)
 from
 "This pathname has not type for a reason." (type = :UNSPECIFIC)
 from
 "This pathname has a type which is null." (type = "")

I hope this helps clarify things.