slime + clisp + emacs: server disconnects
Stuart Little
achirvasub at gmail.com
Tue Jul 23 14:50:05 UTC 2019
On Tue, Jul 23, 2019 at 05:03:19PM +0300, Stas Boukarev wrote:
> Well, your clisp just happens to crash on that.
>
I understand that :), but the purpose was to gain some insight into how or why it's happening.
Perhaps I can hack the swank loading procedure to avoid this, for instance.But I'd need to understand the situation beyond the simple observation that there's a crash, hence the mailing list message.
> On Tue, Jul 23, 2019 at 4:59 PM Stuart Little <achirvasub at gmail.com> wrote:
> >
> > On Tue, Jul 23, 2019 at 04:52:00PM +0300, Stas Boukarev wrote:
> > > It says that Clisp crashes with a segfault, nothing to do with slime.
> > >
> >
> > It does say that, but a follow-up:
> >
> > If I run through the procedure described at the end, of starting swank from within clisp, there are no crashes with swank-v2.20 (rather than 2.24).
> >
> > I do get a warning in emacs to the effect that swank (2.20) and slime (2.24) versions don't match, but once I confirm that the crashes go away.
> >
> > So this same clisp installation works fine with swank 2.20 and not swank 2.24, meaning that some change in the latter is what's causing this.
> >
> > > On Tue, Jul 23, 2019 at 4:30 PM Stuart Little <achirvasub at gmail.com> wrote:
> > > >
> > > > I am running
> > > >
> > > > - emacs 26.2
> > > > - slime 2.24
> > > > - clisp 2.49
> > > >
> > > > on Linux.
> > > >
> > > > Running M-x slime in emacs with 'inferior-lisp-program' set to 'clisp' starts slime fine. I can usually run one evaluation (like say (+ 2 3)), whereupon any other action (pressing 'enter', say) will result in a disconnect:
> > > >
> > > > Lisp connection closed unexpectedly: connection broken by remote peer
> > > >
> > > > The inferior-lisp buffer reads as follows after the disconnect:
> > > >
> > > > --- buffer starts ---
> > > >
> > > > (progn (load "/home/chirvasitua/quicklisp/dists/quicklisp/software/slime-v2.24/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init") :from-emacs t) (funcall (read-from-string "swank:start-server") "/tmp/slime.19223"))
> > > >
> > > > i i i i i i i ooooo o ooooooo ooooo ooooo
> > > > I I I I I I I 8 8 8 8 8 o 8 8
> > > > I \ `+' / I 8 8 8 8 8 8
> > > > \ `-+-' / 8 8 8 ooooo 8oooo
> > > > `-__|__-' 8 8 8 8 8
> > > > | 8 o 8 8 o 8 8
> > > > ------+------ ooooo 8oooooo ooo8ooo ooooo 8
> > > >
> > > > Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
> > > >
> > > > Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
> > > > Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
> > > > Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
> > > > Copyright (c) Bruno Haible, Sam Steingold 1999-2000
> > > > Copyright (c) Sam Steingold, Bruno Haible 2001-2010
> > > >
> > > > Type :h and hit Enter for context help.
> > > >
> > > > [1]>
> > > > ;; Loading file /home/chirvasitua/quicklisp/dists/quicklisp/software/slime-v2.24/swank-loader.lisp ...
> > > > ;; Loaded file /home/chirvasitua/quicklisp/dists/quicklisp/software/slime-v2.24/swank-loader.lisp
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/packages.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/packages.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/backend.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/backend.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/xref.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/xref.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/metering.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/metering.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/clisp.fas ...
> > > > WARNING: DEFUN/DEFMACRO: redefining function BREAK in
> > > > /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/clisp.fas,
> > > > was defined in /builddir/clisp-2.49/src/condition.fas
> > > > WARNING: Replacing method #<STANDARD-METHOD (#<BUILT-IN-CLASS T>)> in
> > > > #<STANDARD-GENERIC-FUNCTION EMACS-INSPECT>
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/clisp.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/gray.fas ...
> > > > WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-LINE-COLUMN>
> > > > is being modified, but has already been called.
> > > > WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-FORCE-OUTPUT>
> > > > is being modified, but has already been called.
> > > > WARNING: The generic function #<STANDARD-GENERIC-FUNCTION STREAM-LINE-COLUMN>
> > > > is being modified, but has already been called.
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/gray.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/match.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/match.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/rpc.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/rpc.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/swank.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/swank.fas
> > > > 0 errors, 5 warnings
> > > > ;; Swank started at port: 41975.
> > > > CL-USER>
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-trace-dialog.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-trace-dialog.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-package-fu.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-package-fu.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-presentations.fas ...
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-repl.fas ...
> > > > WARNING: The generic function
> > > > #<STANDARD-GENERIC-FUNCTION THREAD-FOR-EVALUATION> is being modified,
> > > > but has already been called.
> > > > WARNING: Replacing method
> > > > #<STANDARD-METHOD
> > > > (#<STRUCTURE-CLASS MULTITHREADED-CONNECTION> (EQL :FIND-EXISTING))>
> > > > in #<STANDARD-GENERIC-FUNCTION THREAD-FOR-EVALUATION>
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-repl.fas
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-presentations.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-macrostep.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-macrostep.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-fuzzy.fas ...
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-util.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-util.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-c-p-c.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-c-p-c.fas
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-fuzzy.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-fancy-inspector.fas ...
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-fancy-inspector.fas
> > > > ;; Loading file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-arglists.fas ...
> > > > WARNING: Test failed: (&KEY #'#'+) => "(&key (function #'+))"
> > > > Expected: One of: "(&key (function #'+))", "(&key (function (function
> > > > +)))"
> > > > ;; Loaded file /home/chirvasitua/.slime/fasl/2.24/clisp-2.49-unix-pc386/contrib/swank-arglists.fas
> > > >
> > > > Process inferior-lisp segmentation fault
> > > >
> > > > --- buffer ends ---
> > > >
> > > > More information:
> > > >
> > > > - starting clisp in a terminal all on its own seems to work fine; I haven't had segmentation faults using it in isolation from slime.
> > > >
> > > > - I tried to start the server from within clisp and connect to it:
> > > >
> > > > (a) rlwrap clisp
> > > > (b) (load "~/quicklisp/dists/quicklisp/software/slime-v2.24/swank-loader.lisp")
> > > > (c) (swank-loader::init :reload t)
> > > > (d) (swank:create-server :port 7000)
> > > > (e) from within emacs: M-x slime-connect with localhost and port 7000
> > > >
> > > > Same behavior as before: I get connected, get to make a few evaluations, get disconnected.
> > > >
> > > > This time around rlwrap tells me (in the terminal where I started clisp):
> > > >
> > > > rlwrap: warning: clisp crashed, killed by SIGSEGV
> > > >
More information about the slime-devel
mailing list