184 lines
6.7 KiB
Text
184 lines
6.7 KiB
Text
@c -*-texinfo-*-
|
|
@c This is part of the GNU Emacs Lisp Reference Manual.
|
|
@c Copyright (C) 1999, 2002--2022 Free Software Foundation, Inc.
|
|
@c See the file elisp.texi for copying conditions.
|
|
|
|
@c This node must have no pointers.
|
|
|
|
@node Antinews
|
|
@appendix Emacs 27 Antinews
|
|
@c Update the elisp.texi Antinews menu entry with the above version number.
|
|
|
|
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 @w{Emacs
|
|
@value{EMACSVER}} features.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
The annoying @code{lexical-binding} local variable now heeds the
|
|
value of @code{enable-local-variables}: if it's @code{nil}, the
|
|
@code{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.
|
|
|
|
@item
|
|
The @code{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.
|
|
|
|
@item
|
|
The optional @var{modes} argument of @code{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.
|
|
|
|
@item
|
|
Shorthands for Lisp symbols have been removed, which makes loading
|
|
Lisp files and handling Lisp symbols much simpler and more efficient.
|
|
This is important for decent performance on slower CPUs as you move
|
|
back in time.
|
|
|
|
@item
|
|
To reduce the amount of code in Emacs related to unimportant features,
|
|
we've removed the variables @code{global-minor-modes} and
|
|
@code{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.
|
|
|
|
@item
|
|
The default preference for servicing sub-processes that produce output
|
|
at a high rate, and the associated variable
|
|
@code{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.
|
|
|
|
@item
|
|
The encodings that are variants of EBCDIC were removed. This includes
|
|
@code{ibm256}, @code{ibm273}, and others---variants of the EBCDIC
|
|
encoding tailored for some Japanese and European locales. You won't
|
|
need those where you are going.
|
|
|
|
@item
|
|
The ``Bindat type expression'' description language has been removed,
|
|
as the existing data layout specifications are perfectly suited for
|
|
this job.
|
|
|
|
@item
|
|
To simplify code and reduce complexity, we removed the capability of
|
|
specifying the success handler in @code{condition-case} via the
|
|
@code{:success} keyword. If you really need this feature (why would
|
|
you?), you can always write some simple Lisp that has the same effect.
|
|
|
|
@item
|
|
Emacs modules can no longer provide interactive functions, or install
|
|
finalizers, nor open channels to existing pipe sub-processes. All
|
|
this is extra ballast, especially since we plan on removing modules in
|
|
some past Emacs version. The @code{make_unibyte_string} module API
|
|
was removed for the same reason.
|
|
|
|
@item
|
|
To keep Emacs clean and elegant, we've removed the
|
|
@code{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!
|
|
|
|
@item
|
|
The optional @var{count} argument of the @code{directory-files}
|
|
function has been removed. Extracting the first @var{n} members from
|
|
the full list is trivial, so this is a significant simplification for
|
|
an insignificant cost.
|
|
|
|
@item
|
|
Functions that create sub-processes and network connections no longer
|
|
accept the @code{:coding} argument; use
|
|
@code{set-process-coding-system} or bind
|
|
@code{coding-system-for-read/write} instead: again, a significant
|
|
reduction in Emacs complexity for little or no cost.
|
|
|
|
@item
|
|
We deleted from the macros @code{define-derived-mode} and
|
|
@code{define-minor-mode} the code which allowed using the
|
|
@code{:interactive} argument. The possibility of marking a mode
|
|
non-interactive makes very little sense,
|
|
|
|
@item
|
|
The possibility of having links to man pages in doc strings has been
|
|
removed. Use plain text instead, if you need such references.
|
|
|
|
@item
|
|
Temporary buffers are no longer exempt from running any buffer-related
|
|
hooks. Programs that don't want such hooks in some buffer can always
|
|
disable it locally, whereas making that simpler complicates Emacs for
|
|
no good reason.
|
|
|
|
@item
|
|
Several features that complicated the byte compiler have been removed:
|
|
|
|
@itemize @minus
|
|
@item
|
|
The checks for missing declarations of dynamic variables. This will
|
|
continue making less and less sense as we move away of lexical-binding
|
|
support.
|
|
|
|
@item
|
|
The ability of compiling symlinked @file{*.el} files, which is really
|
|
gross: copy the files instead.
|
|
|
|
@item
|
|
The warnings about too-wide doc strings---that is just a nuisance, as
|
|
the programmers should be trusted to know what they are doing.
|
|
@end itemize
|
|
|
|
|
|
@item
|
|
We deleted several features of the @code{pcase} macro, in accordance
|
|
with our general plan to remove @code{pcase} from Emacs:
|
|
|
|
@itemize @minus
|
|
@item
|
|
The @code{cl-type} pattern.
|
|
|
|
@item
|
|
the @code{pcase-setq} macro.
|
|
|
|
@item
|
|
The @code{pcase-compile-patterns} function.
|
|
@end itemize
|
|
|
|
@item
|
|
Some of the keywords used in Edebug specification lists were deemed to
|
|
be of little use, and were therefore removed: @code{&interpose},
|
|
@code{&error}, and @code{&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.
|
|
|
|
@item
|
|
The function @code{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.
|
|
|
|
@item
|
|
We decided that the @code{require-theme} function is an unnecessary
|
|
complication, so we deleted it. Lisp programs can easily search along
|
|
@code{custom-theme-load-path} instead.
|
|
|
|
@item
|
|
The convenience functions @code{length<}, @code{length>}, and
|
|
@code{length=} were removed, as using @code{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.
|
|
|
|
@item
|
|
The variable @code{current-minibuffer-command} is no longer available,
|
|
as we found little justification for keeping it.
|
|
|
|
@item
|
|
As part of the ongoing quest for simplicity, many other functions and
|
|
variables have been eliminated. Other functions and variables, that
|
|
were declared obsolete since Emacs 23, have been added back, in
|
|
preparation for releasing Emacs 23 in some distant past.
|
|
@end itemize
|