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

OPEN for :OUTPUT with version :NEWEST



    Date: Wed, 22 Jun 1983  07:28 EDT
    From: Rob MacLachlan <RAM@CMU-CS-C>
			  In the DEC VAX implementation I have been using,
    the implementer evidently decided that if an explicit version is
    specified then an attempt to open for write will error, not supersede,
    regardless of the :if-exists option.  Perhaps this is wrong, but the
    manual is not very clear on this point.

It's definitely wrong, and I think it's clear from the manual that it's
wrong, although the manual isn't completely clear about a lot of details
of this stuff.

    It seems to me that the entire point of Pathnames is that they (may)
    permit implementation independant file handling code to be written.
    Implementers should be given plenty of rope, but it should be possible
    to say something as simple as "I want to write this file" in a
    portable fashion, or the whole exercise is pointless.

Certainly.  That's why I sent in my previous message.  There has to
be a defined way for all this stuff to work, or else it's useless for
writing portable programs and should be removed from the manual.  I
think the former is the way to go.

       Another point about versions; not all operating systems have any
    real concept of versions.  It would seem dubious to forbid an
    implementation of Common Lisp on UNIX.

That's right; the manual ought to address this point.  Actually, I think
what will happen is that now that the Bible of Common Lisp is nearly
finished, it is time to start writing the Talmud, you should pardon the
analogy.  That is, the Commentary and Interpretation by the Learned
Rabbis of Common Lisp.  The commentary on this chapter would say
that in Rabbi Weinreb's opinion, the meaning of the scriptures is
that on operating systems without version numbers, you simply ignore
the version component of pathnames when doing an OPEN, and acts as
if every pathname had an explicit numeric version of, say, 1, and all
files in the file system are of version 1.  This is what the Lisp
Machine pathname system does, essentially.