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

Re: Issue: STREAM-CAPABILITIES



    Date: 20 Sep 88 02:16 PDT
    From: masinter.pa@Xerox.COM
    ....
    I think INTERACTIVE-STREAM-P is implementable, however, if only because it is
    reasonable to be conservative.
    It is important to answer the questions about CL-constructed streams lest we
    differ: what about MAKE-ECHO-STREAM MAKE-BROADCAST-STREAM MAKE-TWO-WAY-STREAM
    with regard to their transformation of INTERACTIVE-STREAM-Ps to non-interactive
    ones? 

I believe that interactivity is a property of input streams: it means
that input from the stream is coming from an intelligent agent which
bases his/her/its input on observations of the state of the system,
which might include output to various streams.  A non-interactive
stream, in contrast, is one whose input comes from some kind of "canned"
source.  There might be gray areas where an implementor has to use
his judgement, but that's not a fatal flaw.

One could argue that an output stream can be interactive, which means
that an intelligent agent is more likely to look at what is written to
that stream (e.g. it's displayed directly in a window, rather than being
sent to a file that would have to be examined; but what if the window is
covered over?).  I don't think this is a useful distinction.

If we agree that interactivity is a property of input streams, then
the answers follow: MAKE-ECHO-STREAM and MAKE-TWO-WAY-STREAM get the
interactivity from their input-stream.  Since MAKE-BROADCAST-STREAM
makes output streams, INTERACTIVE-STREAM-P is either invalid or
always returns NIL, whichever it's defined to be for output streams.

MAKE-CONCATENATED-STREAM is wierd, but I guess the only sensible
choice is that it gets its interactivity from the currently active
input stream, or if all of them have been used up, it's not interactive.