2007-04-12 02:31:20 +00:00
|
|
|
|
GNU Emacs NEWS -- history of user-visible changes.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
See the end of the file for license conditions.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2018-11-13 10:04:20 +00:00
|
|
|
|
Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'.
|
|
|
|
|
If possible, use 'M-x report-emacs-bug'.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
This file is about changes in Emacs version 30.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2015-10-15 21:59:43 +00:00
|
|
|
|
See file HISTORY for a list of GNU Emacs versions and release dates.
|
2022-11-28 18:03:07 +00:00
|
|
|
|
See files NEWS.29, NEWS.28, ..., NEWS.18, and NEWS.1-17 for changes
|
2017-10-20 23:29:15 +00:00
|
|
|
|
in older Emacs versions.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2016-03-15 00:36:23 +00:00
|
|
|
|
You can narrow news to a specific version by calling 'view-emacs-news'
|
2018-11-13 10:04:20 +00:00
|
|
|
|
with a prefix argument or by typing 'C-u C-h C-n'.
|
2007-06-12 08:16:23 +00:00
|
|
|
|
|
2016-09-11 02:13:36 +00:00
|
|
|
|
Temporary note:
|
2019-09-02 15:28:59 +00:00
|
|
|
|
+++ indicates that all relevant manuals in doc/ have been updated.
|
2016-09-11 02:13:36 +00:00
|
|
|
|
--- means no change in the manuals is needed.
|
2019-09-02 15:28:59 +00:00
|
|
|
|
When you add a new item, use the appropriate mark if you are sure it
|
|
|
|
|
applies, and please also update docstrings as needed.
|
2016-10-01 08:14:05 +00:00
|
|
|
|
|
2015-11-25 14:44:20 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Installation Changes in Emacs 30.1
|
2021-12-31 04:17:45 +00:00
|
|
|
|
|
2020-02-25 00:38:33 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Startup Changes in Emacs 30.1
|
2022-02-10 08:34:29 +00:00
|
|
|
|
|
2021-09-06 02:27:12 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Emacs 30.1
|
2022-07-28 13:32:42 +00:00
|
|
|
|
|
Speed up handling X selection requests
* etc/NEWS: Announce speedup.
* src/alloc.c (garbage_collect): Call mark_xselect.
* src/xftfont.c (xftfont_end_for_frame): Fix crash on display IO
error.
* src/xselect.c (struct selection_data, struct transfer): New
structures.
(outstading_transfers): New variable.
(SELECTED_EVENTS, x_selection_request_lisp_error): Stop checking
cs->nofree.
(x_catch_errors_unwind): Delete function.
(c_size_for_format, x_size_for_format, selection_data_for_offset)
(selection_data_size, transfer_selecting_event)
(x_continue_selection_transfer, x_remove_selection_transfers)
(x_selection_transfer_timeout): New functions.
(x_reply_selection_request): When handling selection requests,
never wait for property notifications synchronously. Instead,
write out the selection data as the client reads it from the
event loop.
(x_handle_selection_request, x_convert_selection)
(x_handle_property_notify, x_get_window_property)
(lisp_data_to_selection_data): Don't ever use pointers to Lisp
string data! Instead, just store the string object itself.
(syms_of_xselect): Initialize outstanding transfer list.
(syms_of_xselect_for_pdumper):
* src/xterm.c (x_delete_display): Remove outstanding selection
transfers.
* src/xterm.h: Update prototypes.
2022-12-01 06:33:23 +00:00
|
|
|
|
** X selection requests are now handled much faster and asynchronously.
|
|
|
|
|
This means it should be less necessary to disable the likes of
|
2023-01-05 12:23:04 +00:00
|
|
|
|
'select-active-regions' when Emacs is running over a slow network
|
Speed up handling X selection requests
* etc/NEWS: Announce speedup.
* src/alloc.c (garbage_collect): Call mark_xselect.
* src/xftfont.c (xftfont_end_for_frame): Fix crash on display IO
error.
* src/xselect.c (struct selection_data, struct transfer): New
structures.
(outstading_transfers): New variable.
(SELECTED_EVENTS, x_selection_request_lisp_error): Stop checking
cs->nofree.
(x_catch_errors_unwind): Delete function.
(c_size_for_format, x_size_for_format, selection_data_for_offset)
(selection_data_size, transfer_selecting_event)
(x_continue_selection_transfer, x_remove_selection_transfers)
(x_selection_transfer_timeout): New functions.
(x_reply_selection_request): When handling selection requests,
never wait for property notifications synchronously. Instead,
write out the selection data as the client reads it from the
event loop.
(x_handle_selection_request, x_convert_selection)
(x_handle_property_notify, x_get_window_property)
(lisp_data_to_selection_data): Don't ever use pointers to Lisp
string data! Instead, just store the string object itself.
(syms_of_xselect): Initialize outstanding transfer list.
(syms_of_xselect_for_pdumper):
* src/xterm.c (x_delete_display): Remove outstanding selection
transfers.
* src/xterm.h: Update prototypes.
2022-12-01 06:33:23 +00:00
|
|
|
|
connection.
|
|
|
|
|
|
2022-12-26 14:10:44 +00:00
|
|
|
|
** Emacs now updates invisible frames that are made visible by a compositor.
|
|
|
|
|
If an invisible or an iconified frame is shown to the user by the
|
|
|
|
|
compositing manager, Emacs will now redisplay such a frame even though
|
2023-01-05 12:23:04 +00:00
|
|
|
|
'frame-visible-p' returns nil or 'icon' for it. This can happen, for
|
2022-12-26 14:10:44 +00:00
|
|
|
|
example, as part of preview for iconified frames.
|
2022-12-26 07:57:06 +00:00
|
|
|
|
|
2023-01-02 18:00:41 +00:00
|
|
|
|
+++
|
|
|
|
|
** 'write-region-inhibit-fsync' now defaults to t in interactive mode,
|
|
|
|
|
as it has in batch mode since Emacs 24.
|
|
|
|
|
|
2023-01-08 18:24:17 +00:00
|
|
|
|
+++
|
|
|
|
|
** 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.
|
|
|
|
|
|
2021-12-03 19:44:26 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Editing Changes in Emacs 30.1
|
2022-10-19 18:57:03 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** New helper variable 'transpose-sexps-function'.
|
|
|
|
|
Emacs now can set this variable to customize the behavior of the
|
2022-12-25 19:11:59 +00:00
|
|
|
|
'transpose-sexps' function.
|
|
|
|
|
|
2023-01-09 06:52:38 +00:00
|
|
|
|
** New function 'transpose-sexps-default-function'.
|
|
|
|
|
The previous implementation is moved into its own function, to be
|
|
|
|
|
bound by transpose-sexps-function'.
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** New function 'treesit-transpose-sexps'.
|
2022-12-25 19:11:59 +00:00
|
|
|
|
treesit.el now unconditionally sets 'transpose-sexps-function' for all
|
|
|
|
|
Tree-sitter modes. This functionality utilizes the new
|
|
|
|
|
'transpose-sexps-function'.
|
|
|
|
|
|
2023-01-08 19:28:02 +00:00
|
|
|
|
** Commands and variables to move by program statements
|
|
|
|
|
|
|
|
|
|
*** New variable 'forward-sentence-function'.
|
2023-01-11 17:15:30 +00:00
|
|
|
|
Major modes can now set this variable to customize the behavior of the
|
|
|
|
|
'forward-sentence' command.
|
2023-01-08 19:28:02 +00:00
|
|
|
|
|
|
|
|
|
*** New function 'forward-sentence-default-function'.
|
|
|
|
|
The previous implementation of 'forward-sentence' is moved into its
|
|
|
|
|
own function, to be bound by 'forward-sentence-function'.
|
|
|
|
|
|
|
|
|
|
*** New defvar-local 'treesit-sentence-type-regexp.
|
|
|
|
|
Similarly to 'treesit-defun-type-regexp', this variable is used to
|
2023-01-11 17:15:30 +00:00
|
|
|
|
define "sentences" in Tree-sitter enabled modes.
|
2023-01-08 19:28:02 +00:00
|
|
|
|
|
|
|
|
|
*** New function 'treesit-forward-sentence'.
|
2023-01-11 17:15:30 +00:00
|
|
|
|
All tree-sitter modes that define 'treesit-sentence-type-regexp' now
|
|
|
|
|
set 'forward-sentence-function' to call 'treesit-forward-sentence'.
|
2023-01-08 19:28:02 +00:00
|
|
|
|
|
2021-09-06 02:27:12 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Specialized Modes and Packages in Emacs 30.1
|
2022-11-29 22:40:23 +00:00
|
|
|
|
---
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** Variable order and truncation can now be configured in 'gdb-many-windows'.
|
|
|
|
|
The new user option 'gdb-locals-table-row-config' allows users to
|
2022-11-29 22:40:23 +00:00
|
|
|
|
configure the order and max length of various properties in the local
|
2022-12-10 13:32:41 +00:00
|
|
|
|
variables buffer when using 'gdb-many-windows'.
|
2022-11-29 22:40:23 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
By default, this user option is set to write the properties in the order:
|
2022-12-10 13:32:41 +00:00
|
|
|
|
name, type and value, where the name and type are truncated to 20
|
|
|
|
|
characters, and the value is truncated according to the value of
|
|
|
|
|
'gdb-locals-value-limit'.
|
2022-11-29 22:40:23 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
If you want to get back the old behavior, set the user option to the value
|
2022-12-10 13:32:41 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(setopt gdb-locals-table-row-config
|
|
|
|
|
`((type . 0) (name . 0) (value . ,gdb-locals-value-limit)))
|
2021-05-10 11:42:48 +00:00
|
|
|
|
|
2022-12-04 22:56:35 +00:00
|
|
|
|
** VC
|
|
|
|
|
|
|
|
|
|
---
|
2022-12-05 12:21:36 +00:00
|
|
|
|
*** New user option 'vc-git-shortlog-switches'.
|
|
|
|
|
This is a string or a list of strings that specifies the Git log
|
|
|
|
|
switches for shortlogs, such as the one produced by 'C-x v L'.
|
|
|
|
|
'vc-git-log-switches' is no longer used for shortlogs.
|
2022-12-04 22:56:35 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** Buffer Selection
|
2022-12-07 01:36:41 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'bs-default-action-list'.
|
2022-12-07 12:50:41 +00:00
|
|
|
|
You can now configure how to display the "*buffer-selection*" buffer
|
|
|
|
|
using this new option. (Or set 'display-buffer-alist' directly.)
|
2022-12-07 01:36:41 +00:00
|
|
|
|
|
2022-11-09 06:49:23 +00:00
|
|
|
|
** Eshell
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New splice operator for Eshell dollar expansions.
|
|
|
|
|
Dollar expansions in Eshell now let you splice the elements of the
|
|
|
|
|
expansion in-place using '$@expr'. This makes it easier to fill lists
|
|
|
|
|
of arguments into a command, such as when defining aliases. For more
|
|
|
|
|
information, see the "(eshell) Dollars Expansion" node in the Eshell
|
|
|
|
|
manual.
|
|
|
|
|
|
2022-12-09 05:54:58 +00:00
|
|
|
|
+++
|
|
|
|
|
*** 'eshell-read-aliases-list' is now an interactive command.
|
2023-01-05 12:23:04 +00:00
|
|
|
|
After manually editing 'eshell-aliases-file', you can use this command
|
|
|
|
|
to load the edited aliases.
|
2022-12-09 05:54:58 +00:00
|
|
|
|
|
2022-12-09 19:12:51 +00:00
|
|
|
|
** Prog Mode
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2022-12-09 19:12:51 +00:00
|
|
|
|
+++
|
2023-01-05 12:23:04 +00:00
|
|
|
|
*** New command 'prog-fill-reindent-defun'.
|
2022-12-09 19:12:51 +00:00
|
|
|
|
This command either fills a single paragraph in a defun, such as a
|
2023-01-05 12:23:04 +00:00
|
|
|
|
docstring, or a comment, or (re)indents the surrounding defun if
|
2022-12-09 19:12:51 +00:00
|
|
|
|
point is not in a comment or a string. It is by default bound to
|
|
|
|
|
'M-q' in 'prog-mode' and all its descendants.
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2023-01-07 11:14:26 +00:00
|
|
|
|
** Tramp
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New connection method "toolbox".
|
|
|
|
|
This allow accessing system containers provided by Toolbox.
|
|
|
|
|
|
2023-01-14 14:12:14 +00:00
|
|
|
|
** EWW
|
2022-05-16 09:28:36 +00:00
|
|
|
|
|
|
|
|
|
+++
|
2023-01-14 14:12:14 +00:00
|
|
|
|
*** 'eww-open-file' can now display the file in a new buffer.
|
|
|
|
|
By default, the command reuses the '*eww*' buffer, but if called with
|
|
|
|
|
the new argument non-nil, it will use a new buffer instead.
|
|
|
|
|
Interactively, invoke 'eww-open-file' with a prefix argument to
|
|
|
|
|
activate this behavior.
|
2021-11-11 06:14:57 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* New Modes and Packages in Emacs 30.1
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2023-01-01 12:14:09 +00:00
|
|
|
|
---
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** The highly accessible Modus themes collection has six items.
|
2023-01-01 12:14:09 +00:00
|
|
|
|
The 'modus-operandi' and 'modus-vivendi' are the main themes that have
|
|
|
|
|
been part of Emacs since version 28. The former is light, the latter
|
|
|
|
|
dark. In addition to these, we now have 'modus-operandi-tinted' and
|
|
|
|
|
'modus-vivendi-tinted' for easier legibility, as well as
|
|
|
|
|
'modus-operandi-deuteranopia' and 'modus-vivendi-deuteranopia' to
|
|
|
|
|
cover the needs of users with red-green color deficiency. The Info
|
2023-01-05 12:23:04 +00:00
|
|
|
|
manual "(modus-themes) Top" describes the details and showcases all
|
|
|
|
|
their customization options.
|
2022-09-08 12:53:00 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* Incompatible Lisp Changes in Emacs 30.1
|
2022-10-03 18:27:17 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** User option 'tramp-completion-reread-directory-timeout' has been removed.
|
|
|
|
|
This user option has been obsoleted in Emacs 27, use
|
|
|
|
|
'remote-file-name-inhibit-cache' instead.
|
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* Lisp Changes in Emacs 30.1
|
2022-09-19 08:55:09 +00:00
|
|
|
|
|
2022-12-29 16:38:02 +00:00
|
|
|
|
** New or changed byte-compilation warnings
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about empty bodies for more special forms and macros.
|
|
|
|
|
The compiler now warns about an empty body argument to 'when',
|
|
|
|
|
'unless', 'ignore-error' and 'with-suppressed-warnings' in addition to
|
|
|
|
|
the existing warnings for 'let' and 'let*'. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(when (> x 2))
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'empty-body'.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about quoted error names in 'condition-case' and 'ignore-error'.
|
|
|
|
|
The compiler now warns about quoted condition (error) names
|
|
|
|
|
in 'condition-case' and 'ignore-error'. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(condition-case nil
|
|
|
|
|
(/ x y)
|
|
|
|
|
('arith-error "division by zero"))
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
Quoting them adds the error name 'quote' to those handled or ignored
|
|
|
|
|
respectively, which was probably not intended.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about comparison with literal constants without defined identity.
|
|
|
|
|
The compiler now warns about comparisons by identity with a literal
|
|
|
|
|
string, cons, vector, record, function, large integer or float as this
|
|
|
|
|
may not match any value at all. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(eq x "hello")
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
Only literals for symbols and small integers (fixnums), including
|
|
|
|
|
characters, are guaranteed to have a consistent (unique) identity.
|
|
|
|
|
This warning applies to 'eq', 'eql', 'memq', 'memql', 'assq', 'rassq',
|
|
|
|
|
'remq' and 'delq'.
|
|
|
|
|
|
|
|
|
|
To compare by (structural) value, use 'equal', 'member', 'assoc',
|
|
|
|
|
'rassoc', 'remove' or 'delete' instead. Floats and bignums can also
|
|
|
|
|
be compared using 'eql', '=' and 'memql'. Function literals cannot be
|
|
|
|
|
compared reliably at all.
|
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'suspicious'.
|
|
|
|
|
|
2021-09-30 17:11:43 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Emacs 30.1 on Non-Free Operating Systems
|
2022-04-27 14:46:57 +00:00
|
|
|
|
|
2001-01-25 20:15:31 +00:00
|
|
|
|
|
1999-10-03 12:39:42 +00:00
|
|
|
|
----------------------------------------------------------------------
|
2007-02-11 01:18:25 +00:00
|
|
|
|
This file is part of GNU Emacs.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2008-05-15 07:32:14 +00:00
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
2007-02-11 01:18:25 +00:00
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2008-05-15 07:32:14 +00:00
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
|
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2007-02-11 01:18:25 +00:00
|
|
|
|
You should have received a copy of the GNU General Public License
|
2017-09-13 22:52:52 +00:00
|
|
|
|
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2022-11-30 15:53:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Local variables:
|
|
|
|
|
coding: utf-8
|
|
|
|
|
mode: outline
|
|
|
|
|
mode: emacs-news
|
|
|
|
|
paragraph-separate: "[ ]"
|
|
|
|
|
end:
|