Commit c89f3ff3 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Rewrite Antinews for Emacs 26

* doc/lispref/anti.texi (Antinews): Rewrite for Emacs 26.
* doc/lispref/elisp.texi (Top): Update the top-level menu's
Antinews entry.
* doc/emacs/anti.texi (Antinews): Rewrite for Emacs 26.
* doc/emacs/emacs.texi (Top): Update the top-level menu's Antinews

* etc/NEWS: Rearrange some entries in a more reasonable order.
parent 2b91b841
......@@ -4,215 +4,167 @@
@c See file emacs.texi for copying conditions.
@node Antinews
@appendix Emacs 24 Antinews
@appendix Emacs 25 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 24.5. We hope you will enjoy the
greater simplicity that results from the absence of many Emacs
@value{EMACSVER} features.
about downgrading to Emacs version 25.2. We hope you will enjoy the
greater simplicity that results from the absence of many @w{Emacs
@value{EMACSVER}} features.
@itemize @bullet
Support for Cairo drawing has been removed. On GNU and Unix systems,
you now have only one drawing engine---the venerable X Window system.
No need to procrastinate on the dilemma whether you do or don't want
the new shiny Cairo thing. Hail, simplicity!
Emacs still works on SGI IRIX systems. If you live backwards in time,
this is actually a bonus, as IRIX systems will become more and more
popular as you move farther back in time.
Support for dynamically loaded modules has been removed. You get to
use only the trusted Emacs codebase, with no additions. Those
external modules written by some J.R. Hacker cannot be trusted anyway.
Good riddance!
We have greatly simplified the Emacs features which access the network
by removing the Network Security Manager. No more annoying prompts
about trusting this or that site or page---you asked for it, you get
it, no questions asked! You, the user, are now in charge of any
security issues related to sites whose certificates expired or didn't
exist in the first place. Giving the user the utmost freedom was and
always will be the most important goal of Emacs development. We keep
that goal even as we develop Emacs back in time.
We made the output of @kbd{C-h l} much simpler and easier to grasp by
removing the names of commands run by the recorded keystrokes. True
Emacs lovers know their bindings by heart anyway, so why waste
precious screen estate on that which is well known?
Selection- and clipboard-related commands and variables got their
historical names back. It's now the definitive
@code{x-select-enable-clipboard} again instead of the vague
@code{select-enable-clipboard}, and all those @code{gui-select-text},
@code{gui-get-primary-selection}, etc.@: got their @code{x-*} names
back. (What's a ``GUI'', anyway?) The only true window system with
selections is the X Window system, so we stopped pretending that other
platforms have anything similar to that. You now know when you invoke
a command that accesses X.
Passwords are no longer hidden when typed in @code{-batch} mode. It
was a misfeature to have it not shown in the first place: who can type
without seeing what they type? We couldn't convince the users of GUI
sessions to give up hiding the password, so we at least made it
visible in batch mode, which is something every veteran Emacs user
uses all the time. Stay tuned for un-hiding the password in GUI
sessions as well as we downgrade progressively to previous Emacs
The nuisance with Unicode characters popping up all over the place has
been amply dealt with. We've removed @kbd{C-x 8} shorthands for
characters such as , , , , , , and many others; as a nice
benefit, this removes many useless entries at the beginning of the
@kbd{C-h b} output. The @code{electric-quote-mode} has been deleted,
so there's only the one true quoting method now---using the
plain-@acronym{ASCII} quote characters. And if that's not enough, the
doc strings and other messages show text quoted @t{`like this'}
as they were written, instead of arbitrarily replacing them
with Unicode ``curved quote'' characters @t{‘like this’}. The
@code{text-quoting-style} variable becomes therefore unneeded and was
removed. As result, text produced by Emacs can be sent to those
venerable teletypes again, yeah!
For the same reasons, the character classes @code{[:alpha:]} and
@code{[:alnum:]} again match any word-constituent character, and
@code{[:graph:]} and @code{[:print:]} match every multibyte character.
Confusing use of Unicode character properties is gone.
I-search and query-replace no longer try to confuse you by using the
``character-folding'' magic. They will no longer find any characters
you didn't actually type, like find @kbd{} when you actually typed
@kbd{a}. Users who want to find some fancy character will have to
type it explicitly.
The @file{desktop.el} package no longer records window and frame
configuration, and doesn't attempt to restore them. You now have back
your freedom of re-arranging your windows and frames anew each time
you restore a session. This made the new backward-incompatible format
of the @file{.emacs.desktop} file unnecessary, so the format was
reverted back to what it was before Emacs 25. You can now again use
the desktop file with all the previous versions of Emacs.
We have reworked the Prettify Symbols mode to support only the default
@code{prettify-symbols-compose-predicate}. No need to consider
whether your major or minor mode needs its own prettifications; just
use what came with Emacs. We also removed the
@code{prettify-symbols-unprettify-at-point} option: once prettified,
always prettified! These changes make the Prettify Symbols mode quite
a lot simpler and easier to use.
Emacs no longer defaults to requiring the GnuTLS library when you
build it. Those who want the TLS functionality built-in will have to
explicitly request it at build time---or forever hold their peace. We
decided that having the TLS functionality doesn't justify annoying
users or package builders with error messages about libgnutls absence.
We also decided that if you do build with GnuTLS, we will allow
versions of the library older than 2.12.2, as that version will become
less and less available/popular as you move farther back in time.
Support for nifty new features of xterm, such as access to the X
selection and the clipboard, the ``bracketed paste mode'', and other
advanced capabilities has been removed. When you kill text in an
xterm Emacs session, that text is only saved in the Emacs kill ring,
without letting other applications have any way of accessing it. An
xterm is just a text terminal, nothing more, nothing less. There
should be no feature we support on xterm that isn't supported on bare
console terminals. For the same reasons, support for mouse-tracking
on xterm was removed. We will continue this line of simplifications
as we downgrade to previous versions of Emacs; stay tuned.
For similar reasons, we've reverted back to building our own version
of of @command{movemail} that retrieves POP3 mail as clear text via
insecure channels. As you move back in time, the availability of
secure alternatives to POP3 will diminish, and we are only keen to
support that. We've also removed the @option{--with-mailutils}
configure-time option, as it no longer makes sense for the observable
Various features in @file{package.el} have been simplified. The
``external'' package status is no longer available. A package present
on multiple archives will now be listed as many times as it is found:
we don't believe in concealing any information from the users. This
and other similar simplifications made
@code{package-menu-toggle-hiding} unnecessary, since there's nothing
to unhide now.
The @kbd{@key{UP}} and @kbd{@key{DOWN}} keys in the minibuffer have
been simplified to move by history items. No need to wonder whether
you have moved to the next/previous item or to another line within the
same item. Well-written commands shouldn't allow too long history
entries anyway; be sure to report any that do as bugs, so that we
could fix them in past versions of Emacs.
The VC mode was simplified by removing the support for ``push''
commands. Moving back in time means you will have less and less need
to use modern version control systems such as Git, Bazaar, and
Mercurial, so the necessity of using ``push'' commands will gradually
disappear. We removed it from Emacs in advance, so that you won't
need to un-learn it when this command disappears, as it should.
The support for full C/C++ expressions in macros has been removed from
Hide-Ifdef mode. It now supports only the basic literal macros. As
result, the user interface was simplified, and a number of useless
commands have been removed from Hide-Ifdef mode. Further
simplifications were made possible by removing support for some fancy
new preprocessor directives, such as @code{#if defined}, @code{#elif},
We have reverted to Etags for looking up definitions of functions,
variables, etc. Commands such as @kbd{M-.} use tags tables, as they
always have. This allowed the removal of the entire @file{xref.el}
package and its many metastases in the other Emacs packages and
commands, significantly simplifying those. No more complexities with
the various ``backends'' that provide incoherent behavior that is hard
to explain and remember; either the symbol is in TAGS or it isn't. No
more new user interfaces we never before saw in Emacs, either; if you
want the next definition for the symbol you typed, just invoke
@kbd{C-u M-.}---what could be simpler? As a nice side effect, you get
to use your beloved @code{tags-loop-continue} and @code{pop-tag-mark}
commands and their memorable bindings. The @file{package.el} package
has been removed for similar reasons.
We have removed support for @command{systemd} and similar services: we
no longer provide a user init file for enabling Emacs support via
those services, and we removed from the Emacs server the
socket-launching support important for Emacs client operation under
these services. Again, these services will lose popularity as you
move back in time, so the code supporting them will be just dead code,
bloating Emacs unnecessarily.
Reproducible builds of Emacs are no longer supported, as past
development will make that unnecessary.
The @option{--fg-daemon} is gone, leaving only @option{--daemon}. No
need to procrastinate on the dilemma whether you do or don't want the
new shiny ``headless Emacs'' thingy. Hail, simplicity!
As text terminals supporting true color will lose ground as you move
back in time, we've removed support for 24-bit colors on text
terminals. If you want colors on a text terminal, you should be fine
with just 8 of them. (Truth being told, we think text terminals
should be monochrome, but you will have to keep downgrading to older
Emacs versions to have that feature back.)
Emacs 25.2 no longer supports magic signatures of the form
@samp{#!/usr/bin/env @var{interpreter}} in scripts. Moving back in
time means you are getting closer to the ideal of the original Unix
design where all the interpreters lived in a single directory
@file{/bin}, so this fancy feature is simply becoming unnecessary
The double-buffering feature of Emacs display on X has been removed.
We decided that its complexity and a few random surprising
side-effects aren't justified by the gains, even though those gains
were hailed in some quarters. Yes, Emacs 25.2 will flicker in some
use cases, but we are sure Emacs users will be able to suck it, a they
have been doing for years. Since this feature is gone, we've also
removed the @code{inhibit-double-buffering} frame parameter, which is
now unnecessary.
Non-breaking hyphens and ASCII characters displayed instead of
unsupported quote characters are now again displayed using the
@code{escape-glyph} face. We think having a single face instead of 3
different ones will make Emacs customization a much simpler job for
users. For the same reason, we've removed the
@code{header-line-highlight} face, leaving just @code{highlight} for
any element of the Emacs display besides the mode line.
You can no longer disable attempts of recovery from fatal exceptions
such as C stack overflows and fatal signals. Since the recovery
included in Emacs is reliable enough, we decided there was no reason
to put your edits in danger of becoming lost when these situations
happen. The variables @code{'attempt-stack-overflow-recovery} and
@code{attempt-orderly-shutdown-on-fatal-signal} are therefore removed.
The @code{timer-list} command was removed, as we decided timers are
not user-level feature, and therefore users should not be allowed to
mess with them. Ask an Emacs Lisp guru near you for help if you have
a runaway timer in your session. (Of course, as you move back in
time, such runaway timers will become less and less frequent, and
actually timers might start shutting down automatically, as they
cannot cope with time reversal.)
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.
We have found the @option{--tramp} option of @command{emacsclient} too
risky and too complicated, so we removed it to simplify the client
code and its usage.
The @code{display-raw-bytes-as-hex} variable is gone, so raw bytes can
only be displayed as octal escapes. Emacs users should be able to
convert from octal to any other base in their sleep!
@code{(/ @var{n})} once again yields just @var{n}. Emacs Lisp is not
Common Lisp, so compatibility with CL just complicates Emacs here.
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.
The functions @code{filepos-to-bufferpos} and
@code{bufferpos-to-filepos} have been removed. Code that needs to
find a file position by a buffer position or vice versa should adapt
by reading the file with no conversions and counting bytes while
comparing text. How hard can that be?
On our permanent quest for simplifying Emacs, we've removed the
support for passing command-line arguments and options to Emacs via
the @option{--alternate-editor} option of @command{emacsclient} and
@env{ALTERNATE_EDITOR} environment variable. There's only one True
Emacs---the one that comes up when invoked as @kbd{emacs}, no need for
all those fancy options!
We saw no need for the @code{make-process} primitive, so we removed
it. The @code{start-process} primitive provides all the functionality
one needs, so adding more APIs just confuses users.
The complication known as ``single-line horizontal scrolling'' is no
longer with you in Emacs 25.2. This feature was a bow to ``other
editors''; instead, let those other editors bow to Emacs by hscrolling
the entire window at all times. Repeat after me: ``The Emacs way is
the Only Way!''
The functions @code{bidi-find-overridden-directionality} and
@code{buffer-substring-with-bidi-context} were removed, in preparation
for removing the whole bidi support when downgrading to Emacs 23.
The fancy case conversions of non-ASCII characters used in several
locales, like Turkish and Greek, are removed, leaving the relations
between upper and lower letter-case simple again, as they were in
7-bit ASCII. Likewise with ligatures that turn into multiple
characters when their letter-case changes---gone.
Horizontal scroll bars are no longer supported. Enlarge your windows
and frames instead, or use @code{truncate-lines} and the automatic
horizontal scrolling of text that Emacs had since time immemorial.
Enchant is no longer supported by @code{ispell-buffer} and similar
spell-checking commands. As Enchant will gradually disappear while
you move back in time, its support will become unnecessary anyway.
Emacs is again counting the height of a frame's menu and its tool bar
in the frame's text height calculations. This makes Emacs invocation
on different platforms and with different toolkits less predictable
when frame geometry parameters are given on the Emacs command line,
thus making Emacs more adventurous and less boring to use.
Tramp lost its support for Google Drive repositories. Cloud storage
is on its way to extinction as you move back in time, thus making this
feature redundant.
The @command{etags} program no longer supports Ruby and Go languages.
You won't need that as you progressively travel back in time towards
the time before these languages were invented. We removed support for
them in anticipation for that time.
Several commands, deemed to be unnecessary complications, have been
removed. Examples include @code{replace-buffer-contents} and
To keep up with decreasing computer memory capacity and disk space, many
other functions and files have been eliminated in Emacs 24.5.
other functions and files have been eliminated in Emacs 25.2.
@end itemize
......@@ -222,7 +222,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 24.
* Antinews:: Information about Emacs version 25.
* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep.
* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
* Manifesto:: What's GNU? Gnu's Not Unix!
......@@ -6,110 +6,158 @@
@c This node must have no pointers.
@node Antinews
@appendix Emacs 24 Antinews
@appendix Emacs 25 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 24.5. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs @value{EMACSVER}
downgrading to Emacs version 25.2. We hope you will enjoy the greater
simplicity that results from the absence of many @w{Emacs
@value{EMACSVER}} features.
@section Old Lisp Features in Emacs 24
@section Old Lisp Features in Emacs 25
@itemize @bullet
The requirement that @code{setq} and @code{setf} must be called with
an even number of arguments has been removed. You can now call them
with an odd number of arguments, and Emacs will helpfully supply a
@code{nil} for the missing one. Simplicity rules!
The concurrency features have been removed. Even in its limited
``mostly cooperative'' form, with only one Lisp thread running at any
given time, it made Emacs significantly more complex for Lisp programs
that need to work correctly in the presence of additional threads.
@kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment
variable, as they should, to indicate that the subprocess is run by
Emacs. This is so packages that took years to learn how to work
around that setting could continue using their code to that effect.
Handling of file attributes has been simplified by discarding the
accessor functions, such as @code{file-attribute-type} and
@code{file-attribute-modification-time}. Real Lisp programmers always
access the individual attributes by their ordinal numbers, and can
recite those numbers in their sleep.
The @code{save-excursion} form saves and restores the mark, as
expected. No more need for the new @code{save-mark-and-excursion},
which has been deleted.
The networking code is back at its pristine simplicity, as we deleted
the use of asynchronous DNS resolution, connection, and TLS
negotiation for TLS streams. You no longer need to consider the
resulting complexity and interesting race conditions when you write
Lisp programs that use network communications. As a direct
consequence, the @code{:complete-negotiation} parameter of
@code{gnutls-boot} has become unnecessary, and was removed---just one
example of how removal of asynchronicity simplifies Emacs.
We have removed the @code{text-quoting-style} variable and the
associated functionality that translates quote characters in messages
displayed to the user and in help buffers. Emacs now shows exactly
the same quote characters as you wrote in your code! Likewise,
@code{substitute-command-keys} leaves the quote characters alone. As
you move back in time, Unicode support becomes less and less
important, so no need to display those fancy new quotes the Unicode
Standard invented.
We've removed the @file{puny.el} library, so Web sites with
non-@acronym{ASCII} URLs are no longer easily accessible. But such
sites become more and more rare as you move back in time, so having a
specialized library for their support was deemed an unnecessary
maintenance burden.
Field numbers like @samp{%2$} in format specifiers are no longer
available. We decided that their use makes code reading and
comprehension much harder, and that having them is unjustified in the
past where similar features in popular C libraries will also be gone.
Since the built-in capability to display line numbers has been removed
(@pxref{Antinews,,, emacs, The GNU Emacs Manual}), we've also deleted
the @code{line-number-display-width} function and the support for the
@code{display-line-numbers-disable} property, as Lisp programs that do
their own display layout decisions no longer need to cater to this
tricky feature.
Regular expressions have been simplified by removing support for
Unicode character properties in regexp classes. As result,
@code{[:alpha:]} and @code{[:alnum:]} will match any character with a
word syntax, and @code{[:graph:]} and @code{[:print:]} will match any
multibyte character, including surrogates and unassigned codepoints.
Once again, this is in line with diminishing importance of Unicode as
you move back in time.
Unicode character properties in the @code{[:blank:]} regexp class. As
result, this class will match only spaces and tabs. Once again, this
is in line with diminishing importance of Unicode as you move back in
For similar reasons, we removed the function @code{char-from-name}.
It should be easy enough to access the full list of Unicode characters
returned by @code{ucs-names} instead, for as long as Unicode support
in Emacs exists (which shouldn't be too long).
Various functions that accept file names as arguments, such as
@code{file-attributes}, @code{file-symlink-p}, and
@code{make-symbolic-link} gained back the special support for file
names quoted with @samp{/:}, and they now interpret @samp{~} in
symlink targets as you'd expect: to mean your home directory. The
confusing differences between the operation of these functions in
interactive and non-interactive invocations has been removed.
The function @file{assoc} has been simplified by removing its third
optional argument. It now always uses @code{equal} for comparison.
Likewise, @code{alist-get} always uses @code{assq}, and @code{map-get}
and @code{map-put} always use @code{eql} for their comparisons.
GnuTLS cryptographic functions are no longer available in Emacs. We
have decided that the needs for such functionality are deteriorating,
and their cumbersome interfaces make them hard to use.
We have removed support for records of user-defined types, and
@code{cl-defstruct} no longer uses records. This removes the
potential for quite a few places where existing and past code could be
broken by records.
You can again use @code{string-as-unibyte},
@code{string-make-multibyte}, and other similar functions, without
being annoyed by messages about their deprecation. This is in
preparation for removal of multibyte text from Emacs in the distance
Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have
realized that interpreting that as in Common Lisp was a bad mistake
that needed to be corrected.
The function @code{read-color} no longer displays color names using
each color as the background. We have determined that this surprises
users and produces funny inconsistent results on color-challenged
The @code{pcase} form was significantly simplified by removing the
UPatterns @code{quote} and @code{app}. To further simplify this
facility, we've removed @code{pcase-defmacro}, since we found no need
for letting Lisp programs define new UPatterns.
We removed the function @code{file-name-case-insensitive-p}, as
testing for the OS symbol should be enough for the observable past to
come, and learning to use yet another API is a burden.
We've removed the text properties @code{cursor-intangible} and
@code{cursor-sensor-functions}, replacing them by the much simpler
@code{intangible}, @code{point-entered}, and @code{point-left}
properties. The latter are implemented on a much lower level, and
therefore are better integrated with user expectations. For similar
reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode}
were removed; use the hook variable @code{inhibit-point-motion-hooks}
which is no longer obsolete.
The function @code{read-multiple-choice} is also gone, in recognition
of the fact that nothing makes Emacs Lisp hacker 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.
Process creation and management functions were significantly improved
and simplified by removing @code{make-process} and the @code{pipe}
connection type. Redirecting @code{stderr} of a subprocess should be
done with shell facilities, not by Emacs.
The function @code{add-variable-watcher} and the corresponding
debugger command @code{debug-on-variable-change} have been removed.
They make debugging more complicated, while examining the value of a
variable at each stop point is easy enough to cover the same use
cases. Let simplicity rule!
We decided that shutting up informative messages is bad for user
interaction, so we've removed the @code{inhibit-message} variable
which could be used to that effect.
The function @code{mapcan} is gone; use @code{mapcar} instead, and
process the resulting list as you see fit.
Support for generators and for finalizers has been removed, as we
found no real need for these facilities.
You can once again write a Lisp program that returns funny random
values from @code{file-attributes} by having another process alter the
filesystem while Emacs is accessing the file. This can give rise to
some interesting applications in the near past.
Due to excessive complexity and the diminishing need for Unicode
support, the functions @code{string-collate-lessp} and
@code{string-collate-equalp} were removed. Their locale-independent
counterparts @code{string-lessp} and @code{string-equal} are so much
more simple and yield predictable results that we don't see any
situation where the locale-dependent collation could be useful in
Emacs. As result, the @file{ls-lisp.el} package sorts files in a
locale-independent manner.
We have removed the functions @code{file-name-quote},
@code{file-name-unquote}, and @code{file-name-quoted-p}. Writing code
that checks whether a file name is already quoted is easy, and doubly
quoting a file name should not produce any problems for well-written
Lisp code.
In preparation for removal in some past version of Emacs of the
bidirectional editing support, we started by deleting two functions
@code{bidi-find-overridden-directionality} and
Frame parameters like @code{z-group}, @code{min-width},
@code{parent-frame}, @code{delete-before}, etc. have been removed.
Emacs should not replace your window-manager, certainly not as
window-managers become less and less capable.
Time conversion functions, such as @code{current-time-string}, no
longer accept an optional @var{zone} argument. If you need to change
the current time zone (why?), do that explicitly with
We decided that the format of mode line and header line should be
customizable only based on buffers; the @code{mode-line-format} and
@code{header-line-format} window parameters have been removed.
As part of the ongoing quest for simplicity, many other functions and
......@@ -230,7 +230,7 @@ To view this manual in other formats, click
* Antinews:: Info for users downgrading to Emacs 24.
* Antinews:: Info for users downgrading to Emacs 25.
* 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.
......@@ -65,9 +65,9 @@ need to copy the emacs.service file to eg ~/.config/systemd/user/)
Emacs that is more likely to be reproducible; that is, if you build
and install Emacs twice, the second Emacs is a copy of the first.
Deterministic builds omit the build date from the output of the
emacs-version and erc-cmd-SV functions, and the leave the following
variables nil: emacs-build-system, emacs-build-time,
'emacs-version' and 'erc-cmd-SV' functions, and the leave the
following variables nil: 'emacs-build-system', 'emacs-build-time',
** The configure option '--with-gameuser' now defaults to 'no',
as this appears to be the most common configuration in practice.
......@@ -108,11 +108,6 @@ The effect is similar to that of "toolBar" resource on the tool bar.
* Changes in Emacs 26.1
** The function 'assoc' now takes an optional third argument 'testfn'.
This argument, when non-nil, is used for comparison instead of
** New variable 'executable-prefix-env' for inserting magic signatures.
This variable affects the format of the interpreter magic number
......@@ -126,10 +121,6 @@ so the default behavior is not changed.
** The variable 'emacs-version' no longer includes the build number.
This is now stored separately in a new variable, 'emacs-build-number'.
** The new function 'mapbacktrace' applies a function to all frames of
the current stack trace.
** Emacs now provides a limited form of concurrency with Lisp threads.
Concurrency in Emacs Lisp is "mostly cooperative", meaning that
......@@ -143,10 +134,6 @@ buffer and its own match data.
See the chapter "Threads" in the ELisp manual for full documentation
of these facilities.