On 2011-12-09, at 2:07 AM, Attila Lendvai wrote:
Alternatively (but harder I think), abstract the operations you need from the Scheme system, and have the common swank code call into the system specific implementation of the interface.
i don't think it would be harder.
The swank protocol is the primary interface that each Scheme/Lisp system must implement. So I'm not sure how much can be gained by a different interface. That's why I say it is hard (i.e. to come up with a lower-level interface that is different from swank, is powerful enough to implement swank, and allows for more code sharing between swank implementations).
this is how the official slime codebase is organized, and there are major chunks of code that are shared (e.g. the entire inspector). and this kind of separation (common stuff + one file for each CL backend) is also easier to understand than a code full of cond-expand (IMHO).
I totally agree, given the volume of different code (which will be substantial, i.e. in the high hundreds of lines of code if not more).
Marc