>>>> "Sam" == Sam Steingold
<sds(a)goems.com> writes:
Sam> [I am sending this message to both RMS and XEMACS-BETA.]
Sam> Now that the compiled formats of Emacs and XEmacs are officially
Sam> incompatible, i.e., one cannot load files compiled with the other, we
Sam> have a problem with sharing site-lisp directories.
Sam> Some packages, such as SCWM (Scheme-Configurable Window Manager), are
Sam> distributed with elisp files (I am the maintainer of scwm.el). On sites
Sam> with both emacsen installed, scwm.el now has to be put in 2 different
Sam> places (or left uncompiled - which is not a viable option for reasons of
Sam> efficiency). It would be nice if both emacsen refused to load files
Sam> compiled with the other emacs - that would solve some problems. It
Sam> would be even nicer if they used different compiled suffixes (e.g., .elx
Sam> instead of .elc), which would permit sharing site-lisp directories once
Sam> again.
Sam> This is a very real problem for add-on package maintainers, and I hope
Sam> you will recognize it as such and address it.
I think it is still possible to create .elc files that will work with
both branches of modern Emacsen. One way is to keep around an old
Emacs, for example XEmacs 19.14 should produce .elc files that should
work on modern Emacsen as well.
Also, one can set the variable byte-compile-emacs19-compatibility
before byte-compiling.
Here is what I do to produce .elc files that work with XEmacs 21.2 and
GNU Emacs (this should work with any version of XEmacs or FSF Emacs as
the byte-compiling Emacs). Not thoroughly tested.
(martin@lasker) ~/x/xemacs-mrb/Martin-lisp $ cat GNUmakefile
SOURCES := $(wildcard *.el)
ELCS := $(SOURCES:%.el=%.elc)
all : $(ELCS)
XEMACS := xemacs
SHELL=/bin/sh
%.elc : %.el
EMACSLOADPATH=.:../from-the-Net ${XEMACS} -batch -no-site-file -eval '(setq
byte-compile-emacs19-compatibility t)' -f batch-byte-compile $<