Nathan Froyd <froydnj <at> cs.rice.edu> writes:
I'm running XEmacs 21.4.15 on OS X 10.3.8. I just updated my Slime to the newest, shiniest CVS version (from 1.0 or so), only to find
out
that it won't work with my XEmacs. Near as I can tell, it's because my XEmacs isn't MULE-ized ({make,find}-coding-system do not exist)
and
Slime really wants MULE or some semblance thereof to operate. I assume then that Slime does not support non-MULE emacsen...is this a correct assumption?
The assumption is correct, but it's not much work to remove any dependency on those functions. It should suffice, to provide dummy functions for find-coding-system and check-coding-system which return true for 'binary, and maybe a (if (fboundp 'set-process-coding-system)) in slime-open-stream-to-lisp.
I can't try a non-mule version myself, because the Debian "nomule" versions still have find-coding-system. Also, if I configure CVS XEmacs with --disable-mule, I still get find-coding-system as a built-in function.
Helmut.
I ran exactly the same problem yesterday.
After some experimentation, I found that xemacs 21.4.17 (latest stable) also does not define find-coding-system. When I built 21.4.17 with mule enabled, something in the font system became confused, making that an unpleasant fix.
Xemacs 21.5.20 (beta) does define find-coding-system by default. To build on OS X, you need to specify --without-ldap to configure.
I decided to stick with 21.4, and hacked the suggested diffs into slime.el. I'm a novice lisp coder, and a total novice to SLIME coding, so please feel free to change as needed to conform to good coding and style standards!
I've tested with ACL & SBCL on OS X 10.3.8, and things started up and minimally worked without trouble.
James McIlree
diff -r1.478 slime.el 1491a1492,1507
(if (not (fboundp 'find-coding-system)) (defun find-coding-system (coding-system) (if (eq coding-system 'binary) coding-system nil)))
(if (not (fboundp 'check-coding-system)) (defun check-coding-system (coding-system) (if (eq coding-system 'binary) coding-system nil)))
(if (not (fboundp 'process-coding-system)) (defun process-coding-system (unused-and-ignored) '(binary . binary)))
2481,2483c2497,2500 < (set-process-coding-system stream < slime-net-coding-system < slime-net-coding-system) ---
(when (fboundp 'set-process-coding-system) (set-process-coding-system stream slime-net-coding-system slime-net-coding-system))