Next: GNU Free Documentation License, Previous: Packaging, Up: Top
For those users who live backwards in time, here is information about downgrading to Emacs version 25.3. We hope you will enjoy the greater simplicity that results from the absence of many Emacs 26.3 features.
file-attribute-type
and
file-attribute-modification-time
. Real Lisp programmers always
access the individual attributes by their ordinal numbers, and can
recite those numbers in their sleep.
:complete-negotiation
parameter of
gnutls-boot
has become unnecessary, and was removed—just one
example of how removal of asynchronicity simplifies Emacs.
current-time-string
,
current-time-zone
, decode-time
,
format-time-string
, and set-time-zone-rule
no longer
accept integer offsets as time zone rules, to make it more of a
challenge to convert foreign timestamps. Also,
format-time-string
no longer converts ‘%q’ to the calendar
quarter, as that is something you can easily do for yourself.
line-number-display-width
function and the support for the
display-line-numbers-disable
property, as Lisp programs that do
their own display layout decisions no longer need to cater to this
tricky feature.
[: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.
char-from-name
.
It should be easy enough to access the full list of Unicode characters
returned by ucs-names
instead, for as long as Unicode support
in Emacs exists (which shouldn't be too long).
file-attributes
, file-symlink-p
, and
make-symbolic-link
gained back the special support for file
names quoted with ‘/:’, and they now interpret ‘~’ 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.
(rename-file "A" "B")
no longer renames A to B if
B happens to be a directory. This is so that dealing with
files becomes more of an adventure.
format
function now returns new strings in more cases, to
place more stress on the Emacs memory manager and thereby test Emacs
better.
equal
for comparison.
Likewise, alist-get
always uses assq
, and map-get
and map-put
always use eql
for their comparisons.
format
,
make-hash-table
, min
, max
and logb
now
occasionally round values internally to make their results less
predictable.
ffloor
, fceiling
l, ftruncate
and
fround
now accept integer arguments. Conversely, functions
like decode-char
that accept floating-point integers now accept
arguments that are not integers. In both cases the results are
amusingly nonsensical sometimes.
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.
string-as-unibyte
,
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 distant
past.
string-version-lessp
function has been removed, to
encourage programmers to use their own idiosyncratic methods to
determine whether one version string precedes another.
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.
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.
read-multiple-choice
is also gone, 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.
add-variable-watcher
and the corresponding
debugger command 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!
mapcan
is gone; use mapcar
instead, and
process the resulting list as you see fit.
length
and member
can now
loop indefinitely when given cyclic lists, causing Emacs to freeze.
This can help these functions run a tiny bit faster in the usual case
where the input is not cyclic.
write-region
function no longer propagates its
lockname argument to file name handlers.
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.
file-attributes
, file-symlink-p
, and
make-symbolic-link
now quietly mutate the target of a local
symbolic link in some cases, to make it more of a challenge to deal
with arbitrary symlinks in Emacs code.
file-missing
has been removed; operations now lump
such errors into the file-error
category instead.
delete-directory
now signals an error if operating
recursively and some other process deletes the directory before this
function gets to it.
dutch
input method now attempts to support Turkish too,
albeit incorrectly. Also, it converts ‘IJ’ and ‘ij’ to
special characters instead of leaving them alone.
escape-glyph
face instead of having faces of
their own. This is simpler and gives the user amusing puzzles to
solve when viewing text containing these characters.
electric-quote-context-sensitive
and the
variable electric-quote-inhibit-functions
, so that electric
quoting is simpler and more likely to do the wrong thing.
text-quoting-style
has been removed, and is now
just a variable.
file-name-quote
,
file-name-unquote
, and 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.
z-group
, min-width
,
parent-frame
, delete-before
, etc. have been removed.
Emacs should not replace your window-manager, certainly not as
window-managers become less and less capable.
mode-line-format
and
header-line-format
window parameters have been removed.
emacs-version
now includes the build number
instead of storing it separately in emacs-build-number
.
attempt-stack-overflow-recovery
variable, and the
attempt-orderly-shutdown-on-fatal-signal
variable.