[Openmcl-devel] Openmcl 060826 and Slime CVS...

Gary Byers gb at clozure.com
Sun Aug 27 06:31:05 PDT 2006

I botched it; the new ADD-AUTO-FLUSH-STREAM function and the function
that actually does the background FORCE-OUTPUTing both assume that
the stream in question is of a particular type (and make assumptions
about what kind of locking/sharing mechanism the stream uses and
how that's implemented.)  The streams that SLIME wants to have
flushed periodically are more abstract Gray streams and they seem
to implement their own locking protocol.

Until I can get that straightened out, the better advice for SLIME
users would be to (temporarily) change swank-openmcl.lisp to avoid
using the automatic flushing at all.  That would mean changing anything
that originally did:

   (push stream ccl::*auto-flush-streams*)

to do nothing if the new (but broken) function CCL:ADD-AUTO-FLUSH-STREAM
is defined (something like):

  (if (fboundp 'ccl::add-auto-flush-stream)
    nil; temporarily avoid the auto-flush mechanism
    (push stream ccl::*auto-flush-streams*))

You do lose a little bit if the stream's output doesn't get flushed
out to Emacs periodically; something like

(progn (print (fact 1000)) (sleep 5))

wouldn't display the buffered output (or at least might not display
all of it) until the SLEEP finished and the REPL tried to read something.

Sorry for both the botch and the confusion it may cause.

On Sun, 27 Aug 2006, Alberto Santini wrote:

> Hello.
> I read the release notes about the changes in the streams.
> I use the latest version of Slime (CVS) and I don't know how to
> apply the changes suggested for Slime 2.0, when there
> was a different implementation (with a defmethod).
> Now the latest code in Slime (swank-openmcl, ~line 182) is:
> (defimplementation make-stream-interactive (stream)
>  (typecase stream
>    (ccl:fundamental-output-stream
>     (push stream ccl::*auto-flush-streams*))))
> I tried
> (defimplementation make-stream-interactive (stream)
>  (typecase stream
>    (ccl::add-auto-flush-stream stream
>     (push stream ccl::*auto-flush-streams*))))
> but it seems it doesn't work, Slime aborts the connection and I don't
> see any error message.
> Any help?
> Thanks in advance,
> Alberto Santini
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list