lisp/emacs-lisp/pp.el: Do not reimplement common macros; use `looking-at-p'.
[bpt/emacs.git] / etc / NEWS
index a37456f..3f84f39 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,29 +24,35 @@ so we will look at it and add it to the manual.
 \f
 * Installation Changes in Emacs 24.1
 
-** Configure links against libselinux if it is found.
-You can disable this by using --without-selinux.
+---
+** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
+to configure.  Note that other libraries used by Emacs, RSVG and GConf,
+also depend on Gtk+.  You can disable them with --without-rsvg and
+--without-gconf.
 
 ---
-** By default, the installed Info and man pages are compressed.
-You can disable this by configuring --without-compress-info.
+** Emacs can be compiled with GnuTLS support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-gnutls'.  See below for GnuTLS features.
 
 ---
-** There are new configure options:
---with-mmdf, --with-mail-unlink, --with-mailhost.
-These provide no new functionality, they just remove the need to edit
-lib-src/Makefile by hand in order to use the associated features.
+** Emacs can be compiled with SELinux support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-selinux'.  See below for SELinux features.
 
 ---
-** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
-to configure.  Note that other libraries used by Emacs, RSVG and GConf,
-also depend on Gtk+.  You can disable them with --without-rsvg and
---without-gconf.
+** Emacs can be compiled with ImageMagick support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-imagemagick'.  See below for ImageMagick features.
 
 ---
-** There is a new configure option --enable-use-lisp-union-type.
-This is only useful for Emacs developers to debug certain types of bugs.
-This is not a new feature; only the configure flag is new.
+** Emacs can be compiled with libxml2 support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-xml2'.  See below for libxml2 features.
 
 ---
 ** There is a new configure option --with-wide-int.
@@ -55,14 +61,19 @@ On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
 to about 2 GiB.
 
 ---
-** New translation of the Emacs Tutorial in Hebrew is available.
-Type `C-u C-h t' to choose it in case your language setup doesn't
-automatically select it.
+** By default, the installed Info and man pages are compressed.
+You can disable this by configuring --without-compress-info.
 
-** Emacs can be compiled with ImageMagick support.
-Emacs links to ImageMagick if version 6.2.8 or newer of the library is
-present at build time.  To inhibit ImageMagick, use the configure
-option `--without-imagemagick' .
+---
+** There are new configure options:
+--with-mmdf, --with-mail-unlink, --with-mailhost.
+These provide no new functionality, they just remove the need to edit
+lib-src/Makefile by hand in order to use the associated features.
+
+---
+** There is a new configure option --enable-use-lisp-union-type.
+This is only useful for Emacs developers to debug certain types of bugs.
+This is not a new feature; only the configure flag is new.
 
 ---
 ** The standalone programs digest-doc and sorted-doc are removed.
@@ -82,11 +93,9 @@ longer have any effect.  (They were declared obsolete in Emacs 23.)
 
 +++
 ** New command line option `--no-site-lisp' removes site-lisp directories
-from load-path.  -Q now implies this.
-
----
-** On Windows, Emacs now warns when the obsolete _emacs init file is used,
-and also when HOME is set to C:\ by default.
+from load-path.  -Q now implies this.  This option does not affect the
+EMACSLOADPATH environment variable (and hence has no effect for
+Nextstep builds.)
 
 \f
 * Changes in Emacs 24.1
@@ -231,6 +240,11 @@ cannot be encoded by the `terminal-coding-system'.
 *** `nobreak-char-display' now also highlights Unicode hyphen chars
 (U+2010 and U+2011).
 
