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

Synonym streams



    Date: Wed, 23 Sep 87 15:34 EDT
    From: DON%atc.bendix.com@RELAY.CS.NET

    Is a synonym-stream a stream?  Can a stream be a synonym of a synonym-stream?

    On the LMI, I tried

    (defvar *describe-output* (make-synonym-stream '*standard-output*))

    Because *standard-output* is by default a synonym of *terminal-io*, *describe-
    output* became a synonym for a synonym.  When I tried printing to
    *describe-stream*, the system hung.  It did not hang if I used *terminal-io*
    in place of *standard-output*.

    LMI's technical support agreed that in spirit it should work; however, CLtL
    is ambiguous or at least not complete.

    The problem, of course, is that if a synonym-stream is a stream but cannot
    be the synonym for another stream, then there must be some function for
    testing whether a stream is a synonym or a real stream. (synonym-stream-p).

    Do other systems support using *standard-output* as a synonym?

It works in Symbolics Common Lisp.  CLtL appears to be completely
unambiguous to my eyes.  Yes, it doesn't explicitly state the
logical consequences, but "any operations on the new stream will
be performed on the stream that is then the value of the dynamic variable
named by the @I(symbol)" seems clear enough.

I'm not arguing that there's no need to elucidate further in the next
manual, but that's an editorial issue that I won't take up on this list.