From 979944c9b03ed168c85b65f880937adac0a2bf16 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 8 Feb 2018 15:58:05 -0800 Subject: [PATCH] * doc/lispref/anti.texi (Antinews): Add some more antinews. --- doc/lispref/anti.texi | 119 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index b6df9fe2e39..ac0e70a501a 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -47,6 +47,15 @@ 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 +The time conversion functions @code{current-time-string}, +@code{current-time-zone}, @code{decode-time}, +@code{format-time-string}, and @code{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, +@code{format-time-string} no longer converts @samp{%q} to the calendar +quarter, as that is something you can easily do for yourself. + @item Field numbers like @samp{%2$} in format specifiers are no longer available. We decided that their use makes code reading and @@ -83,12 +92,38 @@ 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 +Several functions that create or rename their files now treat their +destination specially if it happens to be a directory, even when its +name does not appear to be that of a directory. For example, +@code{(rename-file "A" "B")} no longer renames @file{A} to @file{B} if +@file{B} happens to be a directory. This is so that dealing with +files becomes more of an adventure. + +@item +The @code{format} function now returns new strings in more cases, to +place more stress on the Emacs memory manager and thereby test Emacs +better. + @item 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 +Numeric comparisons and the functions @code{format}, +@code{make-hash-table}, @code{min}, @code{max} and @code{logb} now +occasionally round values internally to make their results less +predictable. + +@item +The functions @code{ffloor}, @code{fceiling}l, @code{ftruncate} and +@code{fround} now accept integer arguments. Conversely, functions +like @code{decode-char} that accept floating-point integers now accept +arguments that are not integers. In both cases the results are +amusingly nonsensical sometimes. + @item GnuTLS cryptographic functions are no longer available in Emacs. We have decided that the needs for such functionality are deteriorating, @@ -104,15 +139,24 @@ 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 +preparation for removal of multibyte text from Emacs in the distant past. +@item +The @code{string-version-lessp} function has been removed, to +encourage programmers to use their own idiosyncratic methods to +determine whether one version string precedes another. + @item 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 +Support for 24-bit color on text terminals has been dropped, since +it wasn't needed long ago. + @item We removed the function @code{file-name-case-insensitive-p}, as testing for the OS symbol should be enough for the observable past to @@ -135,12 +179,57 @@ cases. Let simplicity rule! The function @code{mapcan} is gone; use @code{mapcar} instead, and process the resulting list as you see fit. +@item +Low-level list functions like @code{length} and @code{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. + +@item +The @code{write-region} function no longer propagates its +@var{lockname} argument to file name handlers. + @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 +The functions @code{file-attributes}, @code{file-symlink-p}, and +@code{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. + +@item +The error @code{file-missing} has been removed; operations now lump +such errors into the @code{file-error} category instead. + +@item +The function @code{delete-directory} now signals an error if operating +recursively and some other process deletes the directory before this +function gets to it. + +@item +The @code{dutch} input method now attempts to support Turkish too, +albeit incorrectly. Also, it converts @samp{IJ} and @samp{ij} to +special characters instead of leaving them alone. + +@item +Non-breaking hyphens and approximations to quotes are now displayed +just with the @code{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. + +@item +The user option @code{electric-quote-context-sensitive} and the +variable @code{electric-quote-inhibit-functions}, so that electric +quoting is simpler and more likely to do the wrong thing. + +@item +The user option @code{text-quoting-style} has been removed, and is now +just a variable. + @item We have removed the functions @code{file-name-quote}, @code{file-name-unquote}, and @code{file-name-quoted-p}. Writing code @@ -159,6 +248,34 @@ 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 +Emacs now normally builds a limited @command{movemail} substitute that +retrieves POP3 email only via insecure channels, and the +configure-time option @option{--with-mailutils} has been removed. +This simplifies Emacs setup when security is not important. + +@item +The configure-time option @option{--enable-gcc-warnings=warn-only} +has been removed, so that build-time warnings are always fatal now. + +@item +The configure-time option @option{--disable-build-details} has been +removed. This way, Emacs builds are unique and irreproducible. + +@item +The variable @code{emacs-version} now includes the build number +instead of storing it separately in @code{emacs-build-number}. + +@item +Emacs has been ported to IRIX. + +@item +Several options and variables have been removed to simplify Emacs and +potentially make it less reliable. These include the +@option{--module-assertions} option, the +@code{attempt-stack-overflow-recovery} variable, and the +@code{attempt-orderly-shutdown-on-fatal-signal} variable. + @item As part of the ongoing quest for simplicity, many other functions and variables have been eliminated. -- 2.39.2