+---
+*** New translation of the Emacs Tutorial in Hebrew is available.
+Type `C-u C-h t' to choose it in case your language setup doesn't
+automatically select it.
+
 ** Improved GTK integration
 +++
 *** GTK scroll-bars are now placed on the right by default.
@@ -265,14 +279,17 @@ Emacs.pane.menubar.font:  Courier-12
 Also, the first dash (which does not indicate anything) is just
 displayed as a space.
 
++++
 ** Basic SELinux support has been added.
 This requires Emacs to be linked with libselinux at build time.
 
++++
 *** Emacs preserves the SELinux file context when backing up, and
 optionally when copying files. To this end, copy-file has an extra
 optional argument, and backup-buffer and friends include the SELinux
 context in their return values.
 
++++
 *** The new functions file-selinux-context and set-file-selinux-context
 get and set the SELinux context of a file.
 ---
@@ -323,6 +340,7 @@ trashing.  This avoids inadvertently trashing temporary files.
 *** Calling `delete-file' or `delete-directory' with a prefix argument
 now forces true deletion, regardless of `delete-by-moving-to-trash'.
 
++++
 ** New option `list-colors-sort' defines the color sort order
 for `list-colors-display'.
 
@@ -363,7 +381,7 @@ the remote file-name cache is used for read access.
 Add an element (subdirs . nil) to the alist portion of any variables
 settings to indicate that the section should not apply to
 subdirectories.
-
++++
 *** Directory local variables can apply to some file-less buffers.
 Affected modes include dired, vc-dir, and log-edit.  For example,
 adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
@@ -373,6 +391,13 @@ turn on `whitespace-mode' for *vc-diff* buffers.  Modes should call
 *** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
 Instead, use "eval: (minor-mode 1)".
 
++++
+*** The variable `inhibit-first-line-modes-regexps' has been renamed
+to `inhibit-local-variables-regexps'.  As the name suggests, it now
+applies to ALL file local variables, not just -*- mode ones.
+The associated `inhibit-first-line-modes-suffixes' has been renamed
+in the corresponding way.
+
 +++
 ** The variable `focus-follows-mouse' now always defaults to nil.
 
@@ -427,11 +452,6 @@ These maximize and minimize the size of a window within its frame.
 These functions allow to navigate through the live buffers that have
 been shown in a specific window.
 
-+++
-*** New functions `window-state-get' and `window-state-put'.
-These functions allow to save and restore the state of an arbitrary
-frame or window as an Elisp object.
-
 ** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
 This is handy for minibuffer-only frames, and is also used for the "mouse-1
 pops up *Messages*" feature, which can now easily be changed.
@@ -691,26 +711,22 @@ utf-8, and do the normal `undecided' decoding for the rest.
 
 ** Eshell changes
 
-*** The default value of eshell-directory-name is a directory named
-"eshell" in `user-emacs-directory'.  If the old "~/.eshell/" directory
-exists, that is used instead.
+---
+*** The default value of `eshell-directory-name' has changed
+to be an "eshell" directory in `user-emacs-directory'.
+The old "~/.eshell/" directory is still used if it exists, though.
 
 ** gdb-mi
 +++
-*** GDB User Interface migrated to GDB Machine Interface and now
-supports multithread non-stop debugging and debugging of several
-threads simultaneously.
-
-** In ido-mode, C-v is no longer bound to ido-toggle-vc.
-The reason is that this interferes with cua-mode.
+*** The GDB User Interface has been migrated to GDB Machine Interface.
+It now supports multithread non-stop debugging and simultaneous
+debugging of several threads.
 
 ** Image mode
 
-*** RET (`image-toggle-animation') toggles animation, if the displayed
-image can be animated.
-
-*** Option `image-animate-loop', if non-nil, loops the animation.
-If nil, `image-toggle-animation' plays the animation once.
++++
+*** RET (`image-toggle-animation') toggles animation, if applicable.
+Animation plays once, unless the option `image-animate-loop' is non-nil.
 
 ** Info
 
@@ -729,8 +745,6 @@ and also because `Info-edit' is a rarely used command that is disabled
 by default.
 
 +++
-** The Landmark game is now invoked with `landmark', not `lm'.
-
 ** MH-E has been upgraded to MH-E version 8.3.1.
 See MH-E-NEWS for details.
 
@@ -903,6 +917,13 @@ They are superseded by shift-select-mode enabled by default in 23.1.
 
 ** Miscellaneous
 
++++
+*** The Landmark game is now invoked with `landmark', not `lm'.
+
+---
+*** In `ido-file-completion-map', C-v is no longer bound to ido-toggle-vc.
+(This interfered with cua-mode.)
+
 +++
 *** f90.el has some support for Fortran 2008 syntax.
 
@@ -974,13 +995,12 @@ coordinate in the POSITION list now counts from the top of the text
 area, excluding any header line.  Previously, it counted from the top
 of the header line.
 
-** Removed obsolete name `e' (use `float-e' instead).
-
 ** A backquote not followed by a space is now always treated as new-style.
 
