[slime-devel] SWANK STREAMS clobbered with lispworks

Madhu enometh at meer.net
Mon Jun 22 15:03:09 UTC 2009


* Martin Simmons <200906221121.n5MBLMr6011420 at higson.cam.lispworks.com> :
Wrote on Mon, 22 Jun 2009 12:21:22 +0100:

|>>>>> On Sat, 20 Jun 2009 13:07:27 +0530, Madhu  said:
|> On Lispworks, the output associated with an editor window goes to the
|> Output Browser pane.  So evaluating a line such as (format t "foo~%"),
|> or (format *standard-output* "foo~%") with C-M-x in an editor pane would
|> print "foo" in the Output Browser.
|> 
|> However, when using SLIME, once emacs has connected to Lispworks over
|> SWANK, the output starts goes to the terminal on which Lispworks was
|> initially started.  This is because the value of *STANDARD-OUTPUT* in
|> the editor pane gets clobbered and set to a Synonym stream to
|> *TERMINAL-IO*.
|> 
|> This behaviour is observed on LWL with any version of slime, and is not
|> desirable.  How can one get the `output stream' back so output from the
|> Lispworks IDE can be seen inside the IDE ?
|
| Which version of SLIME, which contribs are you loading and how are you
| starting it?  What is the value of SWANK:*GLOBALLY-REDIRECT-IO*?

Helmut's suggestion worked for me.  Setting SWANK:*GLOBAL-DEBUGGER* to
NIL avoids the code path where ENV:*ENVIRONMENT* was being set to
freshly created SWANK-BACKEND::SLIME-ENV which seemed to be defaulting
*STANDARD-OUTPUT* to *TERMINAL-IO*.

[I believe the behaviour I noted above is common to all versions of
 slime without any contribs; with *GLOBALLY-REDIRECT-IO* set to NIL. LWL
 Personal can be started with C-u M-x slime, and then pressing "Break to
 TTY" button on the GC Monitor; and after the slime connection is
 established, invoking a continue restart in the *inferior-lisp* buffer]
 
--
Madhu





More information about the slime-devel mailing list