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

Issue: CLOSED-STREAM-OPERATIONS (Version 1)



    Date: 4 Sep 88 15:56 PDT
    From: Masinter.pa@Xerox.COM

    This reminds me a little of the PATHNAME issue. I think that CLOSE is only valid
    for streams that PATHNAME was valid for

Certainly not.  Suppose I have a stream that represents a network connection
to another computer.  This stream doesn't go to a file, so it has no pathname,
but it certainly has a well-defined concept of closing.

    What does it mean to CLOSE a composite stream ( broadcast two-way synonym
    concatenated) ? The choices I can think of are:
    a) no effect
    b) implementation dependent (ugh)
    c) closes constituent streams
    d) the composite stream is "closed" (no I/O operations allowed) but
	    the constituents are not.

I prefer c.

    What does it mean to close a constructed stream (e.g., STRING)? 
    a) no effect
    b) implementation dependent (ugh)
    c) the constructed stream is "closed" (no I/O operations allowed).

I prefer a or c.

    I think the following operations should be as valid after a CLOSE as before
    (i.e., they're valid after the close only if they were valid before):

    STREAMP, INPUT-STREAM-P, OUTPUT-STREAM-P, TRUENAME, PATHNAME. (In fact, there
    are some operating systems where you can *only* get TRUENAME on a closed stream,
    since the name isn't true until the stream has been closed.)

Certainly.

    Note that the issues STREAM-CAPABILITIES, STREAM-INFO, and  STREAM-CLASS-ACCESS
    add functions that take streams.