-** Test for special mode-class was moved from view-file to view-buffer.
-FIXME: This only says what was changed, but not what are the
-programmer-visible consequences.
+---
+** view-buffer now treats special mode-class in the same way that
+view-file has since Emacs 22 (ie, it won't enable View mode if the
+major-mode is special).
 
 ** Passing a nil argument to a minor mode function now turns the mode
 ON unconditionally.
@@ -999,6 +1019,12 @@ similar to the ones created by shift-selection.  In previous Emacs
 versions, these regions were delineated by `mouse-drag-overlay', which
 has now been removed.
 
++++
+** The fourth argument of filter-buffer-substring, which says to remove
+text properties from the final result, has been removed.
+Eg simply pass the result through substring-no-properties if you need this.
+
+---
 ** cl.el no longer provides `cl-19'.
 
 ** The menu bar bindings's caches are not used any more.
@@ -1014,10 +1040,12 @@ x-make-font-bold-italic, mldrag-drag-mode-line, mldrag-drag-vertical-line,
 iswitchb-default-keybindings, char-bytes, isearch-return-char,
 make-local-hook
 
++++
 ** The following obsolete variables and varaliases were removed:
-checkdoc-minor-keymap, vc-header-alist, directory-sep-char, and
-font-lock-defaults-alist.
+checkdoc-minor-keymap, vc-header-alist, directory-sep-char,
+font-lock-defaults-alist, and e (use float-e).
 
+---
 ** The following obsolete files were removed:
 sc.el, x-menu.el, rnews.el, rnewspost.el
 
@@ -1026,19 +1054,20 @@ sc.el, x-menu.el, rnews.el, rnewspost.el
 \f
 * Lisp changes in Emacs 24.1
 
++++
 ** Code can now use lexical scoping by default instead of dynamic scoping.
 The `lexical-binding' variable lets code use lexical scoping for local
-variables.  It is typically set via file-local variables, in which case it
-applies to all the code in that file.
-
+variables.  It is typically set via a file-local variable in the first
+line of the file, in which case it applies to all the code in that file.
++++
 *** `eval' takes a new optional argument `lexical' to choose the new lexical
 binding instead of the old dynamic binding mode.
-
++++
 *** Lexically scoped interpreted functions are represented with a new form
 of function value which looks like (closure ENV ARGS &rest BODY).
 
 *** New macro `letrec' to define recursive local functions.
-
++++
 *** New function `special-variable-p' to check whether a variable is
 declared as dynamically bound.
 
@@ -1158,6 +1187,11 @@ state before the last buffer display operation in that window.
 iconifying or deleting a frame when burying a buffer shown in a dedicated
 frame or quitting a window showing a buffer in a frame of its own.
 
++++
+*** New functions `window-state-get' and `window-state-put'.
+These functions allow to save and restore the state of an arbitrary
+frame or window as an Elisp object.
+
 ** Completion
 
 *** New variable completion-extra-properties used to specify extra properties
@@ -1206,12 +1240,16 @@ passing the hook functions as arguments to a "wrapping" function.
 +++
 *** New macro `with-wrapper-hook' for running an abnormal hook as a
 set of "wrapping" filters, similar to around advice.
+(A version of this macro was actually added in Emacs 23.2 but was not
+advertised at the time.)
 
-** `server-eval-at' is provided to allow evaluating forms on different
-Emacs server instances.
++++
+** The new function `server-eval-at' allows evaluation of Lisp forms on
+named Emacs server instances, using TCP sockets.
 
-** `call-process' allows a `(:file "file")' spec to redirect STDOUT to
-a file.
++++
+** `call-process' and `call-process-region' allow a `(:file "file")' spec
+to redirect STDOUT to a file.
 
 ---
 ** Variable `stack-trace-on-error' removed.
@@ -1223,9 +1261,11 @@ jumping all the way to the top-level.
 ** The function format-time-string now supports the %N directive, for
 higher-resolution time stamps.
 
++++
 ** New function `read-char-choice' reads a restricted set of characters,
 discarding any inputs not inside the set.
 
