[slime-devel] unceasing minibuffer error message after bad input

Helmut Eller heller at common-lisp.net
Mon Mar 14 07:40:22 UTC 2011


* Chris Beard [2011-03-12 07:31] writes:

> Hello,
> I just installed Slime on Mac OSX 10.6, via Quicklisp and sbcl
> (following instructions here
> http://www.mohiji.org/2011/01/modern-common-lisp-on-osx/).
>
> My emacs has some annoying behavior whenever I do something
> incorrectly in the SLIME REPL (I'm new at lisp, so this isn't too
> un...common). For example, it operates fine doing (hello-world) after
> I've compiled a hello-world defun, but if I try and run it after
> restarting Slime, it gives me
>
>   ; SLIME 2011-02-18
>   CL-USER> (hello-world)
>
>   ; in: LAMBDA NIL
>   ;     (HELLO-WORLD)
>   ;
>   ; caught STYLE-WARNING:
>   ;   undefined function: HELLO-WORLD
>   ;
>   ; compilation unit finished
>   ;   Undefined function:
>   ;     HELLO-WORLD
>   ;   caught 1 STYLE-WARNING condition
>
> I suspect this is normal.

Yes, seems normal.

> But in the *Messages* buffer, I see things like this:
>
>   error in process filter: define-key: Wrong type argument: characterp, nil
>   error in process filter: Wrong type argument: characterp, nil
>   error in process filter: define-key: Wrong type argument: characterp, nil
>   error in process filter: Wrong type argument: characterp, nil
>   Mark set
>   Error in post-command-hook: (wrong-type-argument characterp nil)
>
> And then it repeats this stuff every once in a while. But even after
> quitting Slime, whenever I try to switch buffers, or kill buffers, or
> basically anything, the minibuffer says "Error in post-command-hook:
> (wrong-type-argument characterp nil)" for a few seconds, then gives me
> the info I need in the minibuffer (such as the list of buffers to
> ido-switch to; but it still only lets me input the name of the buffer
> one letter at a time for some reason). It also won't let me quit Emacs
> with C-x C-c, or even S-q (Apple-q). I'm not 100% this is from Slime,
> but it seems that way. Any suggestions for fixing this? I'm otherwise
> quite excited about learning Lisp.

It seems that you have some strange things in some hook.  Try to M-x
toggle-debug-on-error.  That enables the Emacs debugger and should give
you a better culprit what calls define-key in the wrong moment.

> -Chris
>
> ps- Some additional info:
> I also saw this warning in the *inferior lisp* buffer, shortly after
> starting SLIME:
>
>   WARNING: These Swank interfaces are unimplemented:
>    (DISASSEMBLE-FRAME SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN)
>
> Here's more that was in the *inferior-lisp* buffer.
> http://pastebin.com/KzEej96S
>
> Here is more of what was in the Messages buffer
> http://pastebin.com/aJGYPVeq
>
> And here are some possibly relevant lines from my emacs init files
>
>   ;; http://www.cliki.net/SLIME%20Tips
>   (add-hook 'slime-mode-hook
>             (lambda ()
>               (unless (slime-connected-p)
>                 (save-excursion (slime)))))
>
>   (defun cliki:start-slime ()
>     (unless (slime-connected-p)
>       (save-excursion (slime))))
>
>   (add-hook 'slime-mode-hook 'cliki:start-slime)

I would remove those things: you're adding two hooks and both try to
start Slime but it takes some time to connect and (slime-connected-p)
may be false both times.  So this code may well start two connections.
Also the save-excursion is useless.

>
>   (add-to-list 'load-path
> "/Users/FingerMan/quicklisp/dists/quicklisp/software/slime-20110219-cvs")
>   (setq inferior-lisp-program "/usr/local/bin/sbcl")
>   (require 'slime-autoloads)
>   (slime-setup)
>
>   (load (expand-file-name "~/quicklisp/slime-helper.el"))

Helmut





More information about the slime-devel mailing list