[slime-devel] significance of *error-output*/*standard-output* in the REPL

David A Thompson thompson at fresno.edu
Thu May 18 23:14:30 UTC 2006


I suspect this question/issue is already addressed in SLIME documentation 
(where?) or has been touched on in a mailing list before but... Google and a 
search of the archives via gmane have let me down so... apologies up front.

In short, how does one suppress compiler error warnings in the SLIME REPL (I'm 
using SLIME with SBCL)? This issue arose in the context of a program which 
generates thousands of compiler error conditions (intentionally) as it 
evaluates a large collection of sexps. (As one might imagine), execution is  
slowed down substantially by the verbosity that accompanies these error 
messages when each message much be sent to the terminal. Even with a handler 
in place, SBCL still likes to let everyone know a compiler error has occurred 
so I end up with thousands of lines in the REPL along the lines of:

; in: LAMBDA NIL
;     ((KNOT) ((D1)))
; 
; caught ERROR:
;   illegal function call

Setting *error-output* or *standard-output* to (make-broadcast-stream) is the 
minimal-effort fix under SBCL if it is used in a regular terminal (e.g., 
xterm) but, in the context of SLIME, these settings seem to be ignored. SLIME 
seems to globally redirect streams to the REPL (as the SLIME manual suggests) 
regardless of *error-output* and/or *standard-output* settings. Is there any 
way to override this behavior and suppress/divert such error messages? 
(something related to swank::*globally-redirect-io*?)

Thanks for your good graces and any suggestions,

- Alan



More information about the slime-devel mailing list