1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
| | GNU Emacs NEWS -- history of user-visible changes.
Copyright (C) 2021 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'.
If possible, use 'M-x report-emacs-bug'.
This file is about changes in Emacs version 29.
See file HISTORY for a list of GNU Emacs versions and release dates.
See files NEWS.28, NEWS.27, ..., NEWS.18, and NEWS.1-17 for changes
in older Emacs versions.
You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing 'C-u C-h C-n'.
Temporary note:
+++ indicates that all relevant manuals in doc/ have been updated.
--- means no change in the manuals is needed.
When you add a new item, use the appropriate mark if you are sure it
applies, and please also update docstrings as needed.
\f
* Installation Changes in Emacs 29.1
\f
* Startup Changes in Emacs 29.1
+++
** Emacs now has a --fingerprint option.
This will output a string identifying the current Emacs build.
+++
** New hook 'after-pdump-load-hook'.
This is run at the end of the Emacs startup process, and it meant to
be used to reinitialize structures that would normally be done at load
time.
\f
* Changes in Emacs 29.1
** Help
---
*** Jumping to function/variable source now saves mark before moving point.
Jumping to source from "*Help*" buffer moves the point when the source
buffer is already open. Now, the old point is pushed to mark ring.
\f
* Editing Changes in Emacs 29.1
---
** Indentation of 'cl-flet' and 'cl-labels' has changed.
These forms now indent like this:
(cl-flet ((bla (x)
(* x x)))
(bla 42))
This change also affects 'cl-macrolet', 'cl-flet*' and
'cl-symbol-macrolet'.
+++
** New user option 'translate-upper-case-key-bindings'.
This can be set to nil to inhibit translating upper case keys to lower
case keys.
+++
** New command 'ensure-empty-lines'.
This command increases (or decreases) the number of empty lines before
point.
---
*** Improved mouse behavior with auto-scrolling modes.
When clicking inside the `scroll-margin' or `hscroll-margin' region
the point is now moved only when releasing the mouse button. This no
longer results in a bogus selection, unless the mouse has been
effectively dragged.
+++
** 'kill-ring-max' now defaults to 120.
---
** New user option 'yank-menu-max-items'.
Customize this option to limit the amount of entries in the menu
"Edit->Paste from Kill Menu". The default is 60.
\f
* Changes in Specialized Modes and Packages in Emacs 29.1
** image-dired
---
*** New command for the thumbnail buffer.
The new command 'image-dired-unmark-all-marks' has been added with a
binding in the menu.
---
*** info-look specs can now be expanded at run time instead of a load time.
The new ':doc-spec-function' element can be used to compute the
':doc-spec' element when the user asks for info on that particular
mode (instead of at load time).
** subr-x
+++
*** New macro 'with-memoization' provides a very primitive form of memoization
** ansi-color.el
---
*** Support for ANSI 256-color and 24-bit colors.
256-color and 24-bit color codes are now handled by ANSI color
filters and displayed with the specified color.
** term-mode
---
*** Support for ANSI 256-color and 24-bit colors, italic and other fonts.
Term-mode can now display 256-color and 24-bit color codes. It can
also handle ANSI codes for faint, italic and blinking text, displaying
it with new 'ansi-term-faint/italic/slow-blinking/fast-blinking'
faces.
** Xref
*** 'project-find-file' and 'project-or-external-find-file' now accept
a prefix argument which is interpreted to mean "include all files".
\f
* New Modes and Packages in Emacs 29.1
+++
** New mode 'erts-mode'.
This mode is used to edit files geared towards testing actions in
Emacs buffers, like indentation and the like. The new ert function
'ert-test-erts-file' is used to parse these files.
\f
* Incompatible Lisp Changes in Emacs 29.1
---
** The 'inhibit-changing-match-data' variable is now obsolete.
Instead, functions like 'string-match' and 'looking-at' now take an
optional 'inhibit-modify' argument.
---
** 'gnus-define-keys' is now obsolete.
Use 'define-keymap' instead.
---
** MozRepl has been removed from js.el.
MozRepl was removed from Firefox in 2017, so this code doesn't work
with recent versions of Firefox.
\f
* Lisp Changes in Emacs 29.1
+++
** :keys in 'menu-item' can now be a function.
If so, it is called whenever the menu is computed, and can be used to
calculate the keys dynamically.
+++
** New major mode 'clean-mode'.
This is a new major mode meant for debugging. It kills absolutely all
local variables and removes overlays and text properties.
+++
** 'kill-all-local-variables' can now kill all local variables.
If given the new optional KILL-PERMANENT argument, also kill permanent
local variables.
+++
** Third 'mapconcat' argument 'separator' is now optional.
An explicit nil always meant the empty string, now it can be left out.
---
** Themes can now be made obsolete.
Using 'make-obsolete' on a theme is now supported. This will make
'load-theme' issue a warning when loading the theme.
+++
** New function 'define-keymap'.
This function allows defining a number of keystrokes with one form.
+++
** New macro 'defvar-keymap'.
This macro allows defining keymap variables more conveniently.
\f
* Changes in Emacs 29.1 on Non-Free Operating Systems
\f
----------------------------------------------------------------------
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
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.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
\f
Local variables:
coding: utf-8
mode: outline
paragraph-separate: "[ \f]*$"
end:
|