s.perrot@voila.fr writes:
The first invocation of M-x slime RET in a just started XEmacs freezes it
the following sequences of evaluated forms freeze it as weel :
(slime-maybe-start-lisp) (slime-read-port-and-connect) or (slime-maybe-start-lisp) (slime-start-swank-server) ;; eval only once ! (setq port (slime-read-swank-port)) (slime-connect "localhost" port)
I cannot reproduce this problem. I tried XEmacs 21.1, XEmacs 21.4, Emacs 20.7 and Emacs 21.3 with CLISP 2.32. I invoke CLISP with 'clisp -K full' and that seems work without problems.
What do mean with 'freezes'? 'freeze' as in "Emacs does not respond, but C-g works" or "Emacs does not respond and I have to kill Emacs entirely"?
C-g is supposed to work. It would be serious bug in SLIME if it were otherwise.
but NOT the following
(slime-maybe-start-lisp) (slime-start-swank-server) (setq *proc* (slime-net-connect "localhost" port)) (slime-init-connection *proc*) ^^^^
| What's the value of 'port' here? -------------+
SLIME uses a different/random port for each connection, so it is bit surprising that you can connect after restarting the server.
which works fine (i.e. after evaluating a few more forms I get a fully functional SLIME)
In all cases, the lisp is started ok, as is the swank server. The problem seems to me to be located somewhere in the slime-init-connection/slime-net-connect interaction.
Judging from the backtrace, it seems that Emacs can connect, but apparently CLISP doesn't reply to the first request. The first request is usually (swank:getpid).
I have no idea what might cause the problem and can only the give the lame re-compile-everything advice :-) Make sure you have a link to the metering package as described in swank-clisp.lisp and remove all byte-compiled .elc files. Add
(setq swank::*redirect-io* nil) (setq swank::*use-dedicated-output-stream* nil) (setq swank::*log-events* t) (setq swank::*sldb-initial-frames* 1)
to your ~/.swank.lisp for better debugging messages. You can also try to run clisp in a separate xterm, start the swank server with:
(load "swank-loader") (swank:create-swank-server)
and use M-x slime-connect to connect to it.
Helmut.