[slime-devel] Refactoring, take two

Ahoy, I'm having another crack at backend refactoring. This time I'm going "by the book" and doing it incrementally on CVS HEAD. The plan is to move to James's plan [1], roughly: swank.lisp: shared, portable code swank-backend.lisp: defines the interface to non-portable code swank-{cmucl,...}.lisp: implements the interface from swank-backend.lisp Ultimately each file will be a different package, but for now all files are in the SWANK package. The advantage is that nothing breaks by default - some things are now working via swank-backend.lisp, but the rest (not refactored yet) is just like before and still works. The most significant refactoring so far is the compiler-note reportage: now each backend detects a compiler note in whatever non-portable way is appropriate, then resignals it as a `swank:compiler-condition' which is handled in swank.lisp. So all the notes-database business is shared now. I also switched to using generic functions to define callbacks and methods to implement them. This seems like a neat fit compared with my ugly macro hacks from last time. Still hacking, so things may be a little unstable. Currently NB: I updated the FAIRLY-STABLE tag incase I'm breaking things. Currently HEAD should be okay on all platforms AFAIK. NB2: SLIME's surprisingly nice for doing major surgery on itself, at least when not breaking the debugger and repl :-) NB3: Thanks James, Dan, and Brian for helping me with OpenMCL access! Cheers, Luke 1: http://jamesjb.com/slime/slime-impl.txt
participants (1)
-
Luke Gorrie