[slime-devel] Fix for missing find-coding-system

James McIlree ovrskeek at mac.com
Sun Apr 3 06:08:28 UTC 2005

> 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
 > (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)))
<     (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))

More information about the slime-devel mailing list