Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-08-13 12:08:42

David Abrahams <dave_at_[hidden]> writes:

>> Once syntactic markers and/or rules are introduced, whether to
>> eliminate ambiguities or to improve readability and writablity, the
>> question is then what are the advantages of a new and unfamiliar set
>> of markers and/or rules?
> You're already making paths unfamiliar by "genericizing" them. It
> would be unfair to VMS and whatever other OSes will be supported to
> say otherwise just because you are only changing slash direction on
> windows paths.
> The advantages are:
> 1. You can use familiar terminology - there should be no need to
> throw out the term "absolute" just to meet the expectations of
> Unix programmers who expect all paths beginning with '/' to be
> absolute.
> 2. The rules for understanding generic path syntax are greatly
> simplified and can be understood without platform-specific
> knowledge.
> 3. Portable/generic paths can actually be portable/generic, as
> advertised. You won't have the problem we have now: no
> complete path that works on a Windows machine can also work on
> a Unix machine (disregarding paths to remote machines, of
> course).

Not to keep harping on this, but I just realized I forgot to mention
another naming problem with "complete": many shells support a familiar
notion of "path completion" which is what I expected of the complete()
function in operations.hpp when I first saw it. I think having an
up-front definition of "complete" is helpful, but it doesn't eliminate
the cognitive dissonance. The docs should cross-link all special uses
of the term "complete" to the definition, since it is such a common
word that many people won't guess it has a well-defined technical
meaning. That would help too.

BTW, I also have trouble with the phrase "uniquely identify a file or
directory". Does that mean there is only one complete path that
identifies a file? If so, what about links? If not, what does
"uniquely" mean?

Dave Abrahams
Boost Consulting

Boost list run by bdawes at, gregod at, cpdaniel at, john at