Merge from emacs-24; up to 2012-11-15T23:31:37Z!dancol@dancol.org
[bpt/emacs.git] / etc / NEWS
index 337dfc3..57e4098 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -21,6 +21,52 @@ When you add a new item, please add it without either +++ or ---
 so we will look at it and add it to the manual.
 
 \f
+* Installation Changes in Emacs 24.4
+* Startup Changes in Emacs 24.4
+* Changes in Emacs 24.4
+* Editing Changes in Emacs 24.4
+
+\f
+* Changes in Specialized Modes and Packages in Emacs 24.4
+
++++
+** New function `ses-rename-cell' to give SES cells arbitrary names.
+
+\f
+* New Modes and Packages in Emacs 24.4
+** New nadvice.el package offering lighter-weight advice facilities.
+It is layered as:
+- add-function/remove-function which can be used to add/remove code on any
+  function-carrying place, such as process-filters or `<foo>-function' hooks.
+- advice-add/advice-remove to add/remove a piece of advice on a named function,
+  much like `defadvice' does.
+
+* Incompatible Lisp Changes in Emacs 24.4
+
+** `defadvice' does not honor the `freeze' flag and cannot advise
+special-forms any more.
+
+** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
+VAR was bound to nil which was not tremendously useful and just lead to
+spurious warnings about an unused var.
+
+* Lisp changes in Emacs 24.4
+
+** New function special-form-p.
+** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
+text-property on the first char.
+
+** The `defalias-fset-function' property lets you catch calls to defalias
+and redirect them to your own function instead of `fset'.
+
+* Changes in Emacs 24.4 on non-free operating systems
+
++++
+** The "generate a backtrace on fatal error" feature now works on MS Windows.
+The backtrace is written to the 'emacs_backtrace.txt' file in the
+directory where Emacs was running.
+
+\f
 * Installation Changes in Emacs 24.3
 
 ---
@@ -62,10 +108,11 @@ overwriting "emacs" in the installation bin/ directory with a link
 to emacs-VERSION.
 
 ---
-** The configure option `--program-transform-name' applies to more than
-just the installed binaries.  Now it also affects the man pages, icons,
-and desktop file.  It does not affect the info pages, since this would
-break links between the various manuals.
+** The configure options `--program-prefix', `--program-suffix', and
+`--program-transform-name' apply to more than just the installed
+binaries.  Now they also affect the man pages, icons, and the
+etc/emacs.desktop file; but not the info pages, since this would break
+links between the various manuals.
 
 ---
 ** Emacs uses libtinfo in preference to libncurses, if available.
@@ -75,20 +122,11 @@ break links between the various manuals.
 /usr/pkg/lib to the linker search path.  You must add them yourself if
 you want them.
 
----
-** On Mac OS X, configure no longer automatically adds the Fink /sw
-directories to the search path.  You must add them yourself if you want them.
-
 ---
 ** The standalone scripts rcs-checkin and vcdiff have been removed
 (from the bin and libexec directories, respectively).  The former is
 no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
 
----
-** The native Windows user interface is available for Cygwin.  Passing
---with-w32 will configure a Cygwin emacs to use the Windows user
-interface instead of the default, X11.
-
 \f
 * Startup Changes in Emacs 24.3
 
@@ -103,26 +141,19 @@ been adding them there, put them somewhere else, eg site-lisp.
 \f
 * Changes in Emacs 24.3
 
-** minibuffer-electric-default-mode can rewrite (default ...) to [...].
-Just set minibuffer-eldef-shorten-default to t before enabling the mode.
-
 +++
 ** Most y-or-n prompts now allow you to scroll the selected window.
 Typing C-v or M-v at a y-or-n prompt scrolls forward or backward
 respectively, without exiting from the prompt.
 
----
-** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
-next and previous path separator, respectively.
-
 ** Mode line changes
 ---
 *** New option `mode-line-default-help-echo' specifies the help text
 (shown in a tooltip or in the echo area) for any part of the mode line
 that does not have its own specialized help text.
