; * etc/NEWS: Rearrange "Changes in Emacs 30.1".

This commit is contained in:
Stefan Kangas 2024-06-29 13:53:49 +02:00
parent 31124abdef
commit 5b5671587f

445
etc/NEWS
View file

@ -93,18 +93,6 @@ The old variables 'mouse-wheel-up-event', 'mouse-wheel-down-event',
'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby 'mouse-wheel-left-event', and 'mouse-wheel-right-event' are thereby
obsolete. obsolete.
+++
** URL now never sends user email addresses in HTTP requests.
Emacs never sent email addresses by default, but it used to be
possible to customize 'url-privacy-level' so that the users email
address was sent along in HTTP requests. This feature has now been
removed, as it was considered more dangerous than useful. RFC 9110
(§ 10.1.2) also recommends against it. The user option
'url-personal-mail-address' is now also obsolete.
To send an email address in the header of individual HTTP requests,
see the variable 'url-request-extra-headers'.
+++ +++
** 'completion-auto-help' now affects 'icomplete-in-buffer'. ** 'completion-auto-help' now affects 'icomplete-in-buffer'.
Previously, 'completion-auto-help' mostly affected only minibuffer Previously, 'completion-auto-help' mostly affected only minibuffer
@ -132,99 +120,60 @@ The round-trip through the Lisp function
the default one. It's reimplemented in native code, reducing GC churn. the default one. It's reimplemented in native code, reducing GC churn.
To undo this change, set 'fast-read-process-output' to nil. To undo this change, set 'fast-read-process-output' to nil.
* Changes in Emacs 30.1
** 'advice-remove' is now an interactive command.
When called interactively, 'advice-remove' now prompts for an advised
function to the advice to remove.
** Emacs now supports Unicode Standard version 15.1.
** New pre-defined values for 'electric-quote-chars'.
The available customization options for 'electric-quote-chars' have been
updated with common pairs of quotation characters, including "", "",
"“", "”", "«", "»", "", "", "", "„", "「", "」", "『", and "』".
The default is unchanged.
** Network Security Manager
+++ +++
*** The Network Security Manager now warns about 3DES by default. ** The Network Security Manager now warns about 3DES by default.
This cypher is no longer recommended owing to a major vulnerability This cypher is no longer recommended owing to a major vulnerability
disclosed in 2016, and its small 112 bit key size. Emacs now warns disclosed in 2016, and its small 112 bit key size. Emacs now warns
about its use also when 'network-security-level' is set to 'medium' about its use also when 'network-security-level' is set to 'medium'
(the default). See 'network-security-protocol-checks'. (the default). See 'network-security-protocol-checks'.
--- ---
*** The Network Security Manager now warns about <2048 bits in DH key exchange. ** The Network Security Manager now warns about <2048 bits in DH key exchange.
Emacs used to warn for Diffie-Hellman key exchanges with prime numbers Emacs used to warn for Diffie-Hellman key exchanges with prime numbers
smaller than 1024 bits. Since more servers now support it, this smaller than 1024 bits. Since more servers now support it, this
number has been bumped to 2048 bits. number has been bumped to 2048 bits.
** Help +++
** URL now never sends user email addresses in HTTP requests.
Emacs never sent email addresses by default, but it used to be
possible to customize 'url-privacy-level' so that the users email
address was sent along in HTTP requests. This feature has now been
removed, as it was considered more dangerous than useful. RFC 9110
(§ 10.1.2) also recommends against it. The user option
'url-personal-mail-address' is now also obsolete.
To send an email address in the header of individual HTTP requests,
see the variable 'url-request-extra-headers'.
* Changes in Emacs 30.1
** Emacs now supports Unicode Standard version 15.1.
+++ +++
*** New command 'help-find-source'.
Switch to a buffer visiting the source of what is being described in
"*Help*". It is bound to 'C-h 4 s' globally.
*** 'describe-function' shows function inferred type when available.
For native compiled Lisp functions 'describe-function' prints (after
the signature) the automatically inferred function type as well.
*** 'describe-function' now shows the type of the function object.
The text used to say things like "car is is a built-in function" whereas
it now says "car is a primitive-function" where "primitive-function" is
the symbol returned by 'cl-type-of'. You can click on those words to
get information about that type.
---
*** New user option 'describe-bindings-outline-rules'.
This user option controls outline visibility in the output buffer of
'describe-bindings' when 'describe-bindings-outline' is non-nil.
---
*** 'C-h m' ('describe-mode') uses outlining by default.
Set 'describe-mode-outline' to nil to get back the old behavior.
*** 'C-h k' ('describe-key') shows Unicode name.
For keybindings which produce single characters via translation or input
methods, 'C-h k' now shows the Unicode name of the produced character in
addition to the character itself, e.g.
'C-h k C-x 8 E' =>
€ 'EURO SIGN' (translated from C-x 8 E)
*** 'C-h b' ('describe-bindings') shows Unicode names.
For keybindings which produce single characters via translation (such as
those using the 'C-x 8' or 'A-' prefix, or 'dead-acute', 'dead-grave',
etc), the Unicode names will now be shown in addition to the character
itself, i.e.
A-! ¡ INVERTED EXCLAMATION MARK
A-$ ¤ CURRENCY SIGN
and so on.
+++
*** Multi-character key echo now ends with a suggestion to use Help.
Customize 'echo-keystrokes-help' to nil to prevent that.
** Customize
+++
*** New command 'customize-dirlocals'.
This command pops up a buffer to edit the settings in ".dir-locals.el".
---
*** New command 'customize-toggle-option'.
This command can toggle boolean options for the duration of a session.
** Emacs now comes with Org v9.7. ** Emacs now comes with Org v9.7.
See the file "etc/ORG-NEWS" for user-visible changes in Org. See the file "etc/ORG-NEWS" for user-visible changes in Org.
+++
** Support for styled underline face attributes.
These are implemented as new values of the 'style' attribute in a face
underline specification, 'double-line', 'dots', and 'dashes', and are
available on GUI systems. If your terminal's termcap or terminfo
database entry defines the 'Su' or 'Smulx' capability, Emacs will also
emit the prescribed escape sequence to render faces with such styles on
TTY frames.
---
** Support for underline colors on TTY frames.
Colors specified in face underlines will now also be displayed in TTY
frames with the previously mentioned capabilities.
** Modeline elements can now be right-aligned.
Anything following the symbol 'mode-line-format-right-align' in
'mode-line-format' will be right-aligned. Exactly where it is
right-aligned to is controlled by the new user option
'mode-line-right-align-edge'.
** X selection requests are now handled much faster and asynchronously. ** X selection requests are now handled much faster and asynchronously.
This means it should be less necessary to disable the likes of This means it should be less necessary to disable the likes of
'select-active-regions' when Emacs is running over a slow network 'select-active-regions' when Emacs is running over a slow network
@ -236,90 +185,17 @@ compositing manager, Emacs will now redisplay such a frame even though
'frame-visible-p' returns nil or 'icon' for it. This can happen, for 'frame-visible-p' returns nil or 'icon' for it. This can happen, for
example, as part of preview for iconified frames. example, as part of preview for iconified frames.
--- +++
** New user option 'menu-bar-close-window'. ** Most file notification backends detect unmounting of a watched filesystem.
When non-nil, selecting "Close" from the "File" menu or clicking The only exception is w32notify.
"Close" in the tool bar will result in the current window being
closed, if possible.
+++ +++
** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'. ** Image ':map' property is now recomputed when image is transformed.
When non-nil, this option suppresses moving remote files to the local Now images with clickable maps work as expected after you run commands
trash when deleting. Default is nil. such as 'image-increase-size', 'image-decrease-size', 'image-rotate',
'image-flip-horizontally', and 'image-flip-vertically'.
--- Set the new user option 'image-recompute-map-p' to nil to prevent Emacs
** New user option 'remote-file-name-inhibit-auto-save'. from recomputing image maps.
If this user option is non-nil, 'auto-save-mode' will not auto-save
remote buffers. The default is nil.
+++
** New user option 'remote-file-name-access-timeout'.
When a positive number, this option limits the call of 'access-file'
for remote files to this number of seconds. Default is nil.
---
** New icon images for general use.
Several symbolic icons are added to "etc/images/symbols", including
plus, minus, check-mark, star, etc.
** Tool bars
+++
*** Tool bars can now be placed on the bottom on more systems.
The 'tool-bar-position' frame parameter can be set to 'bottom' on all
window systems other than Nextstep.
+++
*** New global minor mode 'modifier-bar-mode'.
When this minor mode is enabled, buttons representing modifier keys
are displayed along the tool bar.
+++
*** New user option 'tool-bar-always-show-default'.
When non-nil, the tool bar at the top of a frame does not show buffer
local customization of the tool bar. The default value is nil.
---
** New user option 'uniquify-dirname-transform'.
This can be used to customize how buffer names are uniquified, by
making arbitrary transforms on the buffer's directory name (whose
components are used to uniquify buffer names when they clash). You
can use this to distinguish between buffers visiting files with the
same base name that belong to different projects by using the provided
transform function 'project-uniquify-dirname-transform'.
+++
** CL Print
+++
*** You can expand the "..." truncation everywhere.
The code that allowed "..." to be expanded in the "*Backtrace*" buffer
should now work anywhere the data is generated by 'cl-print'.
+++
*** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'.
+++
*** hash-tables' contents can be expanded via the ellipsis.
+++
*** Modes can control the expansion via 'cl-print-expand-ellipsis-function'.
+++
*** New setting 'raw' for 'cl-print-compiled'.
This setting causes byte-compiled functions to be printed in full by
'prin1'. A button on this output can be activated to disassemble the
function.
+++
*** There is a new chapter in the CL manual documenting cl-print.el.
See the Info node "(cl) Printing".
** Modeline elements can now be right-aligned.
Anything following the symbol 'mode-line-format-right-align' in
'mode-line-format' will be right-aligned. Exactly where it is
right-aligned to is controlled by the new user option
'mode-line-right-align-edge'.
** Windows ** Windows
@ -359,13 +235,6 @@ by adding '(category . symbol)' to the condition part of
It specifies whether the window of the displayed buffer should be It specifies whether the window of the displayed buffer should be
selected or deselected at the end of executing the current command. selected or deselected at the end of executing the current command.
---
*** User option 'display-comint-buffer-action' is now obsolete.
You can use a '(category . comint)' condition in 'display-buffer-alist'
to match buffers displayed by comint-related commands. Another
user option 'display-tex-shell-buffer-action' is obsolete too
for which you can use '(category . tex-shell)'.
+++ +++
*** New variable 'window-restore-killed-buffer-windows'. *** New variable 'window-restore-killed-buffer-windows'.
It specifies how 'set-window-configuration' and 'window-state-put' It specifies how 'set-window-configuration' and 'window-state-put'
@ -388,6 +257,30 @@ according to the context stored in a window parameter.
are always created with a 'window-cursor-type' of t, which means to are always created with a 'window-cursor-type' of t, which means to
consult the variable 'cursor-type' as before. consult the variable 'cursor-type' as before.
---
*** The user option 'display-comint-buffer-action' is now obsolete.
You can use a '(category . comint)' condition in 'display-buffer-alist'
to match buffers displayed by comint-related commands. Another
user option 'display-tex-shell-buffer-action' is obsolete too
for which you can use '(category . tex-shell)'.
** Tool bars
+++
*** Tool bars can now be placed on the bottom on more systems.
The 'tool-bar-position' frame parameter can be set to 'bottom' on all
window systems other than Nextstep.
+++
*** New global minor mode 'modifier-bar-mode'.
When this minor mode is enabled, buttons representing modifier keys
are displayed along the tool bar.
+++
*** New user option 'tool-bar-always-show-default'.
When non-nil, the tool bar at the top of a frame does not show buffer
local customization of the tool bar. The default value is nil.
** Tab Bars and Tab Lines ** Tab Bars and Tab Lines
--- ---
@ -409,6 +302,11 @@ the name of the killed buffer that was displayed in that window.
It can be used to add, remove and reorder functions that change the It can be used to add, remove and reorder functions that change the
appearance of every tab on the tab bar. appearance of every tab on the tab bar.
---
*** New user option 'tab-line-tabs-buffer-group-function'.
It provides two choices to group tab buffers by major mode and by
project name.
--- ---
*** New hook 'tab-bar-tab-post-select-functions'. *** New hook 'tab-bar-tab-post-select-functions'.
@ -435,22 +333,81 @@ original order of buffers on the tab line, even after switching between
these buffers. You can drag the tabs and release at a new position these buffers. You can drag the tabs and release at a new position
to manually reorder the buffers on the tab line. to manually reorder the buffers on the tab line.
---
*** New user option 'tab-line-tabs-buffer-group-function'.
It provides two choices to group tab buffers by major mode and by
project name.
--- ---
*** Buffers on group tabs are now sorted alphabetically. *** Buffers on group tabs are now sorted alphabetically.
This will keep the fixed order of tabs, even after switching between This will keep the fixed order of tabs, even after switching between
them. them.
** Help
+++ +++
** New prefix argument for modifying directory-local variables. *** New command 'help-find-source'.
Switch to a buffer visiting the source of what is being described in
"*Help*". It is bound to 'C-h 4 s' globally.
---
*** New user option 'describe-bindings-outline-rules'.
This user option controls outline visibility in the output buffer of
'describe-bindings' when 'describe-bindings-outline' is non-nil.
*** 'describe-function' shows function inferred type when available.
For native compiled Lisp functions 'describe-function' prints (after
the signature) the automatically inferred function type as well.
*** 'describe-function' now shows the type of the function object.
The text used to say things like "car is is a built-in function" whereas
it now says "car is a primitive-function" where "primitive-function" is
the symbol returned by 'cl-type-of'. You can click on those words to
get information about that type.
---
*** 'C-h m' ('describe-mode') uses outlining by default.
Set 'describe-mode-outline' to nil to get back the old behavior.
*** 'C-h k' ('describe-key') shows Unicode name.
For keybindings which produce single characters via translation or input
methods, 'C-h k' now shows the Unicode name of the produced character in
addition to the character itself, e.g.
'C-h k C-x 8 E' =>
€ 'EURO SIGN' (translated from C-x 8 E)
*** 'C-h b' ('describe-bindings') shows Unicode names.
For keybindings which produce single characters via translation (such as
those using the 'C-x 8' or 'A-' prefix, or 'dead-acute', 'dead-grave',
etc), the Unicode names will now be shown in addition to the character
itself, i.e.
A-! ¡ INVERTED EXCLAMATION MARK
A-$ ¤ CURRENCY SIGN
and so on.
+++
*** Multi-character key echo now ends with a suggestion to use Help.
Customize 'echo-keystrokes-help' to nil to prevent that.
** Customize
+++
*** New command 'customize-dirlocals'.
This command pops up a buffer to edit the settings in ".dir-locals.el".
---
*** New command 'customize-toggle-option'.
This command can toggle boolean options for the duration of a session.
+++
*** New prefix argument for modifying directory-local variables.
The commands 'add-dir-local-variable', 'delete-dir-local-variable' and The commands 'add-dir-local-variable', 'delete-dir-local-variable' and
'copy-file-locals-to-dir-locals' now take an optional prefix argument, 'copy-file-locals-to-dir-locals' now take an optional prefix argument,
to enter the file name you want to modify. to enter the file name you want to modify.
*** New user option 'safe-local-variable-directories'.
This user option names directories in which Emacs will treat all
directory-local variables as safe.
** Emacs Server and Client ** Emacs Server and Client
--- ---
@ -463,41 +420,31 @@ arguments contain arbitrary characters that otherwise might require
elaborate and error-prone escaping (to protect them from the shell). elaborate and error-prone escaping (to protect them from the shell).
+++ +++
** 'recover-file' can show diffs between auto save file and current file. ** CL Print
When answering the prompt with "diff" or "=", it now shows the diffs
between the auto save file and the current file.
+++ +++
** 'read-passwd' can toggle the visibility of passwords. *** You can expand the "..." truncation everywhere.
Use 'TAB' in the minibuffer to show or hide the password. Likewise, The code that allowed "..." to be expanded in the "*Backtrace*" buffer
there is an icon on the mode-line, which toggles the visibility of the should now work anywhere the data is generated by 'cl-print'.
password when clicking with 'mouse-1'.
+++ +++
** Support for styled underline face attributes. *** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'.
These are implemented as new values of the 'style' attribute in a face
underline specification, 'double-line', 'dots', and 'dashes', and are
available on GUI systems. If your terminal's termcap or terminfo
database entry defines the 'Su' or 'Smulx' capability, Emacs will also
emit the prescribed escape sequence to render faces with such styles on
TTY frames.
---
** Support for underline colors on TTY frames.
Colors specified in face underlines will now also be displayed in TTY
frames with the previously mentioned capabilities.
+++ +++
** Image ':map' property is now recomputed when image is transformed. *** hash-tables' contents can be expanded via the ellipsis.
Now images with clickable maps work as expected after you run commands
such as 'image-increase-size', 'image-decrease-size', 'image-rotate',
'image-flip-horizontally', and 'image-flip-vertically'.
Set the new user option 'image-recompute-map-p' to nil to prevent Emacs
from recomputing image maps.
+++ +++
** Most file notification backends detect unmounting of a watched filesystem. *** Modes can control the expansion via 'cl-print-expand-ellipsis-function'.
The only exception is w32notify.
+++
*** New setting 'raw' for 'cl-print-compiled'.
This setting causes byte-compiled functions to be printed in full by
'prin1'. A button on this output can be activated to disassemble the
function.
+++
*** There is a new chapter in the CL manual documenting cl-print.el.
See the Info node "(cl) Printing".
** Miscellaneous ** Miscellaneous
@ -506,14 +453,44 @@ The only exception is w32notify.
This works like 'kill-matching-buffers', but without asking for This works like 'kill-matching-buffers', but without asking for
confirmation. confirmation.
*** New user option 'safe-local-variable-directories'. +++
This user option names directories in which Emacs will treat all *** 'recover-file' can show diffs between auto save file and current file.
directory-local variables as safe. When answering the prompt with "diff" or "=", it now shows the diffs
between the auto save file and the current file.
+++
*** 'read-passwd' can toggle the visibility of passwords.
Use 'TAB' in the minibuffer to show or hide the password. Likewise,
there is an icon on the mode-line, which toggles the visibility of the
password when clicking with 'mouse-1'.
*** 'advice-remove' is now an interactive command.
When called interactively, 'advice-remove' now prompts for an advised
function to the advice to remove.
--- ---
*** New face 'appt-notification' for 'appt-display-mode-line'. *** New user option 'uniquify-dirname-transform'.
It can be used to customize the look of the appointment notification This can be used to customize how buffer names are uniquified, by
displayed on the mode line when 'appt-display-mode-line' is non-nil. making arbitrary transforms on the buffer's directory name (whose
components are used to uniquify buffer names when they clash). You
can use this to distinguish between buffers visiting files with the
same base name that belong to different projects by using the provided
transform function 'project-uniquify-dirname-transform'.
+++
*** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'.
When non-nil, this option suppresses moving remote files to the local
trash when deleting. Default is nil.
---
*** New user option 'remote-file-name-inhibit-auto-save'.
If this user option is non-nil, 'auto-save-mode' will not auto-save
remote buffers. The default is nil.
+++
*** New user option 'remote-file-name-access-timeout'.
When a positive number, this option limits the call of 'access-file'
for remote files to this number of seconds. Default is nil.
+++ +++
*** New user option 'yes-or-no-prompt'. *** New user option 'yes-or-no-prompt'.
@ -521,23 +498,33 @@ This allows the user to customize the prompt that is appended by
'yes-or-no-p' when asking questions. The default value is 'yes-or-no-p' when asking questions. The default value is
"(yes or no) ". "(yes or no) ".
---
*** New user option 'menu-bar-close-window'.
When non-nil, selecting "Close" from the "File" menu or clicking
"Close" in the tool bar will result in the current window being
closed, if possible.
--- ---
*** New face 'display-time-date-and-time'. *** New face 'display-time-date-and-time'.
This is used for displaying the time and date components of This is used for displaying the time and date components of
'display-time-mode'. 'display-time-mode'.
---
*** New face 'appt-notification' for 'appt-display-mode-line'.
It can be used to customize the look of the appointment notification
displayed on the mode line when 'appt-display-mode-line' is non-nil.
---
*** New icon images for general use.
Several symbolic icons have been added to "etc/images/symbols",
including plus, minus, check-mark, star, etc.
--- ---
*** Emacs now recognizes shebang lines that pass '-S'/'--split-string' to 'env'. *** Emacs now recognizes shebang lines that pass '-S'/'--split-string' to 'env'.
When visiting a script that invokes 'env -S INTERPRETER ARGS...' in When visiting a script that invokes 'env -S INTERPRETER ARGS...' in
its shebang line, Emacs will now skip over 'env -S' and deduce the its shebang line, Emacs will now skip over 'env -S' and deduce the
major mode based on the interpreter after 'env -S'. major mode based on the interpreter after 'env -S'.
+++
*** New function 'sqlite-execute-batch'.
This function lets the user execute multiple SQL statements in one go.
It is useful, for example, when a Lisp program needs to evaluate an
entire SQL file.
*** 'insert-directory-program' is now a user option. *** 'insert-directory-program' is now a user option.
On *BSD and macOS systems, this user option now defaults to the "gls" On *BSD and macOS systems, this user option now defaults to the "gls"
executable, if it exists. This should remove the need to change its executable, if it exists. This should remove the need to change its
@ -677,6 +664,12 @@ whereas if the mouse pointer is in the left half of a glyph, point
will be put in front the buffer position corresponding to that glyph. will be put in front the buffer position corresponding to that glyph.
By default this is disabled. By default this is disabled.
** New pre-defined values for 'electric-quote-chars'.
The available customization options for 'electric-quote-chars' have been
updated with common pairs of quotation characters, including "", "",
"“", "”", "«", "»", "", "", "", "„", "「", "」", "『", and "』".
The default is unchanged.
** Internationalization ** Internationalization
--- ---
@ -2950,6 +2943,12 @@ this was not possible.) In addition, LOCATION can be an integer, a
(zero-based) index into the table at which the new object is inserted (zero-based) index into the table at which the new object is inserted
(BEFORE is ignored in this case). (BEFORE is ignored in this case).
+++
**** New function 'sqlite-execute-batch'.
This function lets the user execute multiple SQL statements in one go.
It is useful, for example, when a Lisp program needs to evaluate an
entire SQL file.
** JSON ** JSON
--- ---