Next: GNU Free Documentation License, Previous: Preparing Lisp code for distribution, Up: Emacs Lisp [Contents][Index]
For those users who live backwards in time, here is information about downgrading to Emacs version 27.2. We hope you will enjoy the greater simplicity that results from the absence of many Emacs 28.1 features.
lexical-binding
local variable now heeds the
value of enable-local-variables
: if it’s nil
, the
lexical-binding
cookie is ignored. We are working hard on
removing the lexical-binding support in some past Emacs version, and
this small step advances us back to that change.
load-dangerous-libraries
variable is not obsolete, as it
must be used to allow loading Lisp compiled by XEmacs, which will
become more and more important as you move back in time.
interactive
is not
supported, and every command is deemed applicable to any major mode.
We believe this makes the life of Lisp programmers much simpler, as
there’s now no need to tag commands with the modes where they make
sense.
global-minor-modes
and
local-minor-modes
. If your Lisp program needs to determine
whether some minor mode is in effect, it will have to test explicitly
for every mode. We don’t expect anyone to miss those fancy variables.
process-prioritize-lower-fds
, have been removed. Moving back
in time means fewer and fewer programs can produce such high-rate
output, so this features becomes just useless crud.
ibm256
, ibm273
, and others—variants of the EBCDIC
encoding tailored for some Japanese and European locales. You won’t
need those where you are going.
condition-case
via the
:success
keyword. If you really need this feature (why would
you?), you can always write some simple Lisp that has the same effect.
make_unibyte_string
module API
was removed for the same reason.
print-integers-as-characters
option. Recognizing characters by
their decimal codes is a basic requirement for Emacs Lisp programmers,
and with the expected decrease in use of Unicode characters, this will
be soon limited to ASCII only: surely something you all can master!
directory-files
function has been removed. Extracting the first n members from
the full list is trivial, so this is a significant simplification for
an insignificant cost.
:coding
argument; use
set-process-coding-system
or bind
coding-system-for-read/write
instead: again, a significant
reduction in Emacs complexity for little or no cost.
define-derived-mode
and
define-minor-mode
the code which allowed using the
:interactive
argument. The possibility of marking a mode
non-interactive makes very little sense,
pcase
macro, in accordance
with our general plan to remove pcase
from Emacs:
cl-type
pattern.
pcase-setq
macro.
pcase-compile-patterns
function.
&interpose
,
&error
, and &name
. The long-term plane is for Emacs to
drop Edebug entirely, leaving only the trusted Lisp debugger, and we
continue working according to that plan.
object-intervals
was dropped, as a Lisp program
can easily collect the intervals of a buffer or a string by iterating
through them one by one.
require-theme
function is an unnecessary
complication, so we deleted it. Lisp programs can easily search along
custom-theme-load-path
instead.
length<
, length>
, and
length=
were removed, as using length
followed by a
comparison should be good enough for everyone, especially considering
that the typical length of a list keeps going down as you move back
through time.
current-minibuffer-command
is no longer available,
as we found little justification for keeping it.
Next: GNU Free Documentation License, Previous: Preparing Lisp code for distribution, Up: Emacs Lisp [Contents][Index]