[slime-devel] swank-rpc module

Terje Norderhaug terje at in-progress.com
Sat Jan 16 10:41:42 UTC 2010

On Jan 16, 2010, at 12:08 AM, Helmut Eller wrote:
> * Terje Norderhaug [2010-01-16 03:43+0100] writes:
>> I think it is time that we factorize out swank's low level rpc layer
>> into a new swank-rpc module that deals with how events are encoded
>> and passed between the client and server.
>> I have enclosed a draft of a new swank-rpc module for the
>> project. Almost all of the code is extracted directly from the
>> swank.lisp file  of the slime-2010-01-15 distribution. It can be
>> included with no  disruption to SLIME.
>> The module act as a specification of the event passing protocol,
>> facilitating alternative swank implementations such as on clojure and
>> scheme. It can optionally validate the input to ensure that the
>> events are consistent with the protocol.
> I don't see the point of this exercise.  Obviously people have written
> servers and clients whitout our help, i.e. it's not terribly hard to
> figure out how Slime works.  I bet that decoding the wire syntax  
> was one
> of the easier parts.

I have a bit experience with reverse-engineering the swank protocol  
from implementing the MCLIDE swank client. It should be more straight- 

The slime protocol is undocumented. The project leaves the  
implementation to act as the specification for the swank protocol and  
wire syntax. Yet the swank.lisp module is overly complex. To better  
act as a specification, it would benefit from separating out the  
lower layer of the RPC protocol from the swank server specific  
message handling.

It is also significant that the proposed swank-rpc module can be  
reused beyond the swank server. Currently I am maintaining equivalent  
code as part of the MCLIDE swank client. It would be better if the  
same module could be shared between clients and servers.

Are there any good reasons *not* to factorize out the wire syntax and  
RPC encoding from swank.lisp? I'd be glad to do the remaining work.

-- Terje Norderhaug
   terje at in-progress.com

More information about the slime-devel mailing list