]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
Amend parse-partial-sexp correctly to handle two character comment delimiters
[gnu-emacs] / etc / NEWS
index cd67dbeea683bb288c12d46f02ae614468ef4ca5..ea32153942671e6d7e88e4b7943fd03def2a416a 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -22,6 +22,183 @@ Temporary note:
 When you add a new item, use the appropriate mark if you are sure it applies,
 otherwise leave it unmarked.
 
+\f
+* Installation Changes in Emacs 25.2
+
++++
+** New configure option ‘--disable-build-details’ attempts to build an
+Emacs that is more likely to be reproducible; that is, if you build
+and install Emacs twice, the second Emacs is a copy of the first.
+Deterministic builds omit the build date from the output of the
+emacs-version and erc-cmd-SV functions, and the leave the following
+variables nil: emacs-build-system, emacs-build-time,
+erc-emacs-build-time.
+
+** Emacs no longer works on IRIX.  We expect that Emacs users are not
+affected by this, as SGI stopped supporting IRIX in December 2013.
+
+\f
+* Startup Changes in Emacs 25.2
+
+\f
+* Changes in Emacs 25.2
+
++++
+** A number of accessors for the value returned by `file-attributes'
+has been added.  They are: `file-attribute-type',
+`file-attribute-link-number', `file-attribute-user-id',
+`file-attribute-group-id', `file-attribute-access-time',
+`file-attribute-modification-time',
+`file-attribute-status-change-time', `file-attribute-size',
+`file-attribute-modes', `file-attribute-inode-number', and
+`file-attribute-device-number'
+
+---
+** The locale language name `ca' is now mapped to the language
+environment `Catalan', which has been added.
+
+---
+** `align-regexp' has a separate history for its interactive argument
+`align-regexp' no longer shares its history with all other
+history-less functions that use `read-string'
+
++++
+** The networking code has been reworked so that it's more
+asynchronous than it was (when specifying :nowait t in
+`make-network-process').  How asynchronous it is varies based on the
+capabilities of the system, but on a typical GNU/Linux system the DNS
+resolution, the connection, and (for TLS streams) the TLS negotiation
+are all done without blocking the main Emacs thread.  To get
+asynchronous TLS, the TLS boot parameters have to be passed in (see
+the manual for details).
+
+Certain process oriented functions (like `process-datagram-address')
+will block until socket setup has been performed.  The recommended way
+to deal with asynchronous sockets is to avoid interacting with them
+until they have changed status to "run".  This is most easily done
+from a process sentinel.
+
+** ‘make-network-process’ and ‘open-network-stream’ sometimes allowed
+:service to be an integer string (e.g., :service "993") and sometimes
+required an integer (e.g., :service 993).  This difference has been
+eliminated, and integer strings work everywhere.
+
+** It is possible to disable attempted recovery on fatal signals
+
+Two new variables allow to disable attempts to recover from stack
+overflow and to avoid automatic auto-save when Emacs is delivered a
+fatal signal.  `attempt-stack-overflow-recovery', if set to `nil',
+will disable attempts to recover from C stack overflows; Emacs will
+then crash as with any other fatal signal.
+`attempt-orderly-shutdown-on-fatal-signal', if set to `nil', will
+disable attempts to auto-save the session and shut down in an orderly
+fashion when Emacs receives a fatal signal; instead, Emacs will
+terminate immediately.  Both variables are non-`nil' by default.
+These variables are for users who would like to avoid the small
+probability of data corruption due to techniques Emacs uses to recover
+in these situations.
+
+\f
+* Editing Changes in Emacs 25.2
+
+\f
+* Changes in Specialized Modes and Packages in Emacs 25.2
+
+** eww
+
++++
+*** A new `s' command for switching to another eww buffer via the minibuffer.
+
+---
+*** The `o' command (`shr-save-contents') has moved to `O' to avoid collision
+with the `o' command from `image-map'.
+
++++
+** The commands that add ChangeLog entries now prefer a VCS root directory
+for the ChangeLog file, if none already exists.  Customize
+`change-log-directory-files' to nil for the old behavior.
+
+---
+** Support for non-string values of `time-stamp-format' has been removed.
+
+** Tramp
+
++++
+*** New connection method "sg", which allows to edit files under
+different group ID.
+
++++
+*** New connection method "doas" for OpenBSD hosts.
+
+---
+** `auto-revert-use-notify' is set back to t in `global-auto-revert-mode'.
+
+\f
+* New Modes and Packages in Emacs 25.2
+
+\f
+* Incompatible Lisp Changes in Emacs 25.2
+
++++
+** Resizing a frame no longer runs `window-configuration-change-hook'.
+Put your function on `window-size-change-functions' instead.
+
+\f
+* Lisp Changes in Emacs 25.2
+
+** New var syntax-ppss-table to control the syntax-table used in syntax-ppss
+
+** Autoload files can be generated without timestamps,
+by setting `autoload-timestamps' to nil.
+FIXME As an experiment, nil is the current default.
+If no insurmountable problems before next release, it can stay that way.
+
+** `ert-with-function-mocked' of 'ert-x package allows mocking of functions
+in unit tests.
+
+---
+** `gnutls-boot' now takes a parameter :complete-negotiation that says
+that negotiation should complete even on non-blocking sockets.
+
++++
+** New functions `window-pixel-width-before-size-change' and
+`window-pixel-height-before-size-change' allow to detect which window
+changed size when `window-size-change-functions' are run.
+
++++
+** New function `display-buffer-reuse-mode-window' is an action function
+suitable for use in `display-buffer-alist'. For example, to avoid creating
+a new window when opening man pages when there's already one, use
+(add-to-list 'display-buffer-alist
+     '("\\`\\*Man .*\\*\\'" .
+       (display-buffer-reuse-mode-window
+        (inhibit-same-window . nil)
+        (mode . Man-mode))))
+
++++
+** `parse-partial-sexp' state has a new element.  Element 10 is
+non-nil when the last character scanned might be the first character
+of a two character construct, i.e. a comment delimiter or escaped
+character.  Its value is the syntax of that last character.
+
++++
+** `parse-partial-sexp''s state, element 9, has now been confirmed as
+permanent and documented, and may be used by Lisp programs.  Its value
+is a list of currently open parenthesis positions, starting with the
+outermost parenthesis.
+
+\f
+* Changes in Emacs 25.2 on Non-Free Operating Systems
+
+** Intercepting hotkeys on Windows 7 and later now works better.
+The new keyboard hooking code properly grabs system hotkeys such as
+Win-* and Alt-TAB, in a way that Emacs can get at them before the
+system.  This makes the `w32-register-hot-key' functionality work
+again on all versions of MS-Windows starting with Windows 7.  On
+Windows NT and later you can now register any hotkey combination.  (On
+Windows 9X, the previous limitations, spelled out in the Emacs manual,
+still apply.)
+
 \f
 * Installation Changes in Emacs 25.1
 
@@ -180,17 +357,33 @@ change in future releases.  For that reason, their support is disabled
 by default, and must be enabled by using the `--with-modules' option
 at configure time.
 