-
-*** You can now click mouse-3 in the coding system indicator to
-invokes `set-buffer-file-coding-system'.
++++
+*** You can now click mouse-3 in the coding system indicator to invoke
+`set-buffer-file-coding-system'.
 
 ** Help changes
 
@@ -138,11 +169,19 @@ correctly.  To disable this, set `help-enable-auto-load' to nil.
 even after their associated libraries have been loaded (and the
 autoloads have been redefined as functions).
 
+** Minibuffer changes
+---
+*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
+next and previous path separator, respectively.
++++
+*** minibuffer-electric-default-mode can rewrite (default ...) to [...].
+Just set minibuffer-eldef-shorten-default to t before enabling the mode.
+
++++
 ** ImageMagick support, if available, is automatically enabled.
 It is no longer necessary to call `imagemagick-register-types'
 explicitly to install ImageMagick image types; that function is called
-automatically at startup, or when customizing a relevant imagemagick-
-option.
+automatically at startup, or when customizing an imagemagick- option.
 +++
 *** Setting `imagemagick-types-inhibit' to t now disables the use of
 ImageMagick to view images.  You must call imagemagick-register-types
@@ -164,6 +203,7 @@ or expression to evaluate.
 ---
 *** New option `server-auth-key' specifies a shared server key.
 
++++
 ** In the Package Menu, newly-available packages are listed as "new",
 and sorted above the other "available" packages by default.
 
@@ -171,6 +211,7 @@ and sorted above the other "available" packages by default.
 ** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
 This minor mode replaces `toggle-read-only', which is now obsolete.
 
++++
 ** Emacs now generates backtraces on fatal errors.
 On encountering a fatal error, Emacs now outputs a textual description
 of the fatal signal, and a short backtrace on platforms like glibc
@@ -203,9 +244,7 @@ The PCL-CVS commands are still available via the keyboard.
 ---
 *** New input method `vietnamese-vni'.
 
-** NextStep/OSX port changes.
----
-*** OSX 10.4 or newer is required to build Emacs.
+** Nextstep (GNUstep / Mac OS X) port changes
 ---
 *** Fullscreen and frame parameter fullscreen is supported.
 ---
@@ -238,7 +277,7 @@ This applies to both ordinary and regexp Isearch.
 *** New option `replace-lax-whitespace'.
 If non-nil, `query-replace' uses flexible whitespace matching too.
 The default is nil.
-
++++
 *** Global `M-s _' starts a symbol (identifier) incremental search,
 and `M-s _' in Isearch toggles symbol search mode.
 `M-s c' in Isearch toggles search case-sensitivity.
@@ -272,6 +311,7 @@ append-to-register and M-x prepend-to-register.
 ** New command `C-x r M-w' (copy-rectangle-as-kill).
 It copies the region-rectangle as the last rectangle kill.
 
++++
 ** New option `yank-handled-properties' allows processing of text
 properties on yanked text, in more ways that are more general than
 just removing them, as done by `yank-excluded-properties'.
@@ -309,6 +349,7 @@ Customize `cal-html-holidays' to change this.
 
 ** CL
 
++++
 *** CL's main entry is now (require 'cl-lib).
 `cl-lib' is like the old `cl' except that it uses the namespace cleanly,
 i.e. all its definitions have the "cl-" prefix (and internal definitions use
@@ -319,37 +360,53 @@ under the name `cl-foo' instead, with the exceptions of the few definitions
 that had to use `foo*' to avoid conflicts with pre-existing Elisp entities,
 which have not been renamed to `cl-foo*' but just `cl-foo'.
 
-The old `cl' is now deprecated and is just a bunch of aliases that
-provide the old non-prefixed names.
+The old `cl' is now deprecated and is mainly just a bunch of aliases that
+provide the old non-prefixed names.  Some exceptions are listed below.
 
++++
 *** `cl-flet' is not like `flet' (which is deprecated).
 Instead it obeys the behavior of Common-Lisp's `flet'.
+In particular, in cl-flet function definitions are lexically scoped,
+whereas in flet the scoping is dynamic.
 
++++
 *** `cl-labels' is slightly different from `labels'.
 The difference is that it relies on the `lexical-binding' machinery (as opposed
 to the `lexical-let' machinery used previously) to capture definitions in
 closures, so such closures will only work if `lexical-binding' is in use.
 
++++
+*** `cl-letf' is not exactly like `letf'.
+The only difference is in details that relate to some deprecated usage
+of `symbol-function' in place forms.
+
++++
 *** `progv' was rewritten to use the `let' machinery.
 A side effect is that vars without corresponding value are bound to nil
 rather than making them unbound.
 
-** Compilation mode
++++
+*** The following methods of extending `setf' are obsolete
+(use features from gv.el instead):
+`define-modify-macro' (use `gv-letplace')
+`defsetf' (use `gv-define-simple-setter' or `gv-define-setter')
+`define-setf-expander' (use `gv-define-setter' or `gv-define-expander')
+`get-setf-method' no longer exists (see "Incompatible Lisp Changes")
 
-*** New option `compilation-always-kill'.
++++
+** New compilation option `compilation-always-kill'.
 
 ** Customize
-
+---
 *** `custom-reset-button-menu' now defaults to t.
