Subject: Re: Bug#414682: cl-swank: trying to connect to new SBCL from Emacs throws a CL error
From: Peter Van Eynde <[email-masked]>
To: Drake Wilson <[email-masked]>, [email-masked], [email-masked]
Date: Wed, 14 Mar 2007 10:39:25 +0100

On Tuesday 13 March 2007 11:59, Drake Wilson wrote:
> Actually it was just M-x slime; SBCL is the main CL installed on my
> machine.

Ok. (I recreated the complete output for reference)

> WARNING: These Swank interfaces are unimplemented:
>  (CALLS-WHO DISASSEMBLE-FRAME SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN
>             WHO-BINDS WHO-CALLS WHO-MACROEXPANDS WHO-REFERENCES WHO-SETS
>             WHO-SPECIALIZES)
> T
> *
> debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread #<THREAD
> "initial thread" {10025EFA81}>: unknown &KEY argument: :EXTERNAL-FORMAT
>
> Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
>
> restarts (invokable by number or by possibly-abbreviated name):
>   0: [ABORT] Exit debugger, returning to top level.
>
> (SWANK:START-SERVER "/tmp/slime.1772" :EXTERNAL-FORMAT :ISO-LATIN-1-UNIX)
> 0] backtrace
> 
> 0: (SWANK:START-SERVER "/tmp/slime.23041" :EXTERNAL-FORMAT :ISO-LATIN-1-UNIX)
> 1: (SB-INT:SIMPLE-EVAL-IN-LEXENV
>     (SWANK:START-SERVER "/tmp/slime.23041" :EXTERNAL-FORMAT :ISO-LATIN-1-UNIX)
>     #<NULL-LEXENV>)
> 2: (INTERACTIVE-EVAL
>     (SWANK:START-SERVER "/tmp/slime.23041" :EXTERNAL-FORMAT :ISO-LATIN-1-UNIX))
> 3: (SB-IMPL::REPL-FUN NIL)

This is bogus. The swank:start-server function does not have an external-format
part, there is a coding-system parameter.

In the slime changelog I do notice that some time ago this existed:

2004-11-19  Helmut Eller  <[email-masked]>

...
        (start-server): Accept external-format as argument.
   
But this went away in 

2006-11-19  Helmut Eller  <[email-masked]>

..
        * swank.lisp (compile-file-for-emacs): Use guess-external-format.
        (swank:create-server): no more accepts an  :external-format 'enc ,
        use  :coding-system "enc"  instead.

So I'm guessing your cl-swank and slime packages are out of sync and the
backwards compatibility of slime leaves something to be desired.

Slime maintainers: what is the official word on this?

I could stronger dependencies to the next upload but as slime can be used 
to connect to a non-local lisp instance this is a problem that will be 
difficult to avoid.

Groetjes, Peter

-- 
signature -at- pvaneynd.mailworks.org 
http://www.livejournal.com/users/pvaneynd/
"God, root, what is difference?" Pitr | "God is more forgiving." Dave Aronson|