++++
+** A second dir-local file (.dir-locals-2.el) is now accepted.
+See the variable `dir-locals-file-2' for more information.
+
 +++
 ** Network security (TLS/SSL certificate validity and the like) is
 added via the new Network Security Manager (NSM) and controlled via
 the `network-security-level' variable.
 
+---
+** International domain names (IDNA) are now encoded via the new
+puny.el library, so that one can visit web sites like
+"http://méxico.icom.museum".
+
 +++
 ** C-h l now also lists the commands that were run.
 
+** The new M-s M-w key binding uses eww to search the web for the
+text in the region.
+
 +++
-** x-select-enable-clipboard is renamed select-enable-clipboard
-and x-select-enable-primary is renamed select-enable-primary.
+** The new `timer-list' command lists all active timers in a buffer
+where you can cancel them with the `c' command.
+
+** M-x suggests shorthands and ignores obsolete commands for completion.
+** x-select-enable-clipboard is renamed select-enable-clipboard.
+x-select-enable-primary and renamed select-enable-primary.
 Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
 name it), with the proviso that on some systems (e.g. Windows)
 select-enable-primary is ineffective since the system doesn't
@@ -205,6 +398,10 @@ selected window is strongly dedicated to its buffer.
 ** The option `even-window-heights' has been renamed to
 `even-window-sizes' and now handles window widths as well.
 
