[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: DON%atc.bendix.com@RELAY.CS.NET
- Subject: Synonym streams
- From: Robert W. Kerns <RWK@YUKON.SCRC.Symbolics.COM>
- Date: Thu, 24 Sep 87 19:09 EDT
- Cc: common-lisp@SAIL.STANFORD.EDU
- In-reply-to: The message of 23 Sep 87 15:34 EDT from DON%atc.bendix.com@RELAY.CS.NET
Date: Wed, 23 Sep 87 15:34 EDT
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.