* lisp/mail/footnote.el (footnote-align-to-fn-text): New config var
[emacs.git] / etc / NEWS
blob1f8fe67152f64da318459cbe1ef255d17b351fd7
1 GNU Emacs NEWS -- history of user-visible changes.
3 Copyright (C) 2017 Free Software Foundation, Inc.
4 See the end of the file for license conditions.
6 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
7 If possible, use M-x report-emacs-bug.
9 This file is about changes in Emacs version 27.
11 See file HISTORY for a list of GNU Emacs versions and release dates.
12 See files NEWS.26, NEWS.25, ..., NEWS.18, and NEWS.1-17 for changes
13 in older Emacs versions.
15 You can narrow news to a specific version by calling 'view-emacs-news'
16 with a prefix argument or by typing C-u C-h C-n.
18 Temporary note:
19 +++ indicates that all necessary documentation updates are complete.
20     (This means all relevant manuals in doc/ AND lisp doc-strings.)
21 --- means no change in the manuals is needed.
22 When you add a new item, use the appropriate mark if you are sure it applies,
25 * Installation Changes in Emacs 27.1
27 ** The new configure option '--with-json' adds support for JSON using
28 the Jansson library.  It is on by default; use 'configure
29 --with-json=no' to build without Jansson support.  The new JSON
30 functions 'json-serialize', 'json-insert', 'json-parse-string', and
31 'json-parse-buffer' are typically much faster than their Lisp
32 counterparts from json.el.
34 ** Emacs has been ported to the -fcheck-pointer-bounds option of GCC.
35 This causes Emacs to check bounds of some arrays addressed by its
36 internal pointers, which can be helpful when debugging the Emacs
37 interpreter or modules that it uses.  If your platform supports it you
38 can enable it when configuring, e.g., './configure CFLAGS="-g3 -O2
39 -mmpx -fcheck-pointer-bounds"' on Intel MPX platforms.
41 ** Emacs now normally uses a pointer type instead of an integer type
42 for the fundamental word in the Emacs Lisp interpreter, to help
43 catch typos and support -fcheck-pointer-bounds.  The 'configure'
44 option --enable-check-lisp-object-type is therefore no longer as
45 useful and so is no longer enabled by default in developer builds,
46 to reduce differences between developer and production builds.
49 * Startup Changes in Emacs 27.1
52 * Changes in Emacs 27.1
54 ---
55 ** The new option 'tooltip-resize-echo-area' avoids truncating tooltip text
56 on GUI frames when tooltips are displayed in the echo area.  Instead,
57 it resizes the echo area as needed to accommodate the full tool-tip
58 text.
60 +++
61 ** New function 'logcount' calculates an integer's Hamming weight.
63 +++
64 ** New function 'libxml-available-p'.
65 This function returns non-nil if libxml support is both compiled in
66 and available at run time.  Lisp programs should use this function to
67 detect built-in libxml support, instead of testing for that
68 indirectly, e.g., by checking that functions like
69 'libxml-parse-html-region' return nil.
72 * Editing Changes in Emacs 27.1
74 ---
75 ** New variable 'x-wait-for-event-timeout'.
76 This controls how long Emacs will wait for updates to the graphical
77 state to take effect (making a frame visible, for example).
79 +++
80 ** New user option 'electric-quote-replace-double'.
81 This option controls whether '"' is replaced in 'electric-quote-mode',
82 in addition to other quote characters.  If non-nil, ASCII double-quote
83 characters that quote text "like this" are replaced by double
84 typographic quotes, “like this”, in text modes, and in comments and
85 strings in non-text modes.
88 * Changes in Specialized Modes and Packages in Emacs 27.1
90 ** Footnote-mode
91 *** Support Hebrew-style footnotes
92 *** Footnote text lines are now aligned.
93 Can be controlled via the new variable 'footnote-align-to-fn-text'.
95 ** CSS mode
97 ---
98 *** A new command 'css-cycle-color-format' for cycling between color
99 formats (e.g. "black" => "#000000" => "rgb(0, 0, 0)") has been added,
100 bound to 'C-c C-f'.
102 ** Dired
105 *** The new user option 'dired-create-destination-dirs' controls whether
106 'dired-do-copy' and 'dired-rename-file' should create non-existent
107 directories in the destination.
109 ** Ibuffer
112 *** New filter ibuffer-filter-by-process; bound to '/E'.
114 ** Edebug
117 *** The runtime behavior of Edebug's instrumentation can be changed
118 using the new variables 'edebug-behavior-alist',
119 'edebug-after-instrumentation-function' and
120 'edebug-new-definition-function'. Edebug's behavior can be changed
121 globally or for individual definitions.
123 ** Enhanced xterm support
125 *** New variable 'xterm-set-window-title' controls whether Emacs sets
126 the XTerm window title.  This feature is experimental and is disabled
127 by default.
129 ** Gamegrid
131 ** ERT
134 *** New variable 'ert-quiet' allows to make ERT output in batch mode
135 less verbose by removing non-essential information.
138 *** Gamegrid now determines its default glyph size based on display
139 dimensions, instead of always using 16 pixels. As a result, Tetris,
140 Snake and Pong are more playable on HiDPI displays.
142 ** Filecache
145 *** Completing filenames in the minibuffer via 'C-TAB' now uses the
146 styles as configured by the variable 'completion-styles'.
148 ** New macros 'thunk-let' and 'thunk-let*'.
149 These macros are analogue to 'let' and 'let*', but create bindings that
150 are evaluated lazily.
152 ** Eshell
155 *** Expansion of history event designators is disabled by default.
156 To restore the old behavior, use
158     (add-hook 'eshell-expand-input-functions
159               #'eshell-expand-history-references)
162 * New Modes and Packages in Emacs 27.1
165 ** Emacs can now visit files in archives as if they were directories.
166 This feature uses Tramp and works only on systems which support GVFS,
167 i.e. GNU/Linux, roughly spoken.  See the chapter "(tramp) Archive file
168 names" in the Tramp manual for full documentation of these facilities.
171 * Incompatible Lisp Changes in Emacs 27.1
173 ** The FILENAME argument to 'file-name-base' is now mandatory and no
174 longer defaults to 'buffer-file-name'.
177 ** The function 'eldoc-message' now accepts a single argument.
178 Programs that called it with multiple arguments before should pass
179 them through 'format' first.  Even that is discouraged: for ElDoc
180 support, you should set 'eldoc-documentation-function' instead of
181 calling 'eldoc-message' directly.
183 ** Old-style backquotes now generate an error.  They have been
184 generating warnings for a decade.
187 * Lisp Changes in Emacs 27.1
189 ** Internal parsing commands now use syntax-ppss and disregard
190 open-paren-in-column-0-is-defun-start.  This affects mostly things like
191 forward-comment, scan-sexps, and forward-sexp when parsing backward.
192 The new variable 'comment-use-syntax-ppss' can be set to nil to recover the old
193 behavior if needed.
196 ** The 'file-system-info' function is now available on all platforms.
197 instead of just Microsoft platforms.  This fixes a 'get-free-disk-space'
198 bug on OS X 10.8 and later (Bug#28639).
201 ** The function 'get-free-disk-space' returns now a non-nil value for
202 remote systems, which support this check.
205 ** The function 'make-string' accepts an additional optional argument.
206 If the optional third argument is non-nil, 'make-string' will produce
207 a multibyte string even if its second argument is an ASCII character.
209 ** New JSON parsing and serialization functions 'json-serialize',
210 'json-insert', 'json-parse-string', and 'json-parse-buffer'.  These
211 are implemented in C using the Jansson library.
214 * Changes in Emacs 27.1 on Non-Free Operating Systems
217 ----------------------------------------------------------------------
218 This file is part of GNU Emacs.
220 GNU Emacs is free software: you can redistribute it and/or modify
221 it under the terms of the GNU General Public License as published by
222 the Free Software Foundation, either version 3 of the License, or
223 (at your option) any later version.
225 GNU Emacs is distributed in the hope that it will be useful,
226 but WITHOUT ANY WARRANTY; without even the implied warranty of
227 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
228 GNU General Public License for more details.
230 You should have received a copy of the GNU General Public License
231 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
234 Local variables:
235 coding: utf-8
236 mode: outline
237 paragraph-separate: "[  \f]*$"
238 end: