[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