[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Moon: Issue: Pathname-subdirectory-list]
- To: Masinter.pa@Xerox.COM, Ghenis.pasa@Xerox.COM
- Subject: [Moon: Issue: Pathname-subdirectory-list]
- From: EWeaver.pa@Xerox.COM
- Date: Mon, 26 Oct 87 09:35 PST
- Cc: LispCore↑.PA@Xerox.COM, firstname.lastname@example.org, email@example.com, firstname.lastname@example.org
- Fcc: BD:>EWeaver>mail.babyl
- In-reply-to: The message of 23 Oct 87 15:37 PDT from Masinter.pa
- Line-fold: no
Date: 23 Oct 87 15:37 PDT
----- Begin Forwarded Messages -----
Date: Thu, 16 Jul 87 20:14 EDT
From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
Subject: Issue: Pathname-subdirectory-list
Date: 15 Jul 87 13:24 PDT
It is impossible to write PORTABLE code that can produce a pathname
based on directory plus SUBDIRECTORY information. If the directory used
is not a root, then the string provided must contain OS-specific
separators. This defeats the purpose of having an abstraction like
pathname. Specifying a subdirectory RELATIVE to the current default is
possible but also inconvenient and non-portable.
This problem is even worse for programs running on machines on a network
that can retrieve files from multiple hosts, each using a different OS
and thus a different subdirectory delimiter.
The solution to this problem that Symbolics has used for years works
quite well. The directory is a structured field whose value is returned
as a list of strings, one string for each subdirectory level. In
addition to strings, in our system we allow certain keywords in the
list, enumerated below....
I might add that Kyoto / Ibuki Common Lisp uses this system too, and it
makes it quite simple to write code which ports to implementations which
run on other file systems. One notable case was a test suite which was
written on Unix and moved to VMS with no trouble.
I highly recommend this technique.