[slime-devel] slime/clisp freezes a fresh xemacs
s.perrot at voila.fr
s.perrot at voila.fr
Fri Feb 6 19:08:24 UTC 2004
Hi all,
Following recent advices on c.l.l, I just tried a recently downloaded (02/04/04)
version of SLIME. I am using it with XEmacs 21.4.12 and clisp 2.32, and
I'm getting the following strange behaviour :
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)
but NOT the following
(slime-maybe-start-lisp)
(slime-start-swank-server)
(setq *proc* (slime-net-connect "localhost" port))
(slime-init-connection *proc*)
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.
I tried to put a conditional in slime-connect do process
to slime-init-connection only if (slime-net-connect "localhost" port)
returns, and to increase the delay between each run-with-timer
(the swank server gets started after a good 3-4 seconds)
but it didn't seem to help.
The XEmacs stack dump I get when killing it is the following :
Lisp backtrace follows:
# (unwind-protect ...)
accept-process-output(nil 0 10000)
(while t (accept-process-output nil 0 10000) (when nil (recursive-edit) (error "Evaluation aborted.")))
# bind (inhibit-quit debug-on-quit)
(let ((debug-on-quit t) (inhibit-quit nil)) (while t (accept-process-output nil 0 10000) (when nil ... ...)))
# (catch slime-result-66523 ...)
(catch tag (slime-rex (tag sexp) (sexp package) (... ... ...) (... ...)) (let (... ...) (while t ... ...)))
# (unwind-protect ...)
(unwind-protect (catch tag (slime-rex ... ... ... ...) (let ... ...)))
# bind (slime-stack-eval-tags tag)
(let* ((tag ...) (slime-stack-eval-tags ...)) (unwind-protect (catch tag ... ...)))
# bind (package sexp)
slime-eval((swank:getpid))
(let ((--store--66522 ...)) (slime-with-connection-buffer nil (setq slime-pid:connlocal --store--66522) --stor
e--66522))
(setf (slime-pid) (slime-eval (quote ...)))
# bind (proc)
slime-init-connection-state(#<network connection "SLIME Lisp" (1219 . "localhost") state:exit>)
# bind (slime-dispatching-connection)
(let ((slime-dispatching-connection proc)) (slime-init-connection-state proc) (slime-select-connection proc) p
roc)
# bind (proc)
slime-init-connection(#<network connection "SLIME Lisp" (1219 . "localhost") state:exit>)
(progn (message "slime-net-connect succeeded...") (slime-init-connection proc))
(if proc (progn (message "slime-net-connect succeeded...") (slime-init-connection proc)))
(when proc (message "slime-net-connect succeeded...") (slime-init-connection proc))
# bind (proc)
(let ((proc ...)) (when proc (message "slime-net-connect succeeded...") (slime-init-connection proc)))
(when-let (proc (slime-net-connect "localhost" port)) (message "slime-net-connect succeeded...") (slime-init-c
onnection proc))
# bind (kill-old-p port host)
slime-connect("localhost" 1219)
# bind (port)
(let ((port ...)) (message "srpac: port read in file: %d" port) (slime-connect "localhost" port))
(cond ((file-exists-p ...) (let ... ... ...)) ((and ... ...) (message "Failed to connect to Swank.")) (t (if .
.. ...) (setq slime-connect-retry-timer ...)))
# bind (G66513 G66512 G66511)
(lambda (G66511 G66512 G66513) (if (active-minibuffer-window) nil (message "Polling %S.. (Abort with `M-x slim
e-connection-abort'.)" ...)) (setq slime-state-name (format "[polling:%S]" ...)) (if slime-connect-retry-timer (
cancel-timer slime-connect-retry-timer)) (setq slime-connect-retry-timer nil) (cond (... ...) (... ...) (t ... .
..)))(--G66505-- --attempt-- --retries--)
apply((lambda (G66511 G66512 G66513) (if (active-minibuffer-window) nil (message "Polling %S.. (Abort with `M-
x slime-connection-abort'.)" ...)) (setq slime-state-name (format "[polling:%S]" ...)) (if slime-connect-retry-t
imer (cancel-timer slime-connect-retry-timer)) (setq slime-connect-retry-timer nil) (cond (... ...) (... ...) (t
... ...))) --G66505-- --attempt-- --retries-- nil)
# bind (--cl-rest--)
(lambda (&rest --cl-rest--) "\nCommon Lisp lambda list:\n (cl-none . NIL)\n\n" (apply (quote ...) (quote --G6
6505--) (quote --attempt--) (quote --retries--) --cl-rest--))()
apply((lambda (&rest --cl-rest--) "\nCommon Lisp lambda list:\n (cl-none . NIL)\n\n" (apply (quote ...) (quot
e --G66505--) (quote --attempt--) (quote --retries--) --cl-rest--)) nil)
# bind (time-elapsed itimers itimer next-wakeup last-event-time this-command inhibit-quit quit-flag current-it
imer)
# (unwind-protect ...)
# bind (match-data)
byte-code("..." [this-command inhibit-quit quit-flag match-data itimer current-itimer match-data ((store-match
-data match-data)) nil itimer-uses-arguments apply itimer-function itimer-function-arguments last-event-time nex
t-wakeup itimers time-elapsed] 5)
# (condition-case ... . ((error (byte-code "ÂÃÄ !!#" ... 5)) (quit (byte-code "ÁÂ!\"" ... 4))))
# (unwind-protect ...)
# bind (itimers itimer next-wakeup idle-time last-event-time recorded-run-time inhibit-quit time-elapsed)
itimer-run-expired-timers(3.000095)
# bind (sleep elapsed now itimer-inside-driver inhibit-quit ignored)
itimer-timer-driver(nil)
# (condition-case ... . error)
# (catch top-level ...)
The detailed versions involved :
> xemacs -V
XEmacs 21.4 (patch 12) "Portable Code" [Lucid] (i686-pc-linux) of Tue Oct 21 2003 on titan
> clisp --version
GNU CLISP 2.32 (2003-12-29) (built 3285056062) (memory 3285056598)
Software: GNU C 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r1, propolice) Programme en ANSI C
Features:
(ASDF MK-DEFSYSTEM COMMON-LISP-CONTROLLER CLX-ANSI-COMMON-LISP CLX SYSCALLS CLOS LOOP COMPILER CLISP ANSI-CL
COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI GETTEXT UNICODE
BASE-CHAR=CHARACTER PC386 UNIX)
Installation directory: /usr/lib/clisp/
User language: ENGLISH
Machine: I686(I686)titan.si.c-s.fr [172.17.90.32]
(build 2.32-r1 from gentoo)
System: IBM T20 (PIII 700), gentoo 1.4
Tanks in advance for any help, and
for this otherwise already very functional
piece of work.
Stephane Perrot
------------------------------------------
Faites un voeu et puis Voila ! www.voila.fr
More information about the slime-devel
mailing list