[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