++++
+** New function `read-multiple-choice' use to prompt for
+multiple-choice questions, with a handy way to display help texts.
+
 +++
 ** terpri gets an optional arg ENSURE to conditionally output a newline.
 
@@ -227,14 +424,6 @@ for use in Emacs bug reports.
 hiding character but the default `.' can be used by let-binding the
 variable `read-hide-char'.
 
-+++
-** The Emacs pseudo-random number generator can be securely seeded.
-On system where Emacs can access the system entropy or some other
-cryptographically secure random stream, it now uses that when `random'
-is called with its argument `t'.  This allows cryptographically strong
-random values; in particular, the Emacs server now uses this facility
-to produce its authentication key.
-
 ---
 ** New input methods: `tamil-dvorak' and `programmer-dvorak'.
 
@@ -326,6 +515,11 @@ is intended for adding to 'kill-emacs-query-functions'.
 in favor of the global `M-s h' bindings introduced in Emacs-23.1.
 They'll disappear soon.
 
++++
+** New bindings for 'query-replace-map'.
+`undo', undo the last replacement; bound to `u'.
+`undo-all', undo all replacements; bound to `U'.
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 25.1
 
@@ -456,6 +650,9 @@ obsolete alias for the new `save-place-local-mode' command.
 `erc-network-hide-list' and `erc-channel-hide-list' will only hide the
 specified message types for the respective specified targets.
 
+*** New variable `erc-default-port-tls' used to connect to TLS IRC
+servers.
+
 ---
 *** Reconnection is now asynchronous.
 
@@ -623,30 +820,30 @@ item as before.
 
 +++
 *** `isearch' and `query-replace' can now perform character folding in matches.
-Isearch does that by default, while `query-replace' will do that if
-the new variable `replace-character-fold' is customized to a non-nil
-value.  This is analogous to case folding, but instead of disregarding
-case variants, it disregards wider classes of distinctions between
-similar characters.  (Case folding is a special case of character
-folding.)  This means many characters in the search string will match
-entire groups of characters instead of just themselves.
-
-For instance, the " will match all variants of double quotes (like “
-and ”), and the letter a will match all of its accented cousins, even
-those composed of multiple characters, as well as many other symbols
-like ℀, ℁, ⒜, and ⓐ.
+This is analogous to case folding, but instead of disregarding case
+variants, it disregards wider classes of distinctions between similar
+characters.  (Case folding is a special case of character folding.)
+This means many characters in the search string will match entire
+groups of characters instead of just themselves.
+
+For instance, the ASCII double quote character " will match all
+variants of double quotes (like “ and ”), and the letter a will match
+all of its accented cousins, even those composed of multiple
+characters, as well as many other symbols like ℀, ℁, ⒜, and ⓐ.
 
 Character folding is enabled by customizing `search-default-mode' to
-the value `character-fold-to-regexp'.  If you want to turn character
-folding off, customize the value of `search-default-mode' to the `nil'
-value.  You can also toggle character folding in the middle of a
-search by typing `M-s ''.
+the value `character-fold-to-regexp'.  You can also toggle character
+folding in the middle of a search by typing `M-s ''.
+
+`query-replace' honors character folding if the new variable
+`replace-character-fold' is customized to a non-nil value.
 
 +++
 *** New user option `search-default-mode'.
 This option specifies the default mode for Isearch.  The default
-value, `character-fold-to-regexp' specifies that Isearch should fold
-characters when searching.
+value, nil specifies that Isearch does literal searches (however,
+`case-fold-search' and `isearch-lax-whitespace' may still be applied,
+as in previous Emacs versions).
 
 +++
 *** New function `character-fold-to-regexp' can be used
@@ -704,11 +901,27 @@ useful when, for example, one needs to distinguish various spaces (e.g. ] [,
 whether to use variable-pitch fonts or not.  The user can also
 customize the `shr-use-fonts' variable.
 
++++
+*** A new command `C' (`eww-toggle-colors') can be used to toggle
+whether to use the HTML-specified colors or not.  The user can also
+customize the `shr-use-colors' variable.
+
 +++
 *** A new command `R' (`eww-readable') will try do identify the main
 textual parts of a web page and display only that, leaving menus and
 the like off the page.
 
++++
+*** A new command `D' (`eww-toggle-paragraph-direction') allows you to
+toggle the paragraph direction between left-to-right and right-to-left.
+
+---
+*** Images that are being loaded are now marked with grey
+"placeholder" images of the size specified by the HTML.  They are then
+replaced by the real images asynchronously, which will also now
+respect width/height HTML specs (unless they specify widths/heights
+bigger than the current window).
+
 ---
 *** You can now use several eww buffers in parallel by renaming eww
 buffers you want to keep separate.
