Subject: Re: Known inconsistencies or bugs in CLHS?
From: Erik Naggum <erik@naggum.net>
Date: Fri, 19 Apr 2002 11:21:58 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3228204118313722@naggum.net>

* Christophe Rhodes <csr21@cam.ac.uk>
| Well, that's not what the CLHS says -- in the entry for host-namestring,
| it says
| 
|   namestring---a string or nil.

  Thanks, I managed to overlook that, since pathname-host is not allowed to
  return nil -- ah, no, wait.  A valid physical pathname host may be a list
  of strings, so the empty list is the degenerate case.  How annoying.  I
  tend to think of "list of strings" as a non-empty list unless explicitly
  allowed to be empty with "possibly empty list of strings" or something.

| I think that it's /possible/ to make a nil return value consistent with
| the rest of the system, though it makes parse-namestring less useful for
| physical pathnames; I concede that it's ugly, but I'm not convinced that
| there's a completely clean solution to putting CL pathnames on a Unix
| system... at least, not without sacrificing the obvious representation
| for physical namestrings.

  I think the empty string for host does a good job of ensuring physical
  pathname parsing.  The empty string is not a good logical hostname, since
  it would mean pathnames would come out with a leading colon.  From what I
  recall of Kent's description of the Genera way, a leading colon would
  force physical parsing, indicating that an empty host-namestring has some
  precedence with this meaning.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.

  Post with compassion: http://home.chello.no/~xyzzy/kitten.jpg