++++
 ** `image-library-alist' is renamed to `dynamic-library-alist'.
 The variable is now used to load all kind of supported dynamic libraries,
 not just image libraries.  The previous name is still available as an
@@ -1241,11 +1281,13 @@ syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
 as-is; and syntax-propertize-rules which provides a new way to specify
 syntactic rules.
 
++++
 ** New hook post-self-insert-hook run at the end of self-insert-command.
 
 +++
 ** Syntax tables support a new "comment style c" additionally to style b.
 
+---
 ** frame-local variables cannot be let-bound any more.
 
 ** Major and minor mode changes
@@ -1253,16 +1295,21 @@ syntactic rules.
 *** `prog-mode' is a new major mode from which programming modes
 should be derived.
 
++++
 **** `prog-mode-hook' can be used to enable features for programming
 modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
 on-the-fly spell checking for comments and strings.
 
++++
 *** New hook `change-major-mode-after-body-hook', run by
 `run-mode-hooks' just before any other mode hooks.
 
-*** Enabled globalized minor modes can be disabled in specific modes,
-by running (FOO-mode-hook 0) via a mode hook.
++++
+*** Enabled globalized minor modes can be disabled in specific major modes.
+If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
+major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
 
++++
 *** `define-minor-mode' accepts a new keyword :variable.
 
 +++
@@ -1271,10 +1318,13 @@ Trashing is performed if TRASH and `delete-by-moving-to-trash' are
 both non-nil.  Interactively, TRASH defaults to t, unless a prefix
 argument is supplied (see Trash changes, above).
 
+---
 ** `facemenu-read-color' is now an alias for `read-color'.
-The command `read-color' now requires a match for a color name or RGB
-triplet, instead of signaling an error if the user provides a invalid
-input.
+
++++
+** The command `read-color' now requires a match for a color name
+or RGB triplet, instead of signaling an error if the user provides
+invalid input.
 
 ** Tool-bars can display separators.
 Tool-bar separators are handled like menu separators in menu-bar maps,
@@ -1282,55 +1332,52 @@ i.e. via menu entries of the form `(menu-item "--")'.
 
 ** Image API
 
++++
 *** Animated images support (currently animated gifs only).
 
++++
 **** `image-animated-p' returns non-nil if an image can be animated.
 
++++
 **** `image-animate' animates a supplied image spec.
 
++++
 **** `image-animate-timer' returns the timer object for an image that
 is being animated.
 
-*** `image-extension-data' is renamed to `image-metadata'.
+---
+*** `image-extension-data' has been renamed to `image-metadata'.
+The old name is an obsolete alias to the new one.
 
-*** If Emacs is compiled with ImageMagick support (see Startup
-Changes), the function `imagemagick-types' returns a list of image
-file extensions that your installation of ImageMagick supports.  The
+*** Emacs can be compiled with ImageMagick support.
+Then the function `imagemagick-types' returns a list of image file
+extensions that your installation of ImageMagick supports.  The
 function `imagemagick-register-types' enables ImageMagick support for
 these image types, minus those listed in `imagemagick-types-inhibit'.
 
 See the Emacs Lisp Reference Manual for more information.
 
 ** XML and HTML parsing
-
-*** If Emacs is compiled with libxml2 support (which is the default),
-two new Emacs Lisp-level functions are defined:
-`libxml-parse-html-region' (which will parse "real world" HTML)
-and `libxml-parse-xml-region' (which parses XML).  Both return an
-Emacs Lisp parse tree.
+If Emacs is compiled with libxml2 support, there are two new functions:
+`libxml-parse-html-region' (which parses "real world" HTML) and
+`libxml-parse-xml-region' (which parses XML).  Both return an Emacs
+Lisp parse tree.
 
 FIXME: These should be front-ended by xml.el.
 
 ** GnuTLS
 
