I noticed this problem only in emacs 23.0.60 (not 22.1) and allegro express 8.1 on linux:
,---- | emacs -Q -eval '(add-to-list (quote load-path) "~/path/to/slime")' -eval '(require (quote slime))' | C-u M-x slime /path/to/acl_express/alisp `----
,---- In the *inferior-lisp* buffer: | (progn (load "~/path/to/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.12688" :coding-system "iso-latin-1-unix")) | | International Allegro CL Free Express Edition | 8.1 (Linux (x86)) (Jun 29, 2008 13:34) | Copyright (C) 1985-2007, Franz Inc., Oakland, CA, USA. All Rights | Reserved. | | [snip] | | ;; Swank started at port: 40835. | 40835 | CL-USER(2): CL-USER(2): | | ;; swank:close-connection: eof encountered on stream | #<MULTIVALENT stream socket connected from | localhost/40835 to localhost/46300 @ | #x7158daaa> `----
Allegro drops the connection as soon as emacs connects.
,---- And in Emacs: | Debugger entered: (("Error in timer" slime-attempt-connection (#<process inferior-lisp> nil 2) (file-error "make client process failed" "connection refused" :name "SLIME Lisp" :buffer nil :host "127.0.0.1" :service 56408))) | (condition-case data (apply fun args) (error (debug nil ...))) | slime-timer-call(slime-attempt-connection #<process inferior-lisp> nil 2) | apply(slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2)) | byte-code("[snip]" [timer apply 5 6] 4) | timer-event-handler([t 18720 56375 253953 0.3 slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2) nil]) `----
[The probem persists after updating patches for ACL (including the aug 27 base patch). The problem was not observed in the ACL 8.1 release from 2007 (but as that distribution is unavailable, I am not able to check).]
The calls at allegro probably looks like:
(ERROR END-OF-FILE :STREAM ...) ((:EFFT DC-READ-CHAR :LATIN1-BASE) :UNKNOWN :UNKNOWN ...) (SWANK::DECODE-MESSAGE #<MULTIVALENT stream socket connected from localhost/43977 to localhost/55570 @ #x7158963a>)
I've ensured consistent coding systems between emacs and slime, I am stumped at finding a workaround, so I am soliciting suggestions
-- Madhu
There is nothing Allegro specific about this. On the box with the latest CVS emacs where I am observing this the behaviour, the error occurs with CLISP and CMUCL as well.
* Madhu m3ej1bnhv9.fsf@moon.robolove.meer.net : Wrote on Mon, 17 Nov 2008 09:06:42 +0530:
| I noticed this problem only in emacs 23.0.60 (not 22.1) and allegro | express 8.1 on linux:
| ,---- In the *inferior-lisp* buffer: | | (progn (load "~/path/to/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.12688" :coding-system "iso-latin-1-unix")) | | | | International Allegro CL Free Express Edition | | 8.1 (Linux (x86)) (Jun 29, 2008 13:34) | | Copyright (C) 1985-2007, Franz Inc., Oakland, CA, USA. All Rights | | Reserved. | | | | [snip] | | | | ;; Swank started at port: 40835. | | 40835 | | CL-USER(2): CL-USER(2): | | | | ;; swank:close-connection: eof encountered on stream | | #<MULTIVALENT stream socket connected from | | localhost/40835 to localhost/46300 @ | | #x7158daaa> | `---- | | Allegro drops the connection as soon as emacs connects.
I meant SWANK drops the connection as it is reading an EOF
| | ,---- And in Emacs: | | Debugger entered: (("Error in timer" slime-attempt-connection (#<process inferior-lisp> nil 2) (file-error "make client process failed" "connection refused" :name "SLIME Lisp" :buffer nil :host "127.0.0.1" :service 56408))) | | (condition-case data (apply fun args) (error (debug nil ...))) | | slime-timer-call(slime-attempt-connection #<process inferior-lisp> nil 2) | | apply(slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2)) | | byte-code("[snip]" [timer apply 5 6] 4) | | timer-event-handler([t 18720 56375 253953 0.3 slime-timer-call (slime-attempt-connection #<process inferior-lisp> nil 2) nil]) | `---- | | [The probem persists after updating patches for ACL (including the aug | 27 base patch). The problem was not observed in the ACL 8.1 release | from 2007 (but as that distribution is unavailable, I am not able to | check).] | | The calls at allegro probably looks like: stack
| | (ERROR END-OF-FILE :STREAM ...) | ((:EFFT DC-READ-CHAR :LATIN1-BASE) :UNKNOWN :UNKNOWN ...) | (SWANK::DECODE-MESSAGE | #<MULTIVALENT stream socket connected from localhost/43977 to | localhost/55570 @ #x7158963a>) | | I've ensured consistent coding systems between emacs and slime, I am | stumped at finding a workaround, so I am soliciting suggestions | | -- | Madhu
* Madhu [2008-11-17 04:36+0100] writes:
I noticed this problem only in emacs 23.0.60 (not 22.1) and allegro express 8.1 on linux:
[...]
I've ensured consistent coding systems between emacs and slime, I am stumped at finding a workaround, so I am soliciting suggestions
It do see that occasionally, but until now I blamed Emacs 23 for the problem. I see it most often in a terminal and only rarely with X11. Have you tried with Emacs 22 or 21?
Helmut.
* Helmut Eller m23ahpmpda.fsf@common-lisp.net : Wrote on Tue, 18 Nov 2008 09:04:33 +0100:
| * Madhu [2008-11-17 04:36+0100] writes: | |> I noticed this problem only in emacs 23.0.60 (not 22.1) and allegro |> express 8.1 on linux: | [...] |> I've ensured consistent coding systems between emacs and slime, I am |> stumped at finding a workaround, so I am soliciting suggestions | | It do see that occasionally, but until now I blamed Emacs 23 for the | problem. I see it most often in a terminal and only rarely with X11.
I had suspected this may be related to URL:http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980 and may depend on a combination of emacs 23, /etc/hosts, and glibc version,
I'm convinced that the connection is being closed by emacs in Fmake_network_process after the server does an accept. I was getting 100% repeatability (emacs 23 compiled --without-x) but the bug will not manifested if I strace or debug emacs,.. -- Madhu