[slime-devel] Re: SLIME 2007-03-24 change to remove the timer for async REPL output

Matthias Koeppe mkoeppe+slime at mail.math.uni-magdeburg.de
Sun Aug 26 18:59:29 UTC 2007


Helmut Eller <heller at common-lisp.net> writes:

> * Matthias Koeppe [2007-08-26 02:13+0200] writes:
>[> reintroduce timer for async output]
>> Any objections?
>
> Yes.  The dedicated output stream is an efficiency hack.  Those people
> using it must accept that it may produce incorrect results.

OK.  

I have changed the documentation instead in CVS, see below.

--- slime.texi	04 Feb 2007 09:06:21 -0800	1.54
+++ slime.texi	26 Aug 2007 11:39:22 -0700	
@@ -1796,12 +1796,20 @@
 @end example
 
 @item SWANK:*USE-DEDICATED-OUTPUT-STREAM*
-This variable controls an optimization for sending printed output from
-Lisp to Emacs. When @code{t} a separate socket is established solely for
-Lisp to send printed output to Emacs through. Without the optimization
-it is necessary to send output in protocol-messages to Emacs which must
-then be decoded, and this doesn't always keep up if Lisp starts
-``spewing'' copious output.
+This variable controls whether to use an unsafe efficiency hack for
+sending printed output from Lisp to Emacs.  The default is @code{nil},
+don't use it, and is strongly recommended to keep.
+
+When @code{t}, a separate socket is established solely for Lisp to send
+printed output to Emacs through, which is faster than sending the output
+in protocol-messages to Emacs.  However, as nothing can be guaranteed
+about the timing between the dedicated output stream and the stream of
+protocol messages, the output of a Lisp command can arrive before or
+after the corresponding REPL results.  Thus output and REPL results can
+end up in the wrong order, or even interleaved, in the REPL buffer.
+Using a dedicated output stream also makes it more difficult to
+communicate to a Lisp running on a remote host via SSH
+(@pxref{Connecting to a remote lisp}).  
 
 @item SWANK:*DEDICATED-OUTPUT-STREAM-PORT*
 When @code{*USE-DEDICATED-OUTPUT-STREAM*} is @code{t} the stream will
@@ -1873,7 +1881,7 @@
 has the side-effect of giving the entire world access to your lisp
 image, so we're not going to talk about it} and we'll only have one
 port open we want to tell swank to not use an extra connection for
-output:
+output (this is actually the default in current SLIME):
 
 @example
 (setf swank:*use-dedicated-output-stream* nil)


-- 
Matthias Köppe -- http://www.math.uni-magdeburg.de/~mkoeppe
(currently @math.ucdavis.edu)




More information about the slime-devel mailing list