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 entry. * etc/NEWS: Rearrange some entries in a more reasonable order.
This commit is contained in:
parent
2b91b841b2
commit
c89f3ff3dc
5 changed files with 286 additions and 284 deletions
|
@ -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
|
||||
@item
|
||||
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 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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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
|
||||
past.
|
||||
|
||||
@item
|
||||
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 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.
|
||||
|
||||
@item
|
||||
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.
|
||||
Reproducible builds of Emacs are no longer supported, as past
|
||||
development will make that unnecessary.
|
||||
|
||||
@item
|
||||
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?
|
||||
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!
|
||||
|
||||
@item
|
||||
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.
|
||||
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.)
|
||||
|
||||
@item
|
||||
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
|
||||
versions.
|
||||
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
|
||||
ballast.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.)
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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 @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!
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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},
|
||||
etc.
|
||||
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!
|
||||
|
||||
@item
|
||||
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.
|
||||
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!''
|
||||
|
||||
@item
|
||||
@code{(/ @var{n})} once again yields just @var{n}. Emacs Lisp is not
|
||||
Common Lisp, so compatibility with CL just complicates Emacs here.
|
||||
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.
|
||||
|
||||
@item
|
||||
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?
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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
|
||||
@code{apropos-local-variable}.
|
||||
|
||||
@item
|
||||
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}
|
||||
features.
|
||||
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
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
@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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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
|
||||
time.
|
||||
|
||||
@item
|
||||
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.
|
||||
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).
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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 @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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
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.
|
||||
|
||||
@item
|
||||
Support for generators and for finalizers has been removed, as we
|
||||
found no real need for these facilities.
|
||||
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
|
||||
past.
|
||||
|
||||
@item
|
||||
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.
|
||||
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
|
||||
terminals.
|
||||
|
||||
@item
|
||||
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
|
||||
@code{buffer-substring-with-bidi-context}.
|
||||
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.
|
||||
|
||||
@item
|
||||
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
|
||||
@code{set-time-zone-rule}.
|
||||
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.
|
||||
|
||||
@item
|
||||
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!
|
||||
|
||||
@item
|
||||
The function @code{mapcan} is gone; use @code{mapcar} instead, and
|
||||
process the resulting list as you see fit.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
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.
|
||||
|
||||
@item
|
||||
As part of the ongoing quest for simplicity, many other functions and
|
||||
|
|
|
@ -230,7 +230,7 @@ To view this manual in other formats, click
|
|||
|
||||
Appendices
|
||||
|
||||
* 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.
|
||||
|
|
102
etc/NEWS
102
etc/NEWS
|
@ -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,
|
||||
erc-emacs-build-time.
|
||||
'emacs-version' and 'erc-cmd-SV' functions, and the leave the
|
||||
following variables nil: 'emacs-build-system', 'emacs-build-time',
|
||||
'erc-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
|
||||
'equal'.
|
||||
|
||||
---
|
||||
** 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.
|
||||
|
||||
+++
|
||||
** The new function 'file-name-case-insensitive-p' tests whether a
|
||||
given file is on a case-insensitive filesystem.
|
||||
|
||||
+++
|
||||
** The new user variable 'electric-quote-chars' provides a list
|
||||
of curved quotes for 'electric-quote-mode', allowing user to choose
|
||||
|
@ -272,20 +259,6 @@ part of minibuffers.
|
|||
** 'find-library' now takes a prefix argument to pop to a different
|
||||
window.
|
||||
|
||||
+++
|
||||
** Several accessors for the value returned by 'file-attributes'
|
||||
have been added. They are: 'file-attribute-type',
|
||||
'file-attribute-link-number', 'file-attribute-user-id',
|
||||
'file-attribute-group-id', 'file-attribute-access-time',
|
||||
'file-attribute-modification-time',
|
||||
'file-attribute-status-change-time', 'file-attribute-size',
|
||||
'file-attribute-modes', 'file-attribute-inode-number',
|
||||
'file-attribute-device-number' and 'file-attribute-collect'.
|
||||
|
||||
+++
|
||||
** The new function 'buffer-hash' computes a fast, non-consing hash of
|
||||
a buffer's contents.
|
||||
|
||||
---
|
||||
** 'fill-paragraph' no longer marks the buffer as changed unless it
|
||||
actually changed something.
|
||||
|
@ -336,13 +309,6 @@ These variables are for users who would like to avoid the small
|
|||
probability of data corruption due to techniques Emacs uses to recover
|
||||
in these situations.
|
||||
|
||||
+++
|
||||
** 'interrupt-process' now consults the list 'interrupt-process-functions',
|
||||
to determine which function has to be called in order to deliver the
|
||||
SIGINT signal. This allows Tramp to send the SIGINT signal to remote
|
||||
asynchronous processes. The hitherto existing implementation has been
|
||||
moved to 'internal-default-interrupt-process'.
|
||||
|
||||
+++
|
||||
** File local and directory local variables are now initialized each
|
||||
time the major mode is set, not just when the file is first visited.
|
||||
|
@ -359,16 +325,12 @@ see the node "Connection Local Variables" in the ELisp manual.
|
|||
|
||||
---
|
||||
** International domain names (IDNA) are now encoded via the new
|
||||
puny.el library, so that one can visit web sites with non-ASCII URLs.
|
||||
puny.el library, so that one can visit Web sites with non-ASCII URLs.
|
||||
|
||||
+++
|
||||
** The new 'timer-list' command lists all active timers in a buffer,
|
||||
where you can cancel them with the 'c' command.
|
||||
|
||||
+++
|
||||
** The new function 'read-multiple-choice' prompts for multiple-choice
|
||||
questions, with a handy way to display help texts.
|
||||
|
||||
+++
|
||||
** 'switch-to-buffer-preserve-window-point' now defaults to t.
|
||||
|
||||
|
@ -455,10 +417,6 @@ display of raw bytes from octal to hex.
|
|||
** You can now provide explicit field numbers in format specifiers.
|
||||
For example, '(format "%2$s %1$s" "X" "Y")' produces "Y X".
|
||||
|
||||
---
|
||||
** 'comment-indent-function' values may now return a cons to specify a
|
||||
range of indentation.
|
||||
|
||||
+++
|
||||
** Emacs now supports optional display of line numbers in the buffer.
|
||||
This is similar to what linum-mode provides, but much faster and
|
||||
|
@ -1289,18 +1247,62 @@ variable 'x-gtk-use-window-move'. The variable is now obsolete.
|
|||
* Lisp Changes in Emacs 26.1
|
||||
|
||||
+++
|
||||
** New optional argument TEXT in 'make-temp-file'.
|
||||
|
||||
---
|
||||
** New function `define-symbol-prop'.
|
||||
** The function 'assoc' now takes an optional third argument TESTFN.
|
||||
This argument, when non-nil, is used for comparison instead of
|
||||
'equal'.
|
||||
|
||||
+++
|
||||
** New optional argument TESTFN in 'alist-get', 'map-elt' and 'map-put'.
|
||||
If non-nil, the argument specifies a function to use for comparison,
|
||||
instead of, respectively, 'assq' and 'eql'.
|
||||
|
||||
+++
|
||||
** New function 'seq-set-equal-p' to check if SEQUENCE1 and SEQUENCE2
|
||||
contain the same elements, regardless of the order.
|
||||
|
||||
+++
|
||||
** The new function 'mapbacktrace' applies a function to all frames of
|
||||
the current stack trace.
|
||||
|
||||
+++
|
||||
** The new function 'file-name-case-insensitive-p' tests whether a
|
||||
given file is on a case-insensitive filesystem.
|
||||
|
||||
+++
|
||||
** Several accessors for the value returned by 'file-attributes'
|
||||
have been added. They are: 'file-attribute-type',
|
||||
'file-attribute-link-number', 'file-attribute-user-id',
|
||||
'file-attribute-group-id', 'file-attribute-access-time',
|
||||
'file-attribute-modification-time',
|
||||
'file-attribute-status-change-time', 'file-attribute-size',
|
||||
'file-attribute-modes', 'file-attribute-inode-number',
|
||||
'file-attribute-device-number' and 'file-attribute-collect'.
|
||||
|
||||
+++
|
||||
** The new function 'buffer-hash' computes a fast, non-consing hash of
|
||||
a buffer's contents.
|
||||
|
||||
+++
|
||||
** 'interrupt-process' now consults the list 'interrupt-process-functions',
|
||||
to determine which function has to be called in order to deliver the
|
||||
SIGINT signal. This allows Tramp to send the SIGINT signal to remote
|
||||
asynchronous processes. The hitherto existing implementation has been
|
||||
moved to 'internal-default-interrupt-process'.
|
||||
|
||||
+++
|
||||
** The new function 'read-multiple-choice' prompts for multiple-choice
|
||||
questions, with a handy way to display help texts.
|
||||
|
||||
---
|
||||
** 'comment-indent-function' values may now return a cons to specify a
|
||||
range of indentation.
|
||||
|
||||
+++
|
||||
** New optional argument TEXT in 'make-temp-file'.
|
||||
|
||||
---
|
||||
** New function `define-symbol-prop'.
|
||||
|
||||
** Checksum/Hash
|
||||
|
||||
+++
|
||||
|
|
Loading…
Add table
Reference in a new issue