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

Issue: CLOSED-STREAM-OPERATIONS (version 4)



Note that I have corrected the misspelled issue name in the subject,
and guessed that the version was really 4 rather than 3.  Always
having stylized subject lines, free of typos, helps everyone cope
with the enormous flood of mail in CL-Cleanup.

    Date: 26 Oct 1988 16:19-EDT
    From: ROSENKING@A.ISI.EDU

    Require that CLOSE return the stream name at all times, of the form 
    #<stream>, and that it is an error to perform any operation on a closed stream.

The last clause clearly cannot work, since certain operations such as
TRUENAME are only valid on output streams -after- the stream has been
closed, in some file systems (ones with version numbers that don't
choose the version until after the file has been closed, for example.)
Similarly, FILE-WRITE-DATE on an open output stream is really only
meaningful after the stream has been closed, since the buffer forcing
inherent in CLOSE sets the write date in some file systems.

Also it contradicts CLtL p.332, which says "certain inquiry operations"
can be performed after a stream has been closed (unfortunately it
neglects to say which).

My point here is that this file system stuff requires careful consideration,
because there is so much variation in file systems, which in most cases are
not under the control of the Lisp implementors.  If there is insufficient
time for careful consideration, I would rather see Common Lisp left 
deliberately ambiguous or underspecified in this area.  That would be
preferable to specifying something which cannot be implemented or
which creates unanticipated problems.