-
+---
 *** Non-option variables are never matched in `customize-apropos' and
 `customize-apropos-options' (i.e. the prefix argument does nothing for
 these commands now).
 
-** Desktop
-
-*** `desktop-path' no longer includes the "." directory.  Desktop
-files are now located in ~/.emacs.d by default.
+---
+** `desktop-path' no longer includes the "." directory.
+Desktop files are now located in ~/.emacs.d by default.
 
 ** D-Bus
 
@@ -383,85 +440,98 @@ details.
 
 ** Diff mode
 
+---
 *** Changes are now highlighted using the same color scheme as in
 modern VCSes.  Deletions are displayed in red (new faces
-`diff-refine-removed' and `smerge-refined-removed' and new definition
+`diff-refine-removed' and `smerge-refined-removed', and new definition
 of `diff-removed'), insertions in green (new faces `diff-refine-added'
-and `smerge-refined-added' and new definition of `diff-added').
+and `smerge-refined-added', and new definition of `diff-added').
 
+---
 *** The variable `diff-use-changed-face' defines whether to use the
 face `diff-changed', or `diff-removed' and `diff-added' to highlight
 changes in context diffs.
 
-*** The new command `diff-remove-trailing-whitespace' fixes trailing
-whitespace problems introduced by the diff.
++++
+*** The new command `diff-delete-trailing-whitespace' removes trailing
+whitespace introduced by a diff.
 
 ** Dired
-
++++
 *** `dired-do-async-shell-command' executes each file sequentially
 if the command ends in `;' (when operating on multiple files).
 Otherwise, it executes the command on each file in parallel.
-
+---
 *** Typing M-n in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
 `dired-do-chown', `dired-do-touch' pulls the file attributes of the
 file at point.
-
++++
 *** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
 `DEL' (`dired-unmark-backward'), `d' (`dired-flag-file-deletion')
 mark/unmark/flag all files in the active region.
-
++++
 *** The minibuffer default for `=' (`dired-diff) has changed.
 It is now the backup file for the file at point, if one exists.
 In Transient Mark mode the default is the file at the active mark.
-
++++
 *** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
 The global binding for `M-=', `count-words-region' is in effect.
 
+---
 ** Ediff now uses the same color scheme as Diff mode.
 
-** erc will look up server/channel names via auth-source and use the
-channel keys found, if any.
+** ERC
 
++++
+*** New module "notifications", which can send a notification when you
+receive a private message or your nickname is mentioned.
+
++++
+*** ERC will look up server/channel names via auth-source and use any
+channel keys found.
+
++++
+*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but
+only applies to messages sent by lurkers.
+
++++
 ** Flymake uses fringe bitmaps to indicate errors and warnings.
 See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
 `flymake-warning-bitmap'.
 
-** Follow mode
-
-*** The obsolete variable `follow-mode-off-hook' has been removed.
-
-*** Follow mode no longer works by using advice.
+---
+** Follow mode no longer works by using advice.
 The option `follow-intercept-processes' has been removed.
 
-** FFAP
-
-*** The option `ffap-url-unwrap-remote' can now be a list of strings,
-specifying URL types which should be converted to remote file names at
+---
+** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
+specifying URL types that should be converted to remote file names at
 the FFAP prompt.  The default is now '("ftp").
 
-** Generic-x
-`javascript-generic-mode' is now an obsolete alias for `js-mode'.
-
-** Ibuffer
-
-*** New `derived-mode' filter, bound to `/ M'.
+---
+** New Ibuffer `derived-mode' filter, bound to `/ M'.
 The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
 
-** Mouse Avoidance mode
+---
+** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
 
-The new variable `mouse-avoidance-banish-position' can now be used to
-customize Mouse Avoidance mode further.
++++
+** New option `mouse-avoidance-banish-position' specifies where the
+`banish' mouse avoidance setting moves the mouse.
 
 +++
 ** notifications.el supports now version 1.2 of the Notifications API.
 The function `notifications-get-capabilities' returns the supported
 server properties.
 
+---
 ** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
 closing brackets to be aligned with the line of the opening bracket.
 
+---
 ** In Proced mode, new command `proced-renice' renices marked processes.
 
+---
 ** Python mode
 
 A new version of python.el, which provides several new features, including:
@@ -508,6 +578,8 @@ python-insert-while       | python-skeleton-while
 python-find-function      | python-nav-jump-to-defun
 python-next-statement     | python-nav-forward-sentence
 python-previous-statement | python-nav-backward-sentence
+python-beginning-of-defun-function  | python-nav-beginning-of-defun
+python-end-of-defun-function        | python-nav-end-of-defun
 python-send-buffer        | python-shell-send-buffer
 python-send-defun         | python-shell-send-defun
 python-send-region        | python-shell-send-region
@@ -517,37 +589,28 @@ python-send-string        | python-shell-send-string
 python-switch-to-python   | python-shell-switch-to-shell
 python-describe-symbol    | python-eldoc-at-point
 
+---
 ** reStructuredText mode
 
-*** Rebind nearly all keys making room for more keys and complying
-better to usage in other modes.  Describe bindings with C-c C-h.
-
-*** Major revision of indentation working very similar to other
-modes.  TAB is your friend.
-
-*** Major revision of filling working fine with most of
-reStructuredText syntax.  Support auto-filling.
+*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
+fontification, comment handling, and customization have all been revised
+and improved.
 
-*** Major revision of comment handling.
+*** Support for `imenu' and `which-function-mode'.
 
-*** Major revision of fontification working with `jit-lock-mode'.
-
-*** Cover reStructuredText syntax more closely.  Improve
-the experience for Sphinx users.
+*** The reStructuredText syntax is more closely covered.
+Sphinx support has been improved.
 
 *** `rst-insert-list' inserts new list or continues existing lists.
 
-*** Extend correct and improve customization.
-
-*** Negative prefix argument always works for `rst-adjust'.
+*** A negative prefix argument always works for `rst-adjust'.
 
-*** Reset window configuration after displaying TOC.
+*** The window configuration is reset after displaying a TOC.
 
-*** Package version in `rst-version'.
+*** The constant `rst-version' describes the rst.el package version.
 
-*** Support `imenu' and `which-func'.
-
-** SH Script mode
+---
+** Shell Script mode
 
 *** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
 
@@ -555,53 +618,51 @@ the experience for Sphinx users.
 
 *** `sh-use-smie' lets you choose a new indentation and navigation code.
 
-** Shell
-
-*** New option `async-shell-command-buffer' specifies what buffer to use
-for a new asynchronous shell command when the default output buffer
-`*Async Shell Command*' is already taken by another running command.
-
-** SQL Mode
-
-*** DB2 added `sql-db2-escape-newlines'
++++
+** New option `async-shell-command-buffer' specifies the buffer to use
+for a new asynchronous `shell-command' when the default output buffer
+`*Async Shell Command*' is already in use.
 
+---
+** SQL mode has a new option `sql-db2-escape-newlines'.
 If non-nil, newlines sent to the command interpreter will be escaped
 by a backslash.  The default does not escape the newlines and assumes
 that the sql statement will be terminated by a semicolon.
 
 ** Tabulated List and packages derived from it
-
++++
 *** New command `tabulated-list-sort', bound to `S', sorts the column
 at point, or the Nth column if a numeric prefix argument is given.
 
 ** Term
-
-The variables `term-default-fg-color' and `term-default-bg-color' are
-now deprecated in favor of the `term-face' face, that you can
-customize.  Also, it is now possible to customize how are displayed the
-ANSI terminal colors and styles by customizing the corresponding
-`term-color-<COLOR>', `term-color-underline' and `term-color-bold'
-faces.
++++
+*** The variables `term-default-fg-color' and `term-default-bg-color' are
+now deprecated in favor of the customizable face `term'.
++++
+*** You can customize how to display ANSI terminal colors and styles
+by customizing the corresponding `term-color-<COLOR>',
+`term-color-underline' and `term-color-bold' faces.
 
 ** Tramp
 +++
-*** The syntax has been extended in order to allow ad-hoc proxy
-definitions.  See the manual for details.
+*** The syntax has been extended in order to allow ad-hoc proxy definitions.
+See the manual for details.
 +++
 *** Remote processes are now supported also on remote Windows host.
 
 ** URL
-
++++
 *** Structs made by `url-generic-parse-url' have nil `attributes' slot.
 Previously, this slot stored semicolon-separated attribute-value pairs
 appended to some imap URLs, but this is not compatible with RFC 3986.
 So now the `filename' slot stores the entire path and query components
 and the `attributes' slot is always nil.
-
++++
 *** New function `url-encode-url' for encoding a URI string.
 The `url-retrieve' function now uses this to encode its URL argument,
 in case that is not properly encoded.
 
+---
 ** VHDL mode
 
 *** The free software compiler GHDL is supported (and now the default).
@@ -612,14 +673,38 @@ in case that is not properly encoded.
 
 *** Accepts \r and \f as whitespace.
 
-** which-function-mode now applies to all applicable major modes by default.
++++
+** `which-func-modes' now defaults to t, so Which Function mode, when
+enabled, applies to all applicable major modes.
 
 ---
 ** winner-mode-hook now runs when the mode is disabled, as well as when it is
 enabled.
 
-** FIXME something happened to ses.el, 2012-04-17.
-
++++
+** Hooks renamed to avoid obsolete "-hooks" suffix:
+*** semantic-lex-reset-hooks -> semantic-lex-reset-functions
+*** semantic-change-hooks -> semantic-change-functions
+*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions
+*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions
+*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions
+*** semanticdb-save-database-hooks -> semanticdb-save-database-functions
+*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook
+*** rcirc-sentinel-hooks -> rcirc-sentinel-functions
+*** rcirc-receive-message-hooks -> rcirc-receive-message-functions
+*** rcirc-activity-hooks -> rcirc-activity-functions
+*** rcirc-print-hooks -> rcirc-print-functions
+*** dbus-event-error-hooks -> dbus-event-error-functions
+*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions
+*** checkdoc-style-hooks -> checkdoc-style-functions
+*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions
+*** archive-extract-hooks -> archive-extract-hook
+*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook
+*** hfy-post-html-hooks -> hfy-post-html-hook
+*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions
+*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions
+*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions
+*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions
 
 ** Obsolete packages:
 +++
@@ -629,6 +714,8 @@ And in any case it's just a terrible package: ugly semantics, terrible
 inefficiency, and not namespace-clean.
 ---
 *** bruce.el
++++
+*** cust-print.el
 ---
 *** ledit.el
 ---
@@ -637,18 +724,11 @@ inefficiency, and not namespace-clean.
 *** mouse-sel.el
 ---
 *** patcomp.el
-+++
-*** cust-print.el
-
-\f
-* New Modes and Packages in Emacs 24.3
-
-FIXME? erc-desktop-notifications.el, gv.el, profiler.el,
-gnus-notifications.el, mm-archive.el
 
 \f
 * Incompatible Lisp Changes in Emacs 24.3
 
++++
 ** set-buffer-multibyte now signals an error in narrowed buffers.
 
 +++
@@ -662,6 +742,7 @@ sequence in later calls.
 font name as a string.  Whether it returns a font spec or a font name
 depends on the graphical library.
 
++++
 ** If the NEWTEXT arg to `replace-match' contains a substring "\?",
 that substring is inserted literally even if the LITERAL arg is
 non-nil, instead of causing an error to be signaled.
@@ -687,10 +768,18 @@ third argument is a frame (that usage was obsolete since Emacs 22.2).
 but keywords or keyword-string pairs.  The old argument list will
 still be supported for Emacs 24.x.
 
++++
+** The CL package's `get-setf-method' function no longer exists.
+Generalized variables are now part of core Emacs Lisp, and implemented
+differently to the way cl.el used to do it.  It is not possible to
+define a compatible replacement for `get-setf-method'.  See the file
+gv.el for internal details of the new implementation.
+
 ** Spelling changes.
 Some Lisp symbols have been renamed to avoid problems with spelling
 that is incorrect or inconsistent with how Emacs normally spells a word.
 
+---
 *** Renamed functions
 
 **** hangul-input-method-inactivate -> hangul-input-method-deactivate
@@ -702,31 +791,33 @@ that is incorrect or inconsistent with how Emacs normally spells a word.
      viper-deactivate-input-method-action
 **** ucs-input-inactivate -> ucs-input-deactivate
 
+---
 *** Renamed hooks
 The old hooks are still supported for backward compatibility, but they
 are deprecated and will be removed eventually.
-
 **** input-method-inactivate-hook -> input-method-deactivate-hook
 **** robin-inactivate-hook -> robin-deactivate-hook
 **** quail-inactivate-hook -> quail-deactivate-hook
 
+---
 *** Renamed Lisp variables
-
 **** follow-deactive-menu -> follow-inactive-menu
 **** inactivate-current-input-method-function ->
      deactivate-current-input-method-function
 
-** Some obsolete functions, variables, and faces were removed:
-
++++
+** Some obsolete functions, variables, and faces have been removed:
+*** `last-input-char', `last-command-char', `unread-command-char'
 *** `facemenu-unlisted-faces'
 *** `rmail-decode-mime-charset'
-*** `last-input-char', `last-command-char', `unread-command-char'.
 *** `iswitchb-read-buffer'
 *** `sc-version', `sc-submit-bug-report'
 *** `set-char-table-default'
-*** `string-to-sequence' (use `string-to-list' or `string-to-vector').
+*** `string-to-sequence' (use `string-to-list' or `string-to-vector')
 *** `compile-internal'
+*** `modeline'
 *** `mode-line-inverse-video'
+*** `follow-mode-off-hook'
 *** `cvs-commit-buffer-require-final-newline'
 (use `log-edit-require-final-newline' instead)
 *** `cvs-changelog-full-paragraphs'
@@ -735,80 +826,100 @@ are deprecated and will be removed eventually.
 *** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
 *** `vc-master-templates' (use `vc-handled-backends' instead)
 *** `vc-checkout-carefully'
-*** `modeline'
 
 \f
 * Lisp changes in Emacs 24.3
 
 ** New sampling-based Elisp profiler.
-Try M-x profiler-start ... M-x profiler-stop; and then M-x profiler-report.
-The sampling rate can be based on CPU time (only supported on some
-systems), or based on memory allocations.
+Try M-x profiler-start, do some work, and then call M-x profiler-report.
+When finished, use M-x profiler-stop.  The sampling rate can be based on
+CPU time (only supported on some systems) or memory allocations.
 
++++
 ** CL-style generalized variables are now in core Elisp.
 `setf' is autoloaded; `push' and `pop' accept generalized variables.
+You can define your own generalized variables using `gv-define-simple-setter',
+`gv-define-setter', etc.
 
++++
 ** `defun' also accepts a (declare DECLS) form, like `defmacro'.
 The interpretation of the DECLS is determined by `defun-declarations-alist'.
 
+** Minibuffer
++++
+*** `read-regexp' has a new argument HISTORY; the first argument PROMPT
+of `read-regexp' accepts a string ending with a colon and space, and its
+second argument DEFAULTS can be a list of strings accessible via M-n
+in the minibuffer ahead of other hard-coded useful regexp-related values.
+More commands use `read-regexp' now to read their regexp arguments.
+
 ** Completion
 
 *** New function `completion-table-with-quoting' to handle completion
 in the presence of quoting, such as file completion in shell buffers.
 
++++
 *** New function `completion-table-subvert' to use an existing completion
 table, but with a different prefix.
 
 ** Debugger changes
 
++++
 *** New error type and new function `user-error'.
 These do not trigger the debugger.
 
-*** New option `debugger-bury-or-kill'.
++++
+*** New option `debugger-bury-or-kill', saying what to do with the
+debugger buffer when exiting debug.
 
++++
 *** Set `debug-on-message' to enter the debugger when a certain
 message is displayed in the echo area.  This can be useful when trying
 to work out which code is doing something.
-
+---
 *** New var `inhibit-debugger', automatically set to prevent accidental
 recursive invocations.
 
-** Minibuffer
-
-*** `read-regexp' has a new argument HISTORY; the first argument PROMPT
-of `read-regexp' accepts a string ending with a colon and space, and its
-second argument DEFAULTS can be a list of strings accessible via M-n
-in the minibuffer ahead of other hard-coded useful regexp-related values.
-More commands use `read-regexp' now to read their regexp arguments.
-
 ** Window changes
-
++++
 *** The functions get-lru-window, get-mru-window and get-largest-window
 now accept a third argument to avoid choosing the selected window.
-
++++
 *** Additional values recognized for option `window-combination-limit'.
 
-*** New macro `with-temp-buffer-window'.
++++
+*** New macro `with-temp-buffer-window', similar to
+`with-output-to-temp-buffer'.
 
+---
 *** `temp-buffer-resize-mode' no longer resizes windows that have been
 reused.
 
-*** New function `fit-frame-to-buffer' and new options
-`fit-frame-to-buffer' and `fit-frame-to-buffer-bottom-margin'.
++++
+*** New command `fit-frame-to-buffer' adjusts the frame height to
+fit the contents.
 
-*** New display action functions `display-buffer-below-selected',
-`display-buffer-at-bottom' and `display-buffer-in-previous-window'.
++++
+*** The command `fit-window-to-buffer' can adjust the frame height
+if the new option `fit-frame-to-buffer' is non-nil.
 
++++
+*** New option switch-to-buffer-preserve-window-point to restore a
+window's point when switching buffers.
++++
+*** New display action functions `display-buffer-below-selected',
+and `display-buffer-in-previous-window'.
++++
 *** New display action alist entry `inhibit-switch-frame', if non-nil,
 tells display action functions to avoid changing which frame is
 selected.
-
++++
 *** New display action alist entry `pop-up-frame-parameters', if
 non-nil, specifies frame parameters to give any newly-created frame.
-
++++
 *** New display action alist entry `previous-window', if non-nil,
 specifies window to reuse in `display-buffer-in-previous-window'.
-
++++
 *** New display action alist entries `window-height' and `window-width'
 to specify size of new window created by `display-buffer'.
 
@@ -817,11 +928,17 @@ appropriate entries in the `display-buffer-alist' function introduced
 in Emacs 24.1:
 +++
 **** `display-buffer-reuse-frames'
++++
 **** `special-display-regexps'
++++
 **** `special-display-frame-alist'
++++
 **** `special-display-buffer-names'
++++
 **** `special-display-function'
++++
 **** `display-buffer-function'
+---
 **** `dired-shrink-to-fit'
 
 ** Time
@@ -829,7 +946,7 @@ in Emacs 24.1:
 *** `current-time-string' no longer requires that its argument's year
 must be in the range 1000..9999.  It now works with any year supported
 by the underlying C implementation.
----
++++
 *** `current-time' now returns extended-format time stamps
 (HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
 PSEC is typically a multiple of 1000 on current machines.  Other
@@ -841,6 +958,9 @@ stamps are still accepted.
 [TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
 The PSECS slot is new, and uses picosecond resolution.  It can be
 accessed via the new timer--psecs accessor.
++++
+*** Last-modified time stamps in undo lists now are of the form
+(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
 
 +++
 ** Floating point functions now always return special values like NaN,
@@ -849,64 +969,93 @@ Previously, they returned NaNs on some platforms but signaled errors
 on others.  The affected functions are acos, asin, tan, exp, expt,
 log, log10, sqrt, and mod.
 
-** Interpreted files are eagerly macro-expanded during load.
++++
+** Emacs tries to macroexpand interpreted (non-compiled) files during load.
 This can significantly speed up execution of non-byte-compiled code,
-but can also bump into harmless and previously unnoticed cyclic
-dependencies.  These should not be fatal: they will simply cause the
-macro-calls to be left for later expansion (as before), but will also
-result in a warning ("Eager macro-expansion skipped due to cycle")
-describing the cycle.
+but can also bump into previously unnoticed cyclic dependencies.
+These are generally harmless: they will simply cause the macro calls
+to be left for later expansion (as before), but will result in a
+warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
+You may wish to restructure your code so this does not happen.
 
 ** Miscellaneous new functions:
-
-*** `autoloadp'
-*** `autoload-do-load'
++++
+*** `autoloadp' tests if its argument is an autoloaded object.
++++
+*** `autoload-do-load' performs the autoloading operation.
 +++
 *** `buffer-narrowed-p' tests if the buffer is narrowed.
++++
 *** `file-name-base' returns a file name sans directory and extension.
++++
 *** `function-get' fetches a function property, following aliases.
 +++
 *** `posnp' tests if an object is a `posn'.
-*** `set-temporary-overlay-map' sets up a temporary overlay map.
++++
+*** `set-temporary-overlay-map' sets up a temporary keymap that
+takes precedence over most other maps for a short while (normally one key).
 +++
 *** `system-users' returns the user names on the system.
 +++
 *** `system-groups' returns the group names on the system.
++++
 *** `tty-top-frame' returns the topmost frame of a text terminal.
 
++++
 ** New macros `setq-local' and `defvar-local'.
 
++++
 ** New fringe bitmap `exclamation-mark'.
 
++++
 ** Face underlining can now use a wave.
-See the "Face Attributes" section of the Elisp manual.
 
 ** The following functions and variables are obsolete:
-
-*** `automount-dir-prefix'
+---
+*** `automount-dir-prefix' (use `directory-abbrev-alist')
++++
 *** `buffer-has-markers-at'
+---
 *** `macro-declaration-function' (use `macro-declarations-alist')
-*** `window-system-version'
+---
+*** `window-system-version' (provides no useful information)
+---
 *** `dired-pop-to-buffer' (use `dired-mark-pop-up')
+---
 *** `query-replace-interactive'
+---
+*** `font-list-limit' (has had no effect since Emacs < 23)
 
 \f
 * Changes in Emacs 24.3 on non-free operating systems
 
-+++
-** On MS Windows, you can pass --without-libxml2 to configure.bat to omit
-support for libxml2, even if its presence is detected.
-
-** When invoked with the -nw switch to run on the Windows text-mode terminal,
-Emacs now supports mouse highlight, help-echo (in the echo area), and
-`mouse-autoselect-window'.
+---
+** Cygwin builds can use the native MS Windows user interface.
+Pass --with-w32 to configure.  The default remains the X11 interface.
 
 ** Two new functions are available in Cygwin builds:
 `cygwin-convert-path-from-windows' and `cygwin-convert-path-to-windows'.
 These functions allow Lisp code to access the Cygwin file-name mapping
 machinery to convert between Cygwin and Windows-native file names.
 
+** When invoked with the -nw switch to run on the Windows text-mode terminal,
+Emacs now supports mouse highlight, help-echo (in the echo area), and
+`mouse-autoselect-window'.
+
++++
 ** On MS Windows Vista and later Emacs now supports symbolic links.
+
++++
+** On MS Windows, you can pass --without-libxml2 to configure.bat to omit
+support for libxml2, even if its presence is detected.
+
+---
+** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
+
+---
+** On Mac OS X, configure no longer automatically adds the Fink /sw
+directories to the search path.  You must add them yourself if you want them.
+
 \f
 * Changes in Emacs 24.2