For those users who live backwards in time, here is information about downgrading to Emacs version 28.2. We hope you will enjoy the greater simplicity that results from the absence of many Emacs 29.1 features.
substitute-command-keys. One prominent example is
format-promptand all its many callers. This makes the strings they produce much more predictable, returning to you, the Lisp programmer, control on which punctuation characters will appear in the text presented to the users. For similar reasons, the
substitute-quotesfunction was deleted.
buffer-modified-pfunction again reliably returns either
t, not any other confusing values.
compiled-function-p. Lisp programs are expected to test explicitly for the relevant types of function objects: built-in, byte-compiled, and natively-compiled. For the same reasons we deleted the functions
file-attribute-file-identifier, and quite a few others. We don’t expect anyone to miss those fancy functions.
x-show-tipcan no longer be specified by Lisp programs; it is hard-coded in the function. This will lead to a simpler, easier maintained code, and no one should want to control the timeout after which the tip pops down.
setoptwas deleted; use
customize-variableinstead, or invoke the
:setfunction from Lisp.
lisp-directoryvariable, as the value can be easily deduced from other similar variables, like
source-directory, each one when it’s relevant.
add-display-text-property; use the generic
keymap-lookup, and some others were deleted. We have found the traditional
key-bindingmore than enough, and their minor inconsistencies in the syntax of keys they accept a source of endless fun in Emacs Lisp programming. Why make Emacs programming a dull place? For the same reasons we deleted
key-valid-p, since we consider the permissive nature of
kbdmore in the spirit of Emacs Lisp.
string-glyph-split, as we consider it inappropriate for Lisp programs to do display layout calculations, where these functions come in handy. Display is for the display engine, written in C, and should stay there!
xwidget-webkit-back-forward-list, were deleted as part of our continuing effort to gradually delete the entire Xwidget functionality in some previous release of Emacs.
:stderrproperty of a process in a
make-processcall once again forces the process’s connection to use pipes, not ptys, for all the standard streams — a considerable simplification of this complex interface.
Several features that complicated the byte compiler have been removed:
defcustomtypes, like double-quoting symbols in
with-buffer-unmodified-if-unchangedwas deleted. Lisp programs that need to leave the buffer unmodified in these cases can always compare the text before and after the modifications.
read-string-from-bufferwere removed, as we consider the fun of programming them anew every time an important part of the education of each Emacs Lisp developer.
readablepand the related variable
print-unreadable-function, since no one is supposed to want to print unreadable Lisp objects.
cursor-facetext property was dropped. We consider the rest of the faces adequate for supporting this functionality.
tooltip-showdropped support for optional face arguments
default-facethat allow fancy control of the face of the tip text and top frame colors. We decided that tooltips should all look the same, to prevent user confusion.