emacs-31 0914969e0ef: ; Update "Antinews" in ELisp manual
Eli Zaretskii <[email protected]>
| Newsgroups | gmane.emacs.diffs |
|---|---|
| Message-ID | <[email protected]> |
branch: emacs-31 commit 0914969e0ef3557eb9b9ef8c058a9db5a7a69254 Author: Eli Zaretskii <[email protected]> Commit: Eli Zaretskii <[email protected]> ; Update "Antinews" in ELisp manual * doc/lispref/elisp.texi (Top): * doc/lispref/anti.texi (Antinews): Update for Emacs 31. --- doc/lispref/anti.texi | 158 +++++++++++++++++++++++++++---------------------- doc/lispref/elisp.texi | 2 +- 2 files changed, 88 insertions(+), 72 deletions(-) diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 861fa02c16b..b2588411836 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -6,117 +6,133 @@ @c This node must have no pointers. @node Antinews -@appendix Emacs 29 Antinews +@appendix Emacs 30 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 29.4. We hope you will enjoy the greater +downgrading to Emacs version 30.2. We hope you will enjoy the greater simplicity that results from the absence of many @w{Emacs @value{EMACSVER}} features. @itemize @bullet @item -Mouse wheel events once again follow the platform and window-system -conventions: sometimes they are @code{wheel-up/down} and sometimes -@code{mouse-4/5/6/7}. Lisp programs which use these should once again -be aware of the conventions in effect and behave accordingly. +Lisp strings are now mutable. You can use @code{aset} on unibyte +strings to replace single bytes by multibyte characters, and @code{aset} +on multibyte strings can replace any character by any other character, +regardless if they are ASCII or multibyte non-ASCII@. We feel those +restrictions are un-Emacsy and get in the way of doing all kinds of +exciting things with strings. @item -The command @code{describe-function} no longer distracts you by showing -unnecessary details like the type of the function's object. Emacs -hackers always know whether a function is a primitive, a native-compiled -Lisp function, or any other kind. Stating the obvious simply wastes the -precious screen estate; as you move into the past, and the typical -dimensions of the screen become smaller, that waste is less and less -justified. So we made the waste smaller. +Buffers that are current to a non-main thread cannot be killed by other +threads. We decided to get rid of the numerous complications which were +needed to allow killing such buffers. If your program needs to kill +such buffers, you will need to use a disciplined approach of first +making some other buffer current to the thread. @item -The support for styled underline in face attribute was dropped. The -simple underline should be enough; anything else is just code bloat and -creeping featurism. Colorful underlines on TTY frames are no longer -supported for the same reason. +We removed the early detection of faces that inherit from themselves. +As you move back in time, Emacs Lisp programmers become more and more +proficient, so disallowing such tricks feels wrong. Those who don't +know well enough what they are doing will be amply punished by having +their Lisp programs barf at display time or even wedge Emacs cold. @item -IELM stopped recording its input history. You will no longer be annoyed -by inputs from your past sessions; each session starts with a clean -slate. What can be simpler and easier to remember? +Calling @code{debug} in batch mode now kills Emacs. We decided that +there's no sense in continuing a batch session that entered the +debugger: who and how will debug it, anyway? + +For the same reason, @kbd{C-c} in batch mode now always kills Emacs, it +never quits. @item -You can no longer disable JavaScript in xwidget Webkit sessions. Since -xwidgets are going away in one of the previous Emacs versions, we -decided to make this one step in that direction and get rid of this -complication. +The functions that access and manipulate error descriptors were deleted. +Functions like @code{error-type}, @code{error-slot-value} and others are +useless bloat, since Lisp programs can simply access the data structure +directly, as God intended! @item -The @code{minibuffer-regexp-mode} was removed. Regular expressions are -just strings, so no fancy mode should be needed for editing them. +We removed @code{frame-initial-p}, as its job can easily be done by +testing several obscure variables and frame parameters. @item -We removed the Compat package. Forward compatibility for ELPA packages -becomes less and less important as you move back through time, and soon -enough ELPA will disappear entirely. We decided it was prudent to start -preparing for that now. +We've added the @code{redisplay-dont-pause} variable, so we could allow +interrupting a runaway redisplay cycle in one of the past versions of +Emacs. @item -We are back to interpreting @code{\x} without any following hex digits -as character code zero (@acronym{NUL}), as it always was in Emacs. The -savings in typing due to this alone are enough to justify this -simplification. +There's no longer a guarantee that all the digit characters will have +the @code{digit} (@code{?6}) category. We feel that such silly +consistency robs Lisp programmers of too much fun, whereby they should +discover which digits have this category by trial-and-error. + +For the same reason, not all characters belonging to the @code{symbol} +script will have the @code{symbol} (@code{?5}) category. @item -To keep Emacs clean and elegant, we've removed the ability to show -tooltips for fringe bitmaps. What important information cam be shown on -the fringes, and why would it require tooltips to explain its purpose? -We decided it isn't justified to keep this in past versions of Emacs. +Lisp programs can now easily delete that daemon frame by calling +@code{delete-frame}, as with any other frame. We decided there's no +reason to make a special case for the daemon frames, especially as some +past Emacs version will remove the daemon feature entirely. @item -Fancy sorting-related facilities, like the @code{value<} function and -keyword arguments for @code{sort}, were deleted as too complex. The -basic @code{sort} function should all that's needed in the years to go. +Lisp files found on @code{load-path} are no longer cached. We intend to +make the @code{load-path} list shorter and shorter as we move to +previous versions of Emacs, so caching files is an unnecessary +complication and bloat of precious memory. + +@item +The annoying warning about the missing @code{lexical-binding} cookie +when loading Lisp files was removed. This is one more step towards +eventual elimination of lexical binding from Emacs in one of the past +versions. + +For the same reason, Lisp files loaded via the @option{-x} and +@option{--script} command-line options no longer use lexical binding by +default. @item -Features related to the inheritance graph of major modes were deemed -unnecessary and thus were dropped. This includes -@code{provided-mode-derived-p}, @code{derived-mode-add-parents}, and -others. We decided that untangling the mode inheritance relationships -by hand facilitates more clear code and makes the intent evident. +To keep Emacs clean and elegant, we deleted the @code{setopt-local} +macro. This was one more useless bloat, since it is easy to do the same +using @code{setq-local}, and avoids the annoying warnings about mismatch +between the value and expected type defined by @code{defcustom}. @item -We removed unnecessary functionality for handling touch screen events, -as touch screens gradually disappear from view as you move back in time. -There's no need to keep obsolete these new inventions in the past. +Pure storage is now part of Emacs, and is here to stay. The function +@code{purecopy} really copies its argument to pure storage. This is a +significant step towards making Emacs more memory-efficient on +yesterday's computers, and more generally towards using @code{unexec} as +the only way of dumping Emacs. @item -Various new functions and variables for moving and transposing sexps and -for moving by program statements were dropped as unnecessary. The -original commands that move by balanced expressions are more than -enough. +The @code{cond*} macro was removed. You can still use @code{pcase} +instead, but better start using the venerable @code{cond} exclusively, +as @code{pcase} and its ilk will disappear from Emacs in the near past. +No one should need these fancy and hard-to-read constructs with their +obscure semantics and myriads of backticks! The original control-flow +special forms of the pristine Emacs Lisp are more than enough. @item -We deleted some fancy @code{declare} forms for functions, such as -@code{ftype}. Emacs Lisp is not a string-typed language, which makes -these declarations anathema. The types @code{closure} and -@code{interpreted-function} are gone for the same reason: no need to -distinguish types of Lisp functions. +Xref commands automatically suggest visiting a tags table. This is to +enable symbol completion,and generally move towards removing all +backends except the @code{etags} one in some past Emacs version. @item -The byte compiler stopped issuing warnings about practices some purists -consider questionable. This includes warnings about missing -@code{lexical-binding} cookies, empty bodies of special forms and -macros, comparison with literals, @code{condition-case} without -handlers, mutation of constants, and some others. As time moves into -the past, the typical Emacs hacker knows best what's correct code and -what isn't, and thus these warnings become useless annoyances. Good -riddance! +Support for SHA-3 message digests was removed from the function +@code{secure-hash}. We plan to continue removing algorithms from this +function, so as to keep Emacs as lean as possible. Eventually, just one +kind of digest should be enough for everyone! @item -The @code{obarray} type is gone. Obarrays are back to their original -representation as vectors. Each removed Lisp data type makes Emacs -simpler and easier to use, so this is a welcome deletion. +We deleted unnecessary functions like @code{incf}, @code{decf}, +@code{plusp}, @code{minusp}, @code{oddp}, and @code{evenp}. Use the +corresponding functions from @file{cl-lib} or just write these trivial +functions when you need them. For the same reason, @code{all}, +@code{any}, @code{drop-while}, and @code{take-while} are also gone. @item As part of the ongoing quest for simplicity, many other functions and variables have been eliminated. Other functions and variables, that -were declared obsolete since Emacs 24, have been added back, in -preparation for releasing Emacs 24 in some distant past. +were declared obsolete since Emacs 25, have been added back, in +preparation for releasing Emacs 25 in some distant past. @end itemize diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index b7809ff66da..62a6b97db4e 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -237,7 +237,7 @@ To view this manual in other formats, click Appendices -* Antinews:: Info for users downgrading to Emacs 29. +* Antinews:: Info for users downgrading to Emacs 30. * 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.