[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unsolicited typeout
Date: Wed, 18 Jun 86 17:02 EDT
From: Kent M Pitman <KMP@SCRC-STONY-BROOK.ARPA>
To: COMMON-LISP@SU-AI.ARPA
Subject: Unsolicited typeout
Message-ID: <860618170258.3.KMP@RIO-DE-JANEIRO.SCRC.Symbolics.COM>
...
In general, I feel that the next edition of the manual should make
it very clear that certain kinds of actions (such as output to
*STANDARD-OUTPUT*) are implicitly forbidden unless there is an explicit
statement to the contrary. The same text should also expressly allow
anything to do output to *ERROR-OUTPUT* at any time, since that can
be safely bound to something else in contexts where warnings need to
be suppressed without affecting the "normal" I/O behavior of the
program in question.
Agreed.
By the way, I get tired of writing
(WITH-OUTPUT-TO-STRING (*STANDARD-OUTPUT*)
...)
around things that I want to portably suppress output from (and then
throwing away the result string). It's inefficient and doesn't say
what I mean. In the absence of a protocol for making generalized
user-defined streams, I would like very much if we would provide a
WITH-OUTPUT-DISCARDED special form (or macro) that would say and do
what I really mean to be doing. Alternatively, if there were a
variable that held a stream that did this output and I could do
(LET ((*STANDARD-OUTPUT* *NULL-OUTPUT-STREAM*)) ...), that would
suffice.
How 'bout
(defvar *null-output-stream* (make-broadcast-stream))
-- Nick