[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Issue: CLOSED-STREAM-OPERATIONS (version 3)
- To: vanroggen%aitg.DEC@decwrl.dec.com
- Subject: RE: Issue: CLOSED-STREAM-OPERATIONS (version 3)
- From: masinter.pa@Xerox.COM
- Date: 25 Oct 88 16:31 PDT
- Cc: cl-cleanup@sail.stanford.edu
- In-reply-to: vanroggen%aitg.DEC@decwrl.dec.com's message of Mon, 17 Oct 88 12:34:44 PDT
I think the goal is to standardly allow those operations that are usually
implemented and are useful.
I thus think it is useful to address explicitly the questions Kent asks --
I don't think we can or should finess them.
I would prefer INPUT-STREAM-P and OUTPUT-STREAM-P to return false for
streams which do not admit input or output respectively, which, I think,
includes closed streams.
So:
After a stream has been closed:
(STREAMP closed-stream) returns true
(INPUT-STREAM-P closed-stream) returns false
(OUTPUT-STREAM-P closed-stream) returns false
(CLOSE stream) returns NIL (?)
All of the other functions in the list are the ones that that accept a
stream and coerce it to a pathname work at least as specifically as they
would with the open stream. (This is subject to some further work on the
pathname functions; the idea is that once the stream is CLOSEd that the
stream object may have *more* specific pathname information associated with
it than before, and that in some way the pathname used should be
best-effort name to get at the same data. )
The point here is that if I want to write out some data and read it back in
later, I should be able to
(let((saved-file (pathname (with-open-file (x pathname :direction :output)
(print stuff x) x))))
(with-open-file (x saved-file :direction :input)
(read x)))
and expect the second with-open-file to get at the same data that the first
one wrote.
The operation of CLOSE on constructed streams (as constructed with
WITH-OUTPUT-TO-STRING or MAKE-BROADCAST-STREAM) should be specified to have
no effect.