In terms of functionality, what are the key points that presently distinguish XEmacs from GNU Emacs?

To account for the different release schedules the most recent development version of each Emacs flavor should be considered as the basis for comparison.

We should avoid arguments about historical/organizational/philosophical/... issues, so please only mention purely functional/technical differences.

  • 1
    XEmacs is effectively dead (the last stable release was in 2009), so it's pretty much irrelevant. Almost all of its "special" features have been incorporated into GNU Emacs (I don't know enough specifics to answer definitively).
    – shosti
    Commented Sep 27, 2014 at 22:11
  • 4
    @shosti: The question is not irrelevant wrt features that exist in XEmacs but do not exist in GNU Emacs - however few there may be. Or even for features that exist but might have a better design or implementation in XEmacs. Whether or not GNU Emacs would ever adopt such things is a separate question. But this question is not irrelevant, especially for the future development of GNU Emacs. (It might be irrelevant for someone just wanting to choose between the two, as a user.)
    – Drew
    Commented Sep 27, 2014 at 22:15

3 Answers 3


As far as I can tell, there's mainly one feature that's been present in XEmacs for a very long time and that's still missing from GNU Emacs: dynamically loading modules written in C, or FFI

While this is regularly discussed on the emacs-devel mailing list, and there are no longer any objection to its implementation from the current maintainer, it's still a work in progress.

As of this writing, the integration of some additional features is actively postponed until such a thing as a proper FFI exists (for example, json and yaml bindings), so one can reasonably expect that this last missing feature should be implemented.

Effectively, there are signs that code for this feature would now be welcome in the code base for Emacs 25 as long as they are disabled by default.


Since Emacs is extensible, any feature that's missing in Emacs can be added by suitable ELisp packages. The important differences are internal:

  • XEmacs uses proper opaque types for characters, events, keymaps etc. where Emacs uses integers and lists;
  • XEmacs has extents as a unifying abstraction where Emacs has text properties and overlays.

Since XEmacs is mostly unmaintained nowadays, it is well worth working around the minor deficiencies in Emacs' type system and use the maintained version.


Xah Lee wrote in 2007 about XEmacs packages he felt were more mature. These days GNU Emacs has package.el so it's hard to find packages that are more polished on XEmacs.

The XEmacs website also has a page that documents differences.

XEmacs does not support user-defined reader macros, but it does support the additional reader macros #+ and #-.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.