@@ -748,6 +961,17 @@ invalid certificates are marked in red.
 *** text/html messages that contain inline image parts will be
 transformed into multipart/related messages before sending.
 
+---
+*** The `message-valid-fqdn-regexp' variable has been removed, since
+there are now top-level domains added all the time.  Message will no
+longer warn about sending emails to top-level domains it hasn't heard
+about.
+
+*** `message-beginning-of-line' (bound to C-a) understands folded headers.
+In `visual-line-mode' it will look for the true beginning of a header
+while in non-`visual-line-mode' it will move the point to the indented
+header’s value.
+
 +++
 ** In Show Paren Mode, a parenthesis can be highlighted when point
 stands inside it, and certain parens can be highlighted when point is
@@ -759,6 +983,30 @@ respectively, `show-paren-when-point-inside-paren' or
 ** If gpg2 exists on the system, it is now used as the default value
 of `epg-gpg-program' (instead of gpg).
 
+** Images
+
++++
+*** Images are automatically scaled before displaying based on the
+`image-scaling-factor' variable (if Emacs supports scaling the images
+in question).
+
++++
+*** Images inserted with `insert-image' and related functions get a
+keymap put into the text properties (or overlays) that span the
+image.  This keymap binds keystrokes for manipulating size and
+rotation, as well as saving the image to a file.  These commands are
+also available in `image-mode'.
+
++++
+*** A new library for creating and manipulating SVG images has been
+added.  See the "SVG Images" section in the lispref manual for
+details.
+
++++
+*** New setf-able function to access and set image parameters is
+provided: `image-property'.
+
+
 ** Lisp mode
 
 ---
@@ -846,6 +1094,8 @@ to produce a neat summary.
 
 ---
 ** New js.el option `js-indent-first-init'.
+It was renamed from `js-indent-first-initialiser', to avoid issues
+with American vs British spelling.
 
 ** Info
 
@@ -923,11 +1173,20 @@ a function.
 to specify that we're running in a noninteractive context, and that
 we should not be queried about things like TLS certificate validity.
 
+---
+*** `url-mime-accept-string' can now be used as in "interface"
+variable, meaning you can bind it around an `url-retrieve' call.
+
 ---
 *** If URL is used with a https connection, the first callback argument
 plist will contain a :peer element that has the output of
 `gnutls-peer-status' (if Emacs is built with GnuTLS support).
 
++++
+*** The new function `url-cookie-delete-cookie' can be used to
+programmatically delete all cookies, or cookies from a specific
+domain.
+
 ** Tramp
 
 +++
@@ -977,6 +1236,11 @@ This command is useful when you perform version control commands
 outside Emacs (e.g., from the shell prompt), or if you switch the VC
 back-end for the buffer's file, or remove it from version control.
 
+---
+*** The VC state indicator in the mode line now defaults to more
+colorful faces to make it more obvious to the user what the state is.
+See the `vc-faces' customization group.
+
 +++
 *** New option `vc-annotate-background-mode' controls whether
 the color range from `vc-annotate-color-map' is applied to the
@@ -1218,9 +1482,15 @@ make the new option `eshell-destroy-buffer-when-process-dies' non-nil.
 ** tar-mode: new `tar-new-entry' command, allowing for new members to
 be added to the archive.
 
+** Autorevert
+
+---
+*** Dired buffers are also auto-reverted via file notifications, if
+Emacs is compiled with file notification support.
+
 ---
-** Autorevert: dired buffers are also auto-reverted via file
-notifications, if Emacs is compiled with file notification support.
+*** `auto-revert-use-notify' is set to nil in `global-auto-revert-mode'.
+See <http://debbugs.gnu.org/22814>.
 
 ** File Notifications
 
@@ -1248,6 +1518,15 @@ compression command is determined from the new
 `dired-compress-files-alist' variable.
 
 +++
+*** In wdired, when editing files to contain slash characters,
+the resulting directories are automatically created.  Whether
+to do this or not is controlled by the
+`wdired-create-parent-directories' variable.
+
++++
+*** `W' is now bound to `browse-url-of-dired-file', and is useful for
+viewing HTML files and the like.
+
 *** New user interface for the `A' and `Q' commands.
 These keys, now bound to `dired-do-find-regexp' and
 `dired-do-find-regexp-and-replace', work similarly to `xref-find-apropos'
