Helmut Eller heller@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)