Rewrite Antinews for Emacs 28
* doc/lispref/anti.texi (Antinews): * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 28. * doc/lispref/elisp.texi (Top): * doc/emacs/emacs.texi (Top): Update menu accordingly.
This commit is contained in:
parent
3a9b881603
commit
20eb3644ba
4 changed files with 211 additions and 236 deletions
|
@ -4,156 +4,138 @@
|
|||
@c See file emacs.texi for copying conditions.
|
||||
|
||||
@node Antinews
|
||||
@appendix Emacs 26 Antinews
|
||||
@appendix Emacs 27 Antinews
|
||||
@c Update the emacs.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 26.3. We hope you will enjoy the
|
||||
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
|
||||
Emacs no longer uses @acronym{GMP}, the GNU Multiple Precision
|
||||
library, and doesn't support Lisp integers greater than
|
||||
@code{most-positive-fixnum} or smaller than
|
||||
@code{most-negative-fixnum}. We now have only one kind of a Lisp
|
||||
integer. This simplifies many Lisp programs that use integers, and
|
||||
makes integer calculations always fast. If you want larger values,
|
||||
use Lisp floats, as Emacs has done since day one.
|
||||
Emacs can no longer be built with support of native compilation of
|
||||
Lisp programs. This means Emacs builds much faster, and the problems
|
||||
that came with native compilation: the need to have GCC and Binutils
|
||||
installed, the complications of managing your @file{eln-cache}
|
||||
directories---all of that is now future history. The simplicity and
|
||||
elegance of the Emacs byte-compiled code is now restored in all of its
|
||||
pristine beauty.
|
||||
|
||||
@item
|
||||
Emacs no longer supports HarfBuzz as the engine for shaping complex
|
||||
text. As you move back in time, we will gradually shed off all traces
|
||||
of support for complex text shaping, and this is one step in that
|
||||
direction.
|
||||
Emacs no longer builds by default with Cairo, even if it's present.
|
||||
The warnings about not using HarfBuzz are also gone, in preparation
|
||||
for complete removal of HarfBuzz support in previous Emacs versions.
|
||||
Fancy text shaping and display is becoming less important as you move
|
||||
back in time. The @code{ftx} font backend is again part of Emacs, for
|
||||
the same reasons.
|
||||
|
||||
@item
|
||||
We have removed support for building with the Jansson library, and
|
||||
consequently the native support for JSON parsing is gone. The
|
||||
importance of JSON decreases as we go back in time, so for now using
|
||||
the Lisp code for handling it should be good enough; in one of the
|
||||
past Emacs versions, we intend to remove even that, as useless bloat.
|
||||
|
||||
The library for supporting JSONRPC applications was removed for the
|
||||
same reason.
|
||||
As Motif becomes more and more important with moving farther into the
|
||||
past, we've reinstated the code which supports Motif in Emacs.
|
||||
|
||||
@item
|
||||
The ``portable dumper'' feature is gone. We are once again using the
|
||||
field-proven ``unexec'' way of dumping Emacs. With that, the hope for
|
||||
being able to re-dump your customized Emacs session is also gone: why
|
||||
would anyone want to record their random customization experiments on
|
||||
disk, and restore them the next time they start Emacs? And true
|
||||
Emacsers don't restart their Emacs sessions anyway.
|
||||
Emacs once again supports versions 5.3 and older OpenBSD system, which
|
||||
will be needed as you move back in time.
|
||||
|
||||
@item
|
||||
We dropped the support for @acronym{XDG}-style configuration
|
||||
directories and the @env{XDG_CONFIG_HOME} environment variable.
|
||||
There's once again only one place where Emacs looks for its init
|
||||
files: the @file{~/.emacs.d} directory, with the @file{~/.emacs} file
|
||||
as fallback. We think this will go a long way towards preventing
|
||||
confusion among users who for some reason have @env{XDG_CONFIG_HOME}
|
||||
set, thus risking to have their init files randomly spread between two
|
||||
places. In one of the past Emacs versions, we intend to further
|
||||
simplify this, removing the @file{~/.emacs.d} place and leaving only
|
||||
@file{~/.emacs}; stay tuned.
|
||||
|
||||
For similar reasons, we've removed the ``early init'' file. You can
|
||||
now again use all the tricks you want to initialize variables like
|
||||
@code{package-user-dir} and @code{package-load-list} just in time for
|
||||
the packages to load.
|
||||
|
||||
@command{emacsclient} no longer supports @acronym{XDG}-style directory
|
||||
trees, either.
|
||||
We've dropped support for Secure Computing filter on GNU/Linux. The
|
||||
past world is much more secure than the present, so the complexities
|
||||
related with this stuff, which can only be explained by severe
|
||||
paranoia, are no longer justified.
|
||||
|
||||
@item
|
||||
TLS connections are back to their lenient security settings. We
|
||||
decided that too tight security settings are an annoyance for users,
|
||||
and make little sense considering the world-wide tendency to have
|
||||
fewer and fewer network security problems as we move back in time
|
||||
(those issues will be completely gone when networks disappear in some
|
||||
distant past).
|
||||
Emacs reverted back to supporting Unicode 13.x, since the following
|
||||
versions of the standards are not yet published where you are going.
|
||||
The @samp{emoji} script and the support for displaying Emoji sequences
|
||||
were removed for the same reasons: no one will produce them in the
|
||||
past.
|
||||
|
||||
@item
|
||||
The @code{server-after-make-frame-hook} hook was deleted, in
|
||||
preparation for removing the entire daemon business in some past Emacs
|
||||
version. You will be glad to learn that setting up the GUI
|
||||
customizations of your sessions is now once again as easy as it ever
|
||||
was, with just the @code{after-make-frame-functions} to use.
|
||||
Mode-specific commands and the @kbd{M-S-x} command that invokes them
|
||||
were removed. As you move back in time, the command set in Emacs
|
||||
becomes smaller, so any such filtering of applicable commands just
|
||||
gets in the way.
|
||||
|
||||
@item
|
||||
The @code{flex} completion style was removed. We feel that it
|
||||
unnecessarily complicates the Emacs user experience, and therefore
|
||||
will continue to remove other tricky completion styles, until in some
|
||||
past Emacs version we get to a single original style Emacs pioneered
|
||||
decades ago. Long live simplicity; down with complications!
|
||||
We have removed the system for displaying documentation of groups of
|
||||
related functions, the @kbd{shortdoc-display-group} command to go with
|
||||
it, and the corresponding ``See also'' button in the @file{*Help*}
|
||||
buffer. That should make searching for certain functions simpler:
|
||||
just use the venerable @samp{apropos} commands.
|
||||
|
||||
@item
|
||||
The optional display of the fill-column indicator is no longer
|
||||
supported. With the display sizes becoming smaller and smaller as you
|
||||
move back in time, we feel that the display itself will always show
|
||||
you where to fill or wrap your text, and do this much more easily and
|
||||
reliably than any such display indicator.
|
||||
The @code{context-menu-mode} was removed, and with it the context
|
||||
menus popped by pressing the right mouse button. This is one small
|
||||
step towards freeing Emacs (and eventually, the whole world of
|
||||
computing) from the tyranny of the GUI pointing devices in general,
|
||||
and moving back to the simplicity of text-mode user interfaces.
|
||||
Down with mice and other rodents!
|
||||
|
||||
@item
|
||||
We removed the features that made visiting large files easier. Thus,
|
||||
Emacs will no longer suggest visiting a large file literally, nor
|
||||
offer the @code{so-long} mode to deal with overly-long lines. We
|
||||
decided that this simplification is worthwhile, given that the general
|
||||
tendency of having very large files is becoming a rarity as we move
|
||||
back in time.
|
||||
The commands @kbd{C-x 4 4} and @kbd{C-x 5 5} for displaying the
|
||||
results in a new window/frame re gone. We are quite certain that
|
||||
creating a new window/frame before running a command is much simpler,
|
||||
and doesn't require a complication of a new prefix.
|
||||
|
||||
@item
|
||||
We have removed the feature that displayed echo-area messages without
|
||||
hiding content of the active minibuffer. This should prevent user
|
||||
confusion from having two unrelated pieces of text staring at them,
|
||||
with no clear separation between them. Users with good memories (and
|
||||
Emacs users are all expected to be of that kind) will have no trouble
|
||||
keeping the minibuffer text in their minds, and typing the responses
|
||||
without actually seeing the prompts.
|
||||
The behavior of active minibuffers when switching frames is now the
|
||||
perfect mess it should be: sometimes the minibuffer moves to the new
|
||||
selected frame, sometimes it doesn't, and sometimes you get an error.
|
||||
This makes Emacs usage much more fun, as you get to guess the result,
|
||||
instead of having it boringly consistent.
|
||||
|
||||
@item
|
||||
Horizontal scrolling using the mouse or touchpad has been removed. In
|
||||
the past, wide monitors will become less popular, so horizontal
|
||||
scrolling will no longer be needed. Removal of the mouse support for
|
||||
horizontal scrolling is the first step towards its complete removal in
|
||||
prior Emacs versions.
|
||||
Compact mode-line display mode has been removed. The items displayed
|
||||
on the mode line are now always in the same place, and if there's not
|
||||
enough space for them, they are not displayed at all, instead of being
|
||||
confusingly displayed in a different position. You no longer need to
|
||||
think twice where to find a particular mode-line element on display.
|
||||
|
||||
@item
|
||||
The @code{main-thread} variable and @code{list-threads} were removed,
|
||||
and @code{thread-join} no longer returns the result of the finished
|
||||
thread. We intend to remove the support for Lisp threads in some past
|
||||
Emacs version, so we continue removing the associated complexities and
|
||||
features as we go back in time.
|
||||
Many commands and options related to tab bars were removed, including
|
||||
(but not limited to) frame-specific appearance of tab bars, the
|
||||
@code{tab-bar-format} option, the @kbd{C-x t n}, @kbd{C-x t N},
|
||||
@kbd{C-x t M}, and @kbd{C-x t G} commands, and many mouse gestures on
|
||||
the tab bar. We are going to delete the tab bar support from Emacs in
|
||||
one of the past versions, and this is a step in that direction.
|
||||
|
||||
@item
|
||||
Tab bar and window tab-lines were removed. This should make the Emacs
|
||||
display simpler and less cluttered, and help those users who disable
|
||||
menu bar and tool bar in their GUI sessions. The fashion to provide
|
||||
tabs in every GUI application out there is gaining less and less
|
||||
popularity as we move back in time, and will completely disappear at
|
||||
some past point; removing the tabs from Emacs is the step in that
|
||||
direction.
|
||||
The ``transient'' input methods have been removed; use @kbd{C-\} to
|
||||
turn input methods on and off instead. This is in preparation for
|
||||
complete removal of input methods from Emacs in version 19, and
|
||||
consistent with the fact that the number of input methods we support
|
||||
becomes smaller as you move back in time.
|
||||
|
||||
@item
|
||||
Displaying line numbers for a buffer is only possibly using add-on
|
||||
features, such as @code{linum-mode}, which can only display the
|
||||
numbers in the display margins. Line-number display using these
|
||||
features is also slow, as we firmly believe such a feature is
|
||||
un-Emacsy and should not have been included in Emacs to begin with.
|
||||
Consequently, @code{display-line-numbers-mode} was removed.
|
||||
We disabled @code{show-paren-mode} by default, since we think the
|
||||
venerable @code{blink-matching-paren} feature is more than enough, and
|
||||
better fits the simplicity of past Emacs versions. It will definitely
|
||||
be better when colors are removed from Emacs in the distant past.
|
||||
|
||||
For the same reason, sub-groups in interactive regexp searches are no
|
||||
longer highlighted in distinct colors.
|
||||
|
||||
@item
|
||||
On our permanent quest for simplifying Emacs, we've removed the
|
||||
support for changing the font size by turning the mouse wheel.
|
||||
On our permanent quest for simplifying Emacs, we've removed the Ispell
|
||||
command @code{ispell-comment-or-string-at-point}; the old-time friend
|
||||
@code{ispell-comments-and-strings} should suffice.
|
||||
|
||||
@item
|
||||
Several commands, deemed to be unnecessary complications, have been
|
||||
removed. Examples include @code{make-empty-file},
|
||||
@code{font-lock-refontify}, @code{xref-find-definitions-at-mouse},
|
||||
@code{make-frame-on-monitor}, and @code{diff-buffers}.
|
||||
Many Gnus commands and options were deemed to unnecessarily complicate
|
||||
the use of Gnus (which is too complex to begin with), and thus were
|
||||
removed. This includes @code{gnus-topic-display-predicate},
|
||||
@code{gnus-process-mark-toggle}, @code{gnus-registry-register-all},
|
||||
@code{gnus-paging-select-next}, and many others. The @code{nnselect}
|
||||
backend was deleted for the same reason.
|
||||
|
||||
@item
|
||||
The @file{project.el} package have been redesigned to remove many
|
||||
unnecessary features, so that just the bare essentials remain. We
|
||||
plan on removing this package from Emacs in a previous version, but
|
||||
decided to begin with removing some extra features first.
|
||||
|
||||
@item
|
||||
To keep up with decreasing computer memory capacity and disk space, many
|
||||
other functions and files have been eliminated in Emacs 26.3.
|
||||
other functions and files have been eliminated in Emacs 27.2.
|
||||
@end itemize
|
||||
|
|
|
@ -219,7 +219,7 @@ Appendices
|
|||
* GNU Free Documentation License:: The license for this documentation.
|
||||
* Emacs Invocation:: Hairy startup options.
|
||||
* X Resources:: X resources for customizing Emacs.
|
||||
* Antinews:: Information about Emacs version 26.
|
||||
* Antinews:: Information about Emacs version 27.
|
||||
* Mac OS / GNUstep:: Using Emacs under macOS and GNUstep.
|
||||
* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
|
||||
* Manifesto:: What's GNU? Gnu's Not Unix!
|
||||
|
|
|
@ -6,186 +6,179 @@
|
|||
@c This node must have no pointers.
|
||||
|
||||
@node Antinews
|
||||
@appendix Emacs 26 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 26.3. We hope you will enjoy the greater
|
||||
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
|
||||
Lisp objects are again implemented on the C level as integer types,
|
||||
not as pointers. This might be a small step for Emacs Lisp users, but
|
||||
it's a giant leap for the Emacs developers who work on the C level,
|
||||
since it is now again easy to print Lisp object in the debugger in the
|
||||
decimal format, which is so much easier for debugging. It also makes
|
||||
calling Emacs functions from the debugger easier, and allows us to
|
||||
freely mix integers and Lisp objects in the C code.
|
||||
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 test suite was removed from the distribution tarball. We believe
|
||||
that tests need seldom if ever be run, certainly not by the end
|
||||
users. Removing the tests from the tarball makes it much smaller,
|
||||
which is important since disk space becomes more and more at premium
|
||||
as you move back in time.
|
||||
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
|
||||
Dynamic module support is disabled by default. This both makes Emacs
|
||||
smaller (a worthy goal by itself), and removes the complications and
|
||||
additional complexity related with installing module support files and
|
||||
letting random shared objects an opportunity to be loaded into Emacs
|
||||
and mess with it.
|
||||
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
|
||||
You now must activate any installed packages only after loading your
|
||||
init files. That requires an explicit call to
|
||||
@code{package-initialize} in your init file, which is a Good Thing, as
|
||||
it makes you think seriously where and indeed whether you'd like your
|
||||
packages to become available to your sessions. Simplicity should
|
||||
tramp convenience!
|
||||
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 native rotation and resizing of images. You will have
|
||||
to build Emacs with ImageMagick if you want to resize or rotate images
|
||||
inside Emacs. We don't expect anyone to miss that.
|
||||
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
|
||||
We've re-enabled color fonts usage by the XFT font back-end. We
|
||||
consider the availability of these fonts more important than a random
|
||||
crash here and there, especially since the use of these fonts for
|
||||
displaying Emoji will become less and less important as we travel back
|
||||
in time, and will completely disappear in some past Emacs version.
|
||||
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 function @code{network-interface-list} can now return only IPv4
|
||||
addresses. We consider the complexity introduced by IPv6 to be too
|
||||
much to be justified, and on the other hand its removal is the step in
|
||||
the right direction, given that IPv6 is expected to be completely
|
||||
removed as we move back in time.
|
||||
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 limit on repetitions in regular expressions was reduced to
|
||||
@ifnottex
|
||||
2**15 @minus{} 1.
|
||||
@end ifnottex
|
||||
@tex
|
||||
@math{2^{15}-1}.
|
||||
@end tex
|
||||
We envision that regular expressions will become more and more simple
|
||||
as we move towards the distant past.
|
||||
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
|
||||
searching programs on remote hosts in @code{executable-find}. If you
|
||||
really need this feature (why would you?), you can always write your
|
||||
own shell script and run it on the remote.
|
||||
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
|
||||
The @code{:extend} face attribute is no longer available; all faces
|
||||
have their background color extended by default past end of line.
|
||||
This should significantly simplify face management and remove
|
||||
unnecessary code bloat, as well as make faces significantly simpler to
|
||||
understand and use.
|
||||
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
|
||||
The predicates @code{display-blink-cursor-p} and
|
||||
@code{display-symbol-keys-p} were deleted. They are rarely if ever
|
||||
needed, and can easily be substituted by appropriate calls to old and
|
||||
proven APIs like @code{display-graphic-p}. As an additional bonus,
|
||||
writing Lisp programs that depend on this functionality will make sure
|
||||
the programmer understands better what exactly is the required
|
||||
features of the display terminal.
|
||||
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
|
||||
Relative directories in the value of the @env{HOME} environment
|
||||
variable are once again interpreted relative to the
|
||||
@code{default-directory} of the current buffer. This is much simpler,
|
||||
and also allows @env{HOME} to resolve to a different place in
|
||||
different buffers, which allows some interesting applications.
|
||||
|
||||
For the same reasons, @code{file-name-absolute-p} now again considers
|
||||
@file{~foo} an absolute file name, even if there's no known user
|
||||
@samp{foo}. This means a Lisp program which uses such file names will
|
||||
always work the same on any system, regardless of its known users.
|
||||
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
|
||||
File-related primitives like @code{file-attributes},
|
||||
@code{file-modes}, @code{file-newer-than-file-p}, and some others once
|
||||
again return @code{nil} when the underlying low-level APIs fail,
|
||||
instead of signaling an error. We decided that functions which signal
|
||||
errors require more complex code from Lisp programs which use them,
|
||||
and found this complexity unjustified when returning @code{nil} will
|
||||
do.
|
||||
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
|
||||
Similarly, old-style backquotes no longer signal errors; they generate
|
||||
warnings instead. You can remove error handling from programs that
|
||||
use backquotes.
|
||||
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
|
||||
Formatting floating-point numbers has been sped up by letting the
|
||||
underlying implementation produce unpredictable values, instead of
|
||||
signaling errors when the number is too large to format correctly. We
|
||||
believe the Emacs Lisp programmers should always know what they are
|
||||
doing when they deal with floating-point values.
|
||||
The possibility of having links to man pages in doc strings has been
|
||||
removed. Use plain text instead, if you need such references.
|
||||
|
||||
@item
|
||||
The function @code{read-char-from-minibuffer} was deleted. We decided
|
||||
that @code{read-char} should be enough for any Lisp program that needs
|
||||
to ask the user for a single-character input, in recognition of the
|
||||
fact that nothing makes Emacs Lisp hackers rejoice more than the need
|
||||
to sit down and write yet another interactive question-and-answer
|
||||
function, and make it optimal for each specific case. Consequently,
|
||||
no history is provided for such responses (why would someone want
|
||||
history of single-key strokes, anyway?).
|
||||
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
|
||||
The function @code{ngettext} was deleted. Non-English languages will
|
||||
become less and less widespread, let alone useful, as you move back in
|
||||
time, so we took this small step in that direction, and simplified
|
||||
Emacs as a nice bonus.
|
||||
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
|
||||
Focus-change notifications on text-mode frames are no longer
|
||||
recognized or supported. You can now safely disregard the possibility
|
||||
of receiving such notifications on TTY frames. This is one small step
|
||||
on the long road of removing all non-character input events Emacs
|
||||
supports on TTY frames.
|
||||
The ability of compiling symlinked @file{*.el} files, which is really
|
||||
gross: copy the files instead.
|
||||
|
||||
@item
|
||||
Face specifications in @code{face-remapping-alist} now have to be
|
||||
buffer-specific, without any differences between windows showing the
|
||||
same buffers. This allowed us to remove a lot of unneeded code bloat
|
||||
from Emacs, and make the face handling much simpler.
|
||||
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
|
||||
The @samp{%o} and @samp{%x} formats now always produce unsigned
|
||||
values, as you'd expect. This allows you to reveal the underlying
|
||||
machine representation, which is different on each architecture,
|
||||
something we consider a valuable feature.
|
||||
We deleted several features of the @code{pcase} macro, in accordance
|
||||
with our general plane to remove @code{pcase} from Emacs:
|
||||
|
||||
@itemize @minus
|
||||
@item
|
||||
The @code{cl-type} pattern.
|
||||
|
||||
@item
|
||||
We no longer highlight in @code{font-lock-warning-face} symbols with
|
||||
confusable quote characters, such as U+2018. Detecting them
|
||||
needed non-trivial amount of code, and we firmly believe that Lisp
|
||||
programmers always know what they are doing, and don't need to be
|
||||
annoyed with typefaces that stand out and distract.
|
||||
the @code{pcase-setq} macro.
|
||||
|
||||
@item
|
||||
The function @code{file-system-info} was dropped on Posix platforms,
|
||||
since you can always invoke @command{df} instead and parse its
|
||||
output.
|
||||
The @code{pcase-compile-patterns} function.
|
||||
@end itemize
|
||||
|
||||
@item
|
||||
The functions that implement the @samp{base64url} encoding were
|
||||
removed, as they can always be emulated by suitable tweaking of the
|
||||
normal base-64 encoding. No need to bloat Emacs and force Lisp
|
||||
programmers learn more interfaces on this account.
|
||||
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.
|
||||
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
|
||||
|
|
|
@ -234,7 +234,7 @@ To view this manual in other formats, click
|
|||
|
||||
Appendices
|
||||
|
||||
* Antinews:: Info for users downgrading to Emacs 26.
|
||||
* Antinews:: Info for users downgrading to Emacs 27.
|
||||
* GNU Free Documentation License:: The license for this documentation.
|
||||
* GPL:: Conditions for copying and changing GNU Emacs.
|
||||
* Tips:: Advice and coding conventions for Emacs Lisp.
|
||||
|
|
Loading…
Add table
Reference in a new issue