@@ -1344,14 +1623,6 @@ eliminated.
 Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN
 slot in font-lock-defaults.
 
-+++
-** The new implementation of Subword mode affects word movement everywhere.
-When Subword mode is turned on, `forward-word', `backward-word', and
-everything that uses them will move by sub-words, effectively
-overriding the buffer's syntax table.  Lisp programs that shouldn't be
-affected by Subword mode should call the new functions
-`forward-word-strictly' and `backward-word-strictly' instead.
-
 +++
 ** `package-initialize' now sets `package-enable-at-startup' to nil if
 called during startup.  Users who call this function in their init
@@ -1390,6 +1661,14 @@ symbol-function was changed not to signal `void-function' any more.
 ** Comint, term, and compile do not set the EMACS env var any more.
 Use the INSIDE_EMACS environment variable instead.
 
+** `C-up', `C-down', `C-left' and `C-right' are now defined in term
+mode to send the same escape sequences that xterm does.  This makes
+things like forward-word in readline work.
+
+---
+** hideshow mode got four key bindings that are analogous to outline
+mode bindings: `C-c @ C-a',  `C-c @ C-t',  `C-c @ C-d', and `C-c @ C-e.'
+
 +++
 ** `save-excursion' does not save&restore the mark any more.
 Use `save-mark-and-excursion' if you want the old behavior.
@@ -1484,6 +1763,10 @@ behavior, set `diff-switches' to `-c'.
 dynamically.  Any third-party code that changes these templates should
 be updated accordingly.
 
+** The grep/rgrep/lgrep functions will now ask about saving files
+before running.  This is controlled by the `grep-save-buffers'
+variable.
+
 +++
 ** ‘(/ N)’ is now equivalent to ‘(/ 1 N)’ rather than to ‘(/ N 1)’.
 The new behavior is compatible with Common Lisp and with XEmacs.
@@ -1589,6 +1872,10 @@ details.
 It should be placed right where the docstring would be, and FORM is then
 evaluated (and should return a string) when the closure is built.
 
+---
+** The new command `fortune-message' has been added, which displays
+fortunes in the echo area.
+
 +++
 ** define-inline provides a new way to define inlinable functions.
 
@@ -1615,6 +1902,12 @@ environment.  For the time being this is implemented for modern POSIX
 systems and for MS-Windows, for other systems they fall back to their
 counterparts `string-lessp' and `string-equal'.
 
++++
+** The new function `string-version-lessp' compares strings by
+interpreting consecutive runs of numerical characters as numbers, and
+compares their numerical values.  According to this predicate,
+"foo2.png" is smaller than "foo12.png".
+
 ---
 *** The ls-lisp package uses `string-collate-lessp' to sort file names.
 The effect is that, on systems that use ls-lisp for Dired, the default
@@ -1804,6 +2097,14 @@ coding-system of your choice when invoking functions like `prin1' and
 ** New possible value for `system-type': `nacl'.
 This is used by Google's Native Client (NaCl).
 
+---
+** `read-color' will now display the color names using the color itself
+as the background color.
+
+---
+** There is now a new variable `flyspell-sort-corrections-function'
+that allows changing the way corrections are sorted.
+
 ** Miscellaneous name change
 
 ---
@@ -1911,7 +2212,7 @@ Those features have been deprecated in Gtk+ for a long time.
 +++
 *** etags no longer qualifies class members by default.
 
-By default, `etags' will not qualify class members for C-like
+By default, `etags' will not qualify class members for Perl and C-like
 object-oriented languages with their class names and namespaces, and
 will remove qualifications used explicitly in the code from the tag
 names it puts in TAGS files.  This is so the etags.el back-end for
@@ -1919,8 +2220,8 @@ names it puts in TAGS files.  This is so the etags.el back-end for
 positives.
 
 Use --class-qualify (-Q) if you want the old default behavior of
-qualifying class members in C++, Java, and Objective C.  Note that
-using -Q might make some class members become "unknown" to `M-.'
+qualifying class members in C++, Java, Objective C, and Perl.  Note
+that using -Q might make some class members become "unknown" to `M-.'
 (`xref-find-definitions'); if so, you can use `C-u M-.' to specify the
 qualified names by hand.