If the ChurchOfEmacs is too religious for you, try the secular variant – “Comparative Emacsology”.

Comparative Emacsology studies the incompatible differences in Emacs variants and how individuals and groups of developers strive to make their EmacsLisp code portable. One prime example for such differences is EmacsOverlays vs. XEmacsExtents. Most authors dealing with any non-trivial highlighting will have to write compatibility layers for such issues. Another example is keybindings: there are several ways to specify a key, some of them deprecated, some of them “official” since they are part of the EmacsManual, and then there are various compatibility notations.

Truly a field where big and important problems await study and remedy.

Some of the things we already looked at:

Some notes in table format. If you a lot to add, remove the row from the list and put the issue on a separate page.

bool-vector bit-vector
integers characters Emacs uses plain integers: (eq ?A 65) ⇒ t
derived-mode-p Use the one in Emacs’ subr.el and rename it to fit your package’s namespace.
char-valid-p characterp
line-number-at-pos line-number
balance-windows balance-windows Doesn’t balance vertical windows in XEmacs.