Helmut Eller wrote:
[...]
The swank code is recompiled if the one of the .lisp source files is newer than the corresponding fasl file and Emacs asks if he should recompile slime.el if an old slime.elc lies around. But we just abort when the Lisp and ELisp versions are out sync. Not sure if a more automatic mechanism is worth the trouble.
On the swank side, I suppose you could signal a swank-files-too-old condition, or something, which the user could then handle appropriately, rather than just dying completely, since the current method requires that one touch one of the lisp files and restart the server, etc... On the emacs side, one could do clever things by reloading slime.el if there is a protocol mismatch.
e.g. (lexical-let ((tries 0)) (defun slime-check-for-protocol-mismatch (lisp-version) (while (and (< (incf tries 2)) (version-mismatch)) (load-file "slime.el"))))
or something.