-*** Emacs can be compiled with libgnutls support
-This is the default.  You will then be able to use the functionality
-in gnutls.el, namely the `open-gnutls-stream' and `gnutls-negotiate'
-functions.  It's easiest to use these functions through
-`open-network-stream' because it can upgrade connections through
-STARTTLS opportunistically or use plain SSL, depending on your needs.
-
-Only versions 2.8.x and higher or GnuTLS have been tested.
-[FIXME: this statement needs clarifying, given that GnuTLS >= 2.6.6
-is the test used by configure.]
-
-*** gnutls-log-level
-Set `gnutls-log-level' higher than 0 to get debug output.  1 is for
-important messages, 2 is for debug data, and higher numbers are as per
-the GnuTLS logging conventions.  The output is in *Messages*.
+*** New library `gnutls.el'.
+This requires Emacs to have been built with GnuTLS support.
+The main functions are `open-gnutls-stream' and `gnutls-negotiate'.
+It's easiest to use these functions through `open-network-stream'
+because it can upgrade connections through STARTTLS opportunistically
+or use plain SSL, depending on your needs.  For debugging, set
+`gnutls-log-level' greater than 0.
 
 ** Isearch
 
+---
 *** New hook `isearch-update-post-hook' that runs in `isearch-update'.
 
 +++
@@ -1341,6 +1388,7 @@ time you call `progress-reporter-update' on that progress reporter,
 with a nil or omitted VALUE argument, the reporter message is
 displayed with a "spinning bar".
 
++++
 ** New variable `revert-buffer-in-progress-p' is true while a buffer is
 being reverted, even if the buffer has a local `revert-buffer-function'.
 
@@ -1356,7 +1404,9 @@ as well as those in the -*- line.
 
 ** keymaps can inherit from multiple parents.
 
-** `debug-on-event' lets you debug Emacs when stuck because of inhibit-quit.
++++
+** Set `debug-on-event' to make Emacs enter the debugger e.g. on receipt
+of SIGUSR1.  This can be useful when `inhibit-quit' is set.
 
 +++
 ** New reader macro ## which stands for the empty symbol.
@@ -1364,38 +1414,60 @@ This means that the empty symbol can now be read back.  Also, #: by itself
 (when not immediately followed by a possible symbol character) stands for
 an empty uninterned symbol.
 
++++
+** New math functions `isnan', `copysign', `frexp', `ldexp'.
+
 ** Obsolete functions and variables
 
+---
+*** `tooltip-use-echo-area' is obsolete.
+Rather than setting this to t, disable Tooltip mode instead.
+
++++
 *** buffer-substring-filters is obsolete.
 Use `filter-buffer-substring-functions' instead.
 
+---
 *** `byte-compile-disable-print-circle' is obsolete.
 
+---
 *** `deferred-action-list' and `deferred-action-function' are obsolete.
+Use `post-command-hook' instead.
+
 +++
 *** `font-lock-maximum-size' is obsolete.
 
 \f
 * Changes in Emacs 24.1 on non-free operating systems
 
-** New configure.bat option --enable-checking builds Emacs with extra
-runtime checks.
+---
+** On MS Windows, Emacs warns when using the obsolete init file _emacs,
+and also when HOME is set to C:\ by default.
 
-** New configure.bat option --distfiles to specify files to be
-included in binary distribution.
+** New configure.bat options
 
-** New configure.bat option --without-gnutls to disable automatic
-GnuTLS detection.
++++
+*** --enable-checking builds Emacs with extra runtime checks.
 
-** New configure.bat option --lib for general library linkage, works
-with the USER_LIBS build variable.
++++
+*** --distfiles specifies files to be included in binary distribution.
 
++++
+*** --without-gnutls disables automatic GnuTLS detection.
+
++++
+*** --lib for general library linkage, works with the USER_LIBS build variable.
+
++++
 ** New make target `dist' to create binary distribution for MS Windows.
 
-** Function `w32-default-color-map' is now obsolete.
+---
+** The Lisp function `w32-default-color-map' is now obsolete.
+(It is only used internally in the Emacs C code.)
 
-** On Nextstep/OSX, the menu bar can be hidden by customizing
-ns-auto-hide-menu-bar.
++++
+** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
+reappear on mouse-over.  (Requires OS X 10.6 or later.)
 
 \f
 ----------------------------------------------------------------------