mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-03 11:33:37 +00:00
ba05d005e5
Run "TZ=UTC0 admin/update-copyright".
192 lines
7.9 KiB
Plaintext
192 lines
7.9 KiB
Plaintext
@c -*-texinfo-*-
|
|
@c This is part of the GNU Emacs Lisp Reference Manual.
|
|
@c Copyright (C) 1999, 2002--2021 Free Software Foundation, Inc.
|
|
@c See the file elisp.texi for copying conditions.
|
|
|
|
@c This node must have no pointers.
|
|
|
|
@node Antinews
|
|
@appendix Emacs 26 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
|
|
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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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!
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@item
|
|
Similarly, old-style backquotes no longer signal errors; they generate
|
|
warnings instead. You can remove error handling from programs that
|
|
use backquotes.
|
|
|
|
@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.
|
|
|
|
@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?).
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@item
|
|
The function @code{file-system-info} was dropped on Posix platforms,
|
|
since you can always invoke @command{df} instead and parse its
|
|
output.
|
|
|
|
@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.
|
|
|
|
@item
|
|
As part of the ongoing quest for simplicity, many other functions and
|
|
variables have been eliminated.
|
|
@end itemize
|