diff options
| author | Eli Zaretskii | 2016-09-14 17:20:24 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2016-09-14 17:20:24 +0300 |
| commit | 0ad74106faefa656a03b51fd58a8413857eb483e (patch) | |
| tree | 7e3c46a26b12ff00a77fe5cebc112bee284d70a4 /doc | |
| parent | ea0f750e5c1baa21c3ae1b22364662915c2b038f (diff) | |
| download | emacs-0ad74106faefa656a03b51fd58a8413857eb483e.tar.gz emacs-0ad74106faefa656a03b51fd58a8413857eb483e.zip | |
Update Antinews in ELisp manual
* doc/lispref/anti.texi (Antinews): Update for Emacs 25.1.
* doc/lispref/elisp.texi (Top): Update the main menu entry for
Antinews.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/lispref/anti.texi | 162 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 2 |
2 files changed, 71 insertions, 93 deletions
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 4b084014994..17d765de142 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi | |||
| @@ -6,132 +6,110 @@ | |||
| 6 | @c This node must have no pointers. | 6 | @c This node must have no pointers. |
| 7 | 7 | ||
| 8 | @node Antinews | 8 | @node Antinews |
| 9 | @appendix Emacs 23 Antinews | 9 | @appendix Emacs 24 Antinews |
| 10 | @c Update the elisp.texi Antinews menu entry with the above version number. | 10 | @c Update the elisp.texi Antinews menu entry with the above version number. |
| 11 | 11 | ||
| 12 | For those users who live backwards in time, here is information about | 12 | For those users who live backwards in time, here is information about |
| 13 | downgrading to Emacs version 23.4. We hope you will enjoy the greater | 13 | downgrading to Emacs version 24.5. We hope you will enjoy the greater |
| 14 | simplicity that results from the absence of many Emacs @value{EMACSVER} | 14 | simplicity that results from the absence of many Emacs @value{EMACSVER} |
| 15 | features. | 15 | features. |
| 16 | 16 | ||
| 17 | @section Old Lisp Features in Emacs 23 | 17 | @section Old Lisp Features in Emacs 24 |
| 18 | 18 | ||
| 19 | @itemize @bullet | 19 | @itemize @bullet |
| 20 | @item | 20 | @item |
| 21 | Support for lexical scoping has been removed; all variables are | 21 | The requirement that @code{setq} and @code{setf} must be called with |
| 22 | dynamically scoped. The @code{lexical-binding} variable has been | 22 | an even number of arguments has been removed. You can now call them |
| 23 | removed, and so has the @var{lexical} argument to @code{eval}. The | 23 | with an odd number of arguments, and Emacs will helpfully supply a |
| 24 | @code{defvar} and @code{defconst} forms no longer mark variables as | 24 | @code{nil} for the missing one. Simplicity rules! |
| 25 | dynamic, since all variables are dynamic. | ||
| 26 | |||
| 27 | Having only dynamic binding follows the spirit of Emacs extensibility, | ||
| 28 | for it allows any Emacs code to access any defined variable with a | ||
| 29 | minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid | ||
| 30 | making your programs hard to understand. | ||
| 31 | 25 | ||
| 32 | @item | 26 | @item |
| 33 | Calling a minor mode function from Lisp with a @code{nil} or omitted argument | 27 | @kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment |
| 34 | does not enable the minor mode unconditionally; instead, it toggles | 28 | variable, as they should, to indicate that the subprocess is run by |
| 35 | the minor mode---which is the straightforward thing to do, since that | 29 | Emacs. This is so packages that took years to learn how to work |
| 36 | is the behavior when invoked interactively. One downside is that it | 30 | around that setting could continue using their code to that effect. |
| 37 | is more troublesome to enable minor modes from hooks; you have to do | ||
| 38 | something like | ||
| 39 | |||
| 40 | @example | ||
| 41 | (add-hook 'foo-hook (lambda () (bar-mode 1))) | ||
| 42 | @end example | ||
| 43 | |||
| 44 | @noindent | ||
| 45 | or define @code{turn-on-bar-mode} and call that from the hook. | ||
| 46 | 31 | ||
| 47 | @item | 32 | @item |
| 48 | The @code{prog-mode} dummy major mode has been removed. Instead of | 33 | The @code{save-excursion} form saves and restores the mark, as |
| 49 | using it as a crutch to meet programming mode conventions, you should | 34 | expected. No more need for the new @code{save-mark-and-excursion}, |
| 50 | explicitly ensure that your mode follows those conventions. | 35 | which has been deleted. |
| 51 | @xref{Major Mode Conventions}. | ||
| 52 | 36 | ||
| 53 | @item | 37 | @item |
| 54 | Emacs no longer supports bidirectional display and editing. Since | 38 | We have removed the @code{text-quoting-style} variable and the |
| 55 | there is no need to worry about the insertion of right-to-left text | 39 | associated functionality that translates quote characters in messages |
| 56 | messing up how lines and paragraphs are displayed, the function | 40 | displayed to the user and in help buffers. Emacs now shows exactly |
| 57 | @code{bidi-string-mark-left-to-right} has been removed; so have many | 41 | the same quote characters as you wrote in your code! Likewise, |
| 58 | other functions and variables related to bidirectional display. | 42 | @code{substitute-command-keys} leaves the quote characters alone. As |
| 59 | Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT | 43 | you move back in time, Unicode support becomes less and less |
| 60 | MARK have no special effect on display. | 44 | important, so no need to display those fancy new quotes the Unicode |
| 45 | Standard invented. | ||
| 61 | 46 | ||
| 62 | @item | 47 | @item |
| 63 | Emacs windows now have most of their internal state hidden from Lisp. | 48 | Regular expressions have been simplified by removing support for |
| 64 | Internal windows are no longer visible to Lisp; functions such as | 49 | Unicode character properties in regexp classes. As result, |
| 65 | @code{window-parent}, window parameters related to window arrangement, | 50 | @code{[:alpha:]} and @code{[:alnum:]} will match any character with a |
| 66 | and window-local buffer lists have all been removed. Functions for | 51 | word syntax, and @code{[:graph:]} and @code{[:print:]} will match any |
| 67 | resizing windows can delete windows if they become too small. | 52 | multibyte character, including surrogates and unassigned codepoints. |
| 68 | 53 | Once again, this is in line with diminishing importance of Unicode as | |
| 69 | The action-function feature for controlling buffer display has | 54 | you move back in time. |
| 70 | been removed, including @code{display-buffer-overriding-action} and | ||
| 71 | related variables, as well as the @var{action} argument to | ||
| 72 | @code{display-buffer} and other functions. The way to | ||
| 73 | programmatically control how Emacs chooses a window to display a | ||
| 74 | buffer is to bind the right combination of @code{pop-up-frames} and | ||
| 75 | other variables. | ||
| 76 | 55 | ||
| 77 | @item | 56 | @item |
| 78 | The standard completion interface has been simplified, eliminating the | 57 | Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have |
| 79 | @code{completion-extra-properties} variable, the @code{metadata} | 58 | realized that interpreting that as in Common Lisp was a bad mistake |
| 80 | action flag for completion functions, and the concept of | 59 | that needed to be corrected. |
| 81 | completion categories. Lisp programmers may now find the choice | ||
| 82 | of methods for tuning completion less bewildering, but if a package | ||
| 83 | finds the streamlined interface insufficient for its needs, it must | ||
| 84 | implement its own specialized completion feature. | ||
| 85 | 60 | ||
| 86 | @item | 61 | @item |
| 87 | @code{copy-directory} now behaves the same whether or not the | 62 | The @code{pcase} form was significantly simplified by removing the |
| 88 | destination is an existing directory: if the destination exists, the | 63 | UPatterns @code{quote} and @code{app}. To further simplify this |
| 89 | @emph{contents} of the first directory are copied into it (with | 64 | facility, we've removed @code{pcase-defmacro}, since we found no need |
| 90 | subdirectories handled recursively), rather than copying the first | 65 | for letting Lisp programs define new UPatterns. |
| 91 | directory into a subdirectory. | ||
| 92 | 66 | ||
| 93 | @item | 67 | @item |
| 94 | The @var{trash} arguments for @code{delete-file} and | 68 | We've removed the text properties @code{cursor-intangible} and |
| 95 | @code{delete-directory} have been removed. The variable | 69 | @code{cursor-sensor-functions}, replacing them by the much simpler |
| 96 | @code{delete-by-moving-to-trash} must now be used with care; whenever | 70 | @code{intangible}, @code{point-entered}, and @code{point-left} |
| 97 | it is non-@code{nil}, all calls to @code{delete-file} or | 71 | properties. The latter are implemented on a much lower level, and |
| 98 | @code{delete-directory} use the trash. | 72 | therefore are better integrated with user expectations. For similar |
| 73 | reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode} | ||
| 74 | were removed; use the hook variable @code{inhibit-point-motion-hooks} | ||
| 75 | which is no longer obsolete. | ||
| 99 | 76 | ||
| 100 | @item | 77 | @item |
| 101 | Because Emacs no longer supports SELinux file contexts, the | 78 | Process creation and management functions were significantly improved |
| 102 | @var{preserve-selinux-context} argument to @code{copy-file} has been | 79 | and simplified by removing @code{make-process} and the @code{pipe} |
| 103 | removed. The return value of @code{backup-buffer} no longer has an | 80 | connection type. Redirecting @code{stderr} of a subprocess should be |
| 104 | entry for the SELinux file context. | 81 | done with shell facilities, not by Emacs. |
| 105 | 82 | ||
| 106 | @item | 83 | @item |
| 107 | For mouse click input events in the text area, the Y pixel coordinate | 84 | We decided that shutting up informative messages is bad for user |
| 108 | in the @var{position} list (@pxref{Click Events}) now counts from the | 85 | interaction, so we've removed the @code{inhibit-message} variable |
| 109 | top of the header line, if there is one, rather than the top of the | 86 | which could be used to that effect. |
| 110 | text area. | ||
| 111 | 87 | ||
| 112 | @item | 88 | @item |
| 113 | Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get | 89 | Support for generators and for finalizers has been removed, as we |
| 114 | an additional @var{cache} entry in their definitions, like this: | 90 | found no real need for these facilities. |
| 115 | 91 | ||
| 116 | @example | 92 | @item |
| 117 | (@var{type} @var{item-name} @var{cache} . @var{binding}) | 93 | Due to excessive complexity and the diminishing need for Unicode |
| 118 | @end example | 94 | support, the functions @code{string-collate-lessp} and |
| 119 | 95 | @code{string-collate-equalp} were removed. Their locale-independent | |
| 120 | @noindent | 96 | counterparts @code{string-lessp} and @code{string-equal} are so much |
| 121 | The @var{cache} entry is used internally by Emacs to record equivalent | 97 | more simple and yield predictable results that we don't see any |
| 122 | keyboard key sequences for invoking the same command; Lisp programs | 98 | situation where the locale-dependent collation could be useful in |
| 123 | should never use it. | 99 | Emacs. As result, the @file{ls-lisp.el} package sorts files in a |
| 124 | @c Not really NEWS-worthy then... | 100 | locale-independent manner. |
| 125 | 101 | ||
| 126 | @item | 102 | @item |
| 127 | The @code{gnutls} library has been removed, and the function | 103 | In preparation for removal in some past version of Emacs of the |
| 128 | @code{open-network-stream} correspondingly simplified. | 104 | bidirectional editing support, we started by deleting two functions |
| 129 | Lisp programs that want an encrypted network connection must now call | 105 | @code{bidi-find-overridden-directionality} and |
| 130 | external utilities such as @command{starttls} or @command{gnutls-cli}. | 106 | @code{buffer-substring-with-bidi-context}. |
| 131 | 107 | ||
| 132 | @item | 108 | @item |
| 133 | Tool bars can no longer display separators, which frees up several | 109 | Time conversion functions, such as @code{current-time-string}, no |
| 134 | pixels of space on each graphical frame. | 110 | longer accept an optional @var{zone} argument. If you need to change |
| 111 | the current time zone (why?), do that explicitly with | ||
| 112 | @code{set-time-zone-rule}. | ||
| 135 | 113 | ||
| 136 | @item | 114 | @item |
| 137 | As part of the ongoing quest for simplicity, many other functions and | 115 | As part of the ongoing quest for simplicity, many other functions and |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index a3bff0b07ac..3297e5308ae 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -228,7 +228,7 @@ To view this manual in other formats, click | |||
| 228 | 228 | ||
| 229 | Appendices | 229 | Appendices |
| 230 | 230 | ||
| 231 | * Antinews:: Info for users downgrading to Emacs 23. | 231 | * Antinews:: Info for users downgrading to Emacs 24. |
| 232 | * GNU Free Documentation License:: The license for this documentation. | 232 | * GNU Free Documentation License:: The license for this documentation. |
| 233 | * GPL:: Conditions for copying and changing GNU Emacs. | 233 | * GPL:: Conditions for copying and changing GNU Emacs. |
| 234 | * Tips:: Advice and coding conventions for Emacs Lisp. | 234 | * Tips:: Advice and coding conventions for Emacs Lisp. |