aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorGlenn Morris2018-02-17 07:50:28 -0800
committerGlenn Morris2018-02-17 07:50:28 -0800
commit4fa90ff8f5fda54fc42049c990c52d3e5236fbe6 (patch)
tree6c0a7893b3aab0166b35938338fa289c3a01df74 /doc
parentcb3863370cbe574810f796726faa39ba0de0a429 (diff)
parente5a29330aae4491fd384bacaff6f453c6434d322 (diff)
downloademacs-4fa90ff8f5fda54fc42049c990c52d3e5236fbe6.tar.gz
emacs-4fa90ff8f5fda54fc42049c990c52d3e5236fbe6.zip
Merge from origin/emacs-26
e5a2933 (origin/emacs-26) lisp/vc/: documentation fixes f21f8e6 Document 'desktop-files-not-to-save' d8917eb Improve documentation of Profiling features b228839 Improve indexing of "performance" in ELisp manual ab67b3e Minor change in Emacs manual's VC chapter c352434 Avoid memory corruption with specpdl overflow + edebug (Bug#3... 593bbda Document comment-fill-column in the manual (Bug#11636) bd4cc8d * doc/emacs/dired.texi (Marks vs Flags): Copyedits. 69107f3 ; Fix doc typos related to indefinite articles aaad1e6 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac... 5906418 More fixes for the Emacs manual 9ab3df1 ; Fix doc typos related to indefinite articles 66a4e65 ; Fix doc typos related to indefinite articles 35e5c57 ; Fix doc typos related to indefinite articles
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/dired.texi6
-rw-r--r--doc/emacs/maintaining.texi66
-rw-r--r--doc/emacs/misc.texi5
-rw-r--r--doc/emacs/programs.texi25
-rw-r--r--doc/emacs/rmail.texi2
-rw-r--r--doc/emacs/vc1-xtra.texi7
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi4
-rw-r--r--doc/lispref/buffers.texi2
-rw-r--r--doc/lispref/debugging.texi60
-rw-r--r--doc/lispref/edebug.texi2
-rw-r--r--doc/lispref/package.texi2
-rw-r--r--doc/lispref/text.texi2
-rw-r--r--doc/lispref/windows.texi2
-rw-r--r--doc/misc/autotype.texi2
-rw-r--r--doc/misc/cc-mode.texi2
-rw-r--r--doc/misc/efaq.texi4
-rw-r--r--doc/misc/eshell.texi2
-rw-r--r--doc/misc/gnus-faq.texi8
-rw-r--r--doc/misc/org.texi2
-rw-r--r--doc/misc/sc.texi4
20 files changed, 115 insertions, 94 deletions
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 3fa35f14746..0a6228564f5 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -578,9 +578,9 @@ command will look in the buffer without revisiting the file, so the results
578might be inconsistent with the file on disk if its contents have changed 578might be inconsistent with the file on disk if its contents have changed
579since it was last visited. If you don't want this, you may wish to 579since it was last visited. If you don't want this, you may wish to
580revert the files you have visited in your buffers, or to turn on 580revert the files you have visited in your buffers, or to turn on
581the @code{auto-revert} mode in those buffers, before invoking this 581@code{auto-revert} mode in those buffers, before invoking this
582command. @xref{Reverting}. If you prefer that this command always 582command. @xref{Reverting}. If you prefer that this command should always
583revisits the file, without having to revert the file or enable 583revisit the file, without you having to revert the file or enable
584@code{auto-revert} mode, you might want to set 584@code{auto-revert} mode, you might want to set
585@code{dired-always-read-filesystem} to non-@code{nil}. 585@code{dired-always-read-filesystem} to non-@code{nil}.
586 586
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 1234db84b2f..541bf9708ba 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -60,8 +60,8 @@ changed.
60 The Emacs version control interface is called @dfn{VC}@. VC 60 The Emacs version control interface is called @dfn{VC}@. VC
61commands work with several different version control systems; 61commands work with several different version control systems;
62currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS, 62currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS,
63SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS, 63SRC, SCCS/CSSC, and Subversion. Of these, the GNU project distributes
64RCS, and Bazaar. 64CVS, RCS, and Bazaar.
65 65
66 VC is enabled automatically whenever you visit a file governed by a 66 VC is enabled automatically whenever you visit a file governed by a
67version control system. To disable VC entirely, set the customizable 67version control system. To disable VC entirely, set the customizable
@@ -80,9 +80,7 @@ current buffer, use the command @code{vc-refresh-state}. This command
80is useful when you perform version control commands outside Emacs 80is useful when you perform version control commands outside Emacs
81(e.g., from the shell prompt), or if you put the buffer's file under a 81(e.g., from the shell prompt), or if you put the buffer's file under a
82different version control system, or remove it from version control 82different version control system, or remove it from version control
83entirely. A companion command @code{vc-state-refresh} does the same, 83entirely.
84but does not consider switching the version control system or removal
85from VC.
86 84
87@menu 85@menu
88* Introduction to VC:: How version control works in general. 86* Introduction to VC:: How version control works in general.
@@ -185,12 +183,12 @@ everything you can do with RCS can be done through VC.
185 183
186@cindex CVS 184@cindex CVS
187@item 185@item
188CVS is the free version control system that was, until recently (circa 186CVS is the free version control system that was, until circa 2008,
1892008), used by the majority of free software projects. Nowadays, it 187used by the majority of free software projects. Since then, it has
190is slowly being superseded by newer systems. CVS allows concurrent 188been superseded by newer systems. CVS allows concurrent multi-user
191multi-user development either locally or over the network. Unlike 189development either locally or over the network. Unlike newer systems,
192newer systems, it lacks support for atomic commits and file 190it lacks support for atomic commits and file moving/renaming. VC
193moving/renaming. VC supports all basic editing operations under CVS. 191supports all basic editing operations under CVS.
194 192
195@cindex SVN 193@cindex SVN
196@cindex Subversion 194@cindex Subversion
@@ -322,13 +320,14 @@ possible.
322@subsubsection Changeset-based vs File-based Version Control 320@subsubsection Changeset-based vs File-based Version Control
323 321
324@cindex file-based version control 322@cindex file-based version control
325 On SCCS, RCS, CVS, and other early version control systems, version 323 On SCCS, RCS, CVS, and other early version control systems (and also
326control operations are @dfn{file-based}: each file has its own comment 324in SRC), version control operations are @dfn{file-based}: each file
327and revision history separate from that of all other files. Newer 325has its own comment and revision history separate from that of all
328systems, beginning with Subversion, are @dfn{changeset-based}: a 326other files. Newer systems, beginning with Subversion, are
329commit may include changes to several files, and the entire set of 327@dfn{changeset-based}: a commit may include changes to several files,
330changes is handled as a unit. Any comment associated with the change 328and the entire set of changes is handled as a unit. Any comment
331does not belong to a single file, but to the changeset itself. 329associated with the change does not belong to a single file, but to
330the changeset itself.
332 331
333@cindex changeset-based version control 332@cindex changeset-based version control
334 Changeset-based version control is more flexible and powerful than 333 Changeset-based version control is more flexible and powerful than
@@ -344,7 +343,7 @@ all of it.
344@cindex distributed version control 343@cindex distributed version control
345 Early version control systems were designed around a 344 Early version control systems were designed around a
346@dfn{centralized} model in which each project has only one repository 345@dfn{centralized} model in which each project has only one repository
347used by all developers. SCCS, RCS, CVS, and Subversion share this 346used by all developers. SCCS, RCS, CVS, Subversion, and SRC share this
348kind of model. One of its drawbacks is that the repository is a choke 347kind of model. One of its drawbacks is that the repository is a choke
349point for reliability and efficiency. 348point for reliability and efficiency.
350 349
@@ -526,7 +525,7 @@ desired log entry for the new revision, followed by @kbd{C-c C-c} to
526commit. @xref{Log Buffer}. 525commit. @xref{Log Buffer}.
527 526
528If committing to a shared repository, the commit may fail if the 527If committing to a shared repository, the commit may fail if the
529repository that has been changed since your last update. In that 528repository has been changed since your last update. In that
530case, you must perform an update before trying again. On a 529case, you must perform an update before trying again. On a
531decentralized version control system, use @kbd{C-x v +} 530decentralized version control system, use @kbd{C-x v +}
532(@pxref{Pulling / Pushing}) or @kbd{C-x v m} (@pxref{Merging}). 531(@pxref{Pulling / Pushing}) or @kbd{C-x v m} (@pxref{Merging}).
@@ -609,7 +608,7 @@ if the fileset can be managed by more than one version control system,
609and Emacs fails to detect the correct one. 608and Emacs fails to detect the correct one.
610 609
611@item 610@item
612Otherwise, if using CVS or RCS, you can specify a revision ID. 611Otherwise, if using CVS, RCS or SRC, you can specify a revision ID.
613 612
614If the fileset is modified (or locked), this makes Emacs commit with 613If the fileset is modified (or locked), this makes Emacs commit with
615that revision ID@. You can create a new branch by supplying an 614that revision ID@. You can create a new branch by supplying an
@@ -660,11 +659,10 @@ Author: J. R. Hacker <jrh@@example.com>
660 659
661@noindent 660@noindent
662Apart from the @samp{Author} header, Emacs recognizes the headers 661Apart from the @samp{Author} header, Emacs recognizes the headers
663@samp{Date} (a manually-specified commit time) and @samp{Fixes} (a 662@samp{Summary} (a one-line summary of the changeset), @samp{Date} (a
664reference to a bug fixed by the change). Not all version control 663manually-specified commit time), and @samp{Fixes} (a reference to a
665systems recognize all headers: Bazaar recognizes all three headers, 664bug fixed by the change). Not all version control systems recognize
666while Git, Mercurial, and Monotone recognize only @samp{Author} and 665all headers. If you specify a header for a system that does not
667@samp{Date}. If you specify a header for a system that does not
668support it, the header is treated as part of the log entry. 666support it, the header is treated as part of the log entry.
669 667
670@kindex C-c C-f @r{(Log Edit mode)} 668@kindex C-c C-f @r{(Log Edit mode)}
@@ -969,9 +967,9 @@ file listed on the current line.
969@findex log-view-toggle-entry-display 967@findex log-view-toggle-entry-display
970 @kbd{C-x v L} (@code{vc-print-root-log}) displays a 968 @kbd{C-x v L} (@code{vc-print-root-log}) displays a
971@file{*vc-change-log*} buffer showing the history of the entire 969@file{*vc-change-log*} buffer showing the history of the entire
972version-controlled directory tree (RCS, SCCS, and CVS do not support 970version-controlled directory tree (RCS, SCCS, CVS, and SRC do not
973this feature). With a prefix argument, the command prompts for the 971support this feature). With a prefix argument, the command prompts
974maximum number of revisions to display. 972for the maximum number of revisions to display.
975 973
976 The @kbd{C-x v L} history is shown in a compact form, usually 974 The @kbd{C-x v L} history is shown in a compact form, usually
977showing only the first line of each log entry. However, you can type 975showing only the first line of each log entry. However, you can type
@@ -1048,7 +1046,7 @@ if you set the value to zero, that removes the limit. You can also
1048increase the number of revisions shown in an existing 1046increase the number of revisions shown in an existing
1049@file{*vc-change-log*} buffer by clicking on the @samp{Show 2X 1047@file{*vc-change-log*} buffer by clicking on the @samp{Show 2X
1050entries} or @samp{Show unlimited entries} buttons at the end of the 1048entries} or @samp{Show unlimited entries} buttons at the end of the
1051buffer. However, RCS, SCCS, and CVS do not support this feature. 1049buffer. However, RCS, SCCS, CVS, and SRC do not support this feature.
1052 1050
1053@kindex C-x v h 1051@kindex C-x v h
1054@findex vc-region-history 1052@findex vc-region-history
@@ -1189,7 +1187,7 @@ but is not yet committed, while @file{temp.txt} is not under version
1189control (@pxref{Registering}). 1187control (@pxref{Registering}).
1190 1188
1191The @samp{*} characters next to the entries for @file{README} and 1189The @samp{*} characters next to the entries for @file{README} and
1192@file{src/main.c} indicate that the user has marked out these files as 1190@file{src/main.c} indicate that the user has marked these files as
1193the current VC fileset 1191the current VC fileset
1194@iftex 1192@iftex
1195(see below). 1193(see below).
@@ -1280,7 +1278,7 @@ point is on a directory entry, unmark all files in that directory tree
1280files and directories. 1278files and directories.
1281 1279
1282@item x 1280@item x
1283Hide files with @samp{up-to-date} status 1281Hide files with @samp{up-to-date} or @samp{ignored} status
1284(@code{vc-dir-hide-up-to-date}). With a prefix argument, hide items 1282(@code{vc-dir-hide-up-to-date}). With a prefix argument, hide items
1285whose state is that of the item at point. 1283whose state is that of the item at point.
1286@end table 1284@end table
@@ -1352,7 +1350,7 @@ Switch to a branch (@code{vc-retrieve-tag}). @xref{Switching Branches}.
1352context menu invoked by @kbd{mouse-2}. Furthermore, some VC backends 1350context menu invoked by @kbd{mouse-2}. Furthermore, some VC backends
1353use the menu to provide extra backend-specific commands. For example, 1351use the menu to provide extra backend-specific commands. For example,
1354Git and Bazaar allow you to manipulate @dfn{stashes} and @dfn{shelves} 1352Git and Bazaar allow you to manipulate @dfn{stashes} and @dfn{shelves}
1355(where are a way to temporarily put aside uncommitted changes, and 1353(which are a way to temporarily put aside uncommitted changes, and
1356bring them back at a later time). 1354bring them back at a later time).
1357 1355
1358@node Branches 1356@node Branches
@@ -1517,7 +1515,7 @@ is shown in a separate buffer.
1517prompts for a branch ID, or a pair of revision IDs (@pxref{Switching 1515prompts for a branch ID, or a pair of revision IDs (@pxref{Switching
1518Branches}); then it finds the changes from that branch, or the changes 1516Branches}); then it finds the changes from that branch, or the changes
1519between the two revisions you specified, and merges those changes into 1517between the two revisions you specified, and merges those changes into
1520the current VC fileset. If you just type @key{RET}, Emacs simply 1518the current VC fileset. If you just type @kbd{@key{RET}}, Emacs simply
1521merges any changes that were made on the same branch since you checked 1519merges any changes that were made on the same branch since you checked
1522the file out. 1520the file out.
1523 1521
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index ae6f9446f28..cfc689e4641 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -2434,6 +2434,11 @@ To disable this, set @code{desktop-restore-frames} to @code{nil}.
2434(See that variable's documentation for some related options 2434(See that variable's documentation for some related options
2435that you can customize to fine-tune this behavior.) 2435that you can customize to fine-tune this behavior.)
2436 2436
2437@vindex desktop-files-not-to-save
2438Information about buffers visiting remote files is not saved by
2439default. Customize the variable @code{desktop-files-not-to-save} to
2440change this.
2441
2437@vindex frameset-filter-alist 2442@vindex frameset-filter-alist
2438 When the desktop restores the frame and window configuration, it 2443 When the desktop restores the frame and window configuration, it
2439uses the recorded values of frame parameters, disregarding any 2444uses the recorded values of frame parameters, disregarding any
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 215717864fe..4a59f4307ed 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -965,13 +965,13 @@ the line is blank (i.e., empty or containing only whitespace
965characters), the comment is indented to the same position where 965characters), the comment is indented to the same position where
966@kbd{@key{TAB}} would indent to (@pxref{Basic Indent}). If the line 966@kbd{@key{TAB}} would indent to (@pxref{Basic Indent}). If the line
967is non-blank, the comment is placed after the last non-whitespace 967is non-blank, the comment is placed after the last non-whitespace
968character on the line; normally, Emacs tries putting it at the column 968character on the line. Emacs tries to fit the comment between the
969specified by the variable @code{comment-column} (@pxref{Options for 969columns specified by the variables @code{comment-column} and
970Comments}), but if the line already extends past that column, it puts 970@code{comment-fill-column} (@pxref{Options for Comments}), if
971the comment at some suitable position, usually separated from the 971possible. Otherwise, it will choose some other suitable position,
972non-comment text by at least one space. In each case, Emacs places 972usually separated from the non-comment text by at least one space. In
973point after the comment's starting delimiter, so that you can start 973each case, Emacs places point after the comment's starting delimiter,
974typing the comment text right away. 974so that you can start typing the comment text right away.
975 975
976 You can also use @kbd{M-;} to align an existing comment. If a line 976 You can also use @kbd{M-;} to align an existing comment. If a line
977already contains the comment-start string, @kbd{M-;} realigns it to 977already contains the comment-start string, @kbd{M-;} realigns it to
@@ -1064,13 +1064,16 @@ comment. Enable the @code{comment-close-slash} clean-up for this.
1064@subsection Options Controlling Comments 1064@subsection Options Controlling Comments
1065 1065
1066@vindex comment-column 1066@vindex comment-column
1067@vindex comment-fill-column
1067@kindex C-x ; 1068@kindex C-x ;
1068@findex comment-set-column 1069@findex comment-set-column
1069 As mentioned in @ref{Comment Commands}, when the @kbd{M-j} command 1070 As mentioned in @ref{Comment Commands}, when the @kbd{M-j} command
1070adds a comment to a line, it tries to place the comment at the column 1071adds a comment to a line, it tries to place the comment between the
1071specified by the buffer-local variable @code{comment-column}. You can 1072columns specified by the buffer-local variables @code{comment-column}
1072set either the local value or the default value of this buffer-local 1073and @code{comment-fill-column} (or if that is @code{nil}, then the
1073variable in the usual way (@pxref{Locals}). Alternatively, you can 1074value of @code{fill-column}, @pxref{Fill Commands}). You can set
1075either the local value or the default value of these buffer-local
1076variables in the usual way (@pxref{Locals}). Alternatively, you can
1074type @kbd{C-x ;} (@code{comment-set-column}) to set the value of 1077type @kbd{C-x ;} (@code{comment-set-column}) to set the value of
1075@code{comment-column} in the current buffer to the column where point 1078@code{comment-column} in the current buffer to the column where point
1076is currently located. @kbd{C-u C-x ;} sets the comment column to 1079is currently located. @kbd{C-u C-x ;} sets the comment column to
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 09cb034e372..e9371f39a96 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1585,7 +1585,7 @@ use it, add the @samp{--tls} flag to @code{rmail-movemail-flags}.
1585 If your incoming mail is stored on a local machine in a format other 1585 If your incoming mail is stored on a local machine in a format other
1586than Unix mailbox, you will need the Mailutils @command{movemail} to 1586than Unix mailbox, you will need the Mailutils @command{movemail} to
1587retrieve it. @xref{Movemail}, for the detailed description of 1587retrieve it. @xref{Movemail}, for the detailed description of
1588@command{movemail} versions. For example, to access mail from a inbox in 1588@command{movemail} versions. For example, to access mail from an inbox in
1589@code{maildir} format located in @file{/var/spool/mail/in}, you would 1589@code{maildir} format located in @file{/var/spool/mail/in}, you would
1590include the following in the Rmail inbox list: 1590include the following in the Rmail inbox list:
1591 1591
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 7a4b8e47019..35dd6d1235a 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -113,8 +113,9 @@ Prompt for a file name, delete the file from the working tree, and
113schedule the deletion for committing. 113schedule the deletion for committing.
114 114
115@item M-x vc-rename-file 115@item M-x vc-rename-file
116Prompt for two file names, @var{var} and @var{old}, rename them in the 116Prompt for two file names, @var{old} and @var{new}, rename them in the
117working tree, and schedule the renaming for committing. 117working tree, and schedule the renaming for committing. The @var{old}
118file defaults to the current buffer's file name if it is under VC.
118@end table 119@end table
119 120
120@findex vc-delete-file 121@findex vc-delete-file
@@ -268,7 +269,7 @@ with the file's version control type.
268@vindex vc-handled-backends 269@vindex vc-handled-backends
269 The variable @code{vc-handled-backends} determines which version 270 The variable @code{vc-handled-backends} determines which version
270control systems VC should handle. The default value is @code{(RCS CVS 271control systems VC should handle. The default value is @code{(RCS CVS
271SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems 272SVN SCCS SRC Bzr Git Hg Mtn)}, so it contains all the version systems
272that are currently supported. If you want VC to ignore one or more of 273that are currently supported. If you want VC to ignore one or more of
273these systems, exclude its name from the list. To disable VC 274these systems, exclude its name from the list. To disable VC
274entirely, set this variable to @code{nil}. 275entirely, set this variable to @code{nil}.
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 8b24cc1d8ba..137ccfe4a98 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -11799,7 +11799,7 @@ Uses recursion."
11799@end group 11799@end group
11800@end smallexample 11800@end smallexample
11801 11801
11802What happens when we call this function with a argument of 7? 11802What happens when we call this function with an argument of 7?
11803 11803
11804The first instance of the @code{triangle-recursively} function adds 11804The first instance of the @code{triangle-recursively} function adds
11805the number 7 to the value returned by a second instance of 11805the number 7 to the value returned by a second instance of
@@ -20821,7 +20821,7 @@ The function @code{1+} which adds one to its argument, is executed on
20821 20821
20822Contrast this with @code{apply}, which applies its first argument to 20822Contrast this with @code{apply}, which applies its first argument to
20823all the remaining. 20823all the remaining.
20824(@xref{Readying a Graph, , Readying a Graph}, for a explanation of 20824(@xref{Readying a Graph, , Readying a Graph}, for an explanation of
20825@code{apply}.) 20825@code{apply}.)
20826 20826
20827@need 1250 20827@need 1250
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 7e41eb32cce..3750fa60534 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -667,7 +667,7 @@ reason.
667 667
668@defun ask-user-about-supersession-threat filename 668@defun ask-user-about-supersession-threat filename
669This function is used to ask a user how to proceed after an attempt to 669This function is used to ask a user how to proceed after an attempt to
670modify an buffer visiting file @var{filename} when the file is newer 670modify a buffer visiting file @var{filename} when the file is newer
671than the buffer text. Emacs detects this because the modification 671than the buffer text. Emacs detects this because the modification
672time of the file on disk is newer than the last save-time and its contents 672time of the file on disk is newer than the last save-time and its contents
673have changed. 673have changed.
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 09692073bf9..2daa8a5578f 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -918,51 +918,65 @@ be cleaner to combine them.
918@section Profiling 918@section Profiling
919@cindex profiling 919@cindex profiling
920@cindex profile 920@cindex profile
921@cindex performance analysis
921@cindex measuring resource usage 922@cindex measuring resource usage
922@cindex memory usage 923@cindex memory usage
923 924
924If your program is working correctly, but you want to make it run more 925If your program is working correctly, but not fast enough, and you
925quickly or efficiently, the first thing to do is @dfn{profile} your 926want to make it run more quickly or efficiently, the first thing to do
926code so that you know how it is using resources. If you find that one 927is @dfn{profile} your code so that you know where it spends most of
927particular function is responsible for a significant portion of the 928the execution time. If you find that one particular function is
928runtime, you can start looking for ways to optimize that piece. 929responsible for a significant portion of the execution time, you can
930start looking for ways to optimize that piece.
929 931
930Emacs has built-in support for this. To begin profiling, type 932Emacs has built-in support for this. To begin profiling, type
931@kbd{M-x profiler-start}. You can choose to profile by processor 933@kbd{M-x profiler-start}. You can choose to profile by processor
932usage, memory usage, or both. After doing some work, type 934usage, memory usage, or both. Then run the code you'd like to speed
933@kbd{M-x profiler-report} to display a summary buffer for each 935up. After that, type @kbd{M-x profiler-report} to display a summary
934resource that you chose to profile. The names of the report buffers 936buffer for each resource (cpu and memory) that you chose to profile.
935include the times at which the reports were generated, so you can 937The names of the report buffers include the times at which the reports
936generate another report later on without erasing previous results. 938were generated, so you can generate another report later on without
937When you have finished profiling, type @kbd{M-x profiler-stop} (there 939erasing previous results. When you have finished profiling, type
938is a small overhead associated with profiling). 940@kbd{M-x profiler-stop} (there is a small overhead associated with
941profiling, so we don't recommend leaving it active except when you are
942actually running the code you want to examine).
939 943
940The profiler report buffer shows, on each line, a function that was 944The profiler report buffer shows, on each line, a function that was
941called, followed by how much resource (processor or memory) it used in 945called, followed by how much resources (cpu or memory) it used in
942absolute and percentage times since profiling started. If a given 946absolute and percentage terms since profiling started. If a given
943line has a @samp{+} symbol at the left-hand side, you can expand that 947line has a @samp{+} symbol at the left-hand side, you can expand that
944line by typing @kbd{@key{RET}}, in order to see the function(s) called 948line by typing @kbd{@key{RET}}, in order to see the function(s) called
945by the higher-level function. Use a prefix argument (@kbd{C-u 949by the higher-level function. Use a prefix argument (@kbd{C-u
946@key{RET}}) to see the whole call tree below a function. Pressing 950@key{RET}}) to see the whole call tree below a function. Pressing
947@kbd{@key{RET}} again will collapse back to the original state. 951@kbd{@key{RET}} again will collapse back to the original state.
948 952
949Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function. 953Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function
950Press @kbd{d} to view a function's documentation. 954at point. Press @kbd{d} to view a function's documentation. You can
951You can save a profile to a file using @kbd{C-x C-w}. 955save a profile to a file using @kbd{C-x C-w}. You can compare two
952You can compare two profiles using @kbd{=}. 956profiles using @kbd{=}.
953 957
954@c FIXME reversed calltree? 958@c FIXME reversed calltree?
955 959
956@cindex @file{elp.el} 960@cindex @file{elp.el}
957@cindex timing programs 961@cindex timing programs
958The @file{elp} library offers an alternative approach. See the file 962The @file{elp} library offers an alternative approach, which is useful
959@file{elp.el} for instructions. 963when you know in advance which Lisp function(s) you want to profile.
964Using that library, you begin by setting @code{elp-function-list} to
965the list of function symbols---those are the functions you want to
966profile. Then type @w{@kbd{M-x elp-instrument-list @key{RET} nil
967@key{RET}}} to arrange for profiling those functions. After running
968the code you want to profile, invoke @w{@kbd{M-x elp-results}} to
969display the current results. See the file @file{elp.el} for more
970detailed instructions. This approach is limited to profiling
971functions written in Lisp, it cannot profile Emacs primitives.
960 972
961@cindex @file{benchmark.el} 973@cindex @file{benchmark.el}
962@cindex benchmarking 974@cindex benchmarking
963You can check the speed of individual Emacs Lisp forms using the 975You can measure the time it takes to evaluate individual Emacs Lisp
964@file{benchmark} library. See the functions @code{benchmark-run} and 976forms using the @file{benchmark} library. See the macros
965@code{benchmark-run-compiled} in @file{benchmark.el}. 977@code{benchmark-run} and @code{benchmark-run-compiled} in
978@file{benchmark.el}. You can also use the @code{benchmark} command
979for timing forms interactively.
966 980
967@c Not worth putting in the printed manual. 981@c Not worth putting in the printed manual.
968@ifnottex 982@ifnottex
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 0c17e1e72ef..031fe65266e 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -898,7 +898,7 @@ lines inserted.
898 898
899@cindex coverage testing (Edebug) 899@cindex coverage testing (Edebug)
900@cindex frequency counts 900@cindex frequency counts
901@cindex performance analysis 901@cindex performance analysis (Edebug)
902 Edebug provides rudimentary coverage testing and display of execution 902 Edebug provides rudimentary coverage testing and display of execution
903frequency. 903frequency.
904 904
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 877aaf89a35..d179cf56fd2 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -199,7 +199,7 @@ standard keyword from the @code{finder-known-keywords} list.
199as explained in @ref{Packaging Basics}. In the above example, a magic 199as explained in @ref{Packaging Basics}. In the above example, a magic
200comment autoloads @code{superfrobnicator-mode}. 200comment autoloads @code{superfrobnicator-mode}.
201 201
202 @xref{Package Archives}, for a explanation of how to add a 202 @xref{Package Archives}, for an explanation of how to add a
203single-file package to a package archive. 203single-file package to a package archive.
204 204
205@node Multi-file Packages 205@node Multi-file Packages
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 299ed0b7d98..51a440cce74 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -2981,7 +2981,7 @@ optional argument @var{append} is non-@code{nil}, @var{face} is
2981appended to the end of the list instead. Note that in a face list, 2981appended to the end of the list instead. Note that in a face list,
2982the first occurring value for each attribute takes precedence. 2982the first occurring value for each attribute takes precedence.
2983 2983
2984For example, the following code would assign a italicized green face 2984For example, the following code would assign an italicized green face
2985to the text between @var{start} and @var{end}: 2985to the text between @var{start} and @var{end}:
2986 2986
2987@example 2987@example
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 5ab6d6ee6a4..687d5971920 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -862,7 +862,7 @@ If the optional argument @var{pixelwise} is non-@code{nil},
862A positive @var{delta} moves the edge downwards or to the right; a 862A positive @var{delta} moves the edge downwards or to the right; a
863negative @var{delta} moves it upwards or to the left. If the edge 863negative @var{delta} moves it upwards or to the left. If the edge
864cannot be moved as far as specified by @var{delta}, this function 864cannot be moved as far as specified by @var{delta}, this function
865moves it as far as possible but does not signal a error. 865moves it as far as possible but does not signal an error.
866 866
867This function tries to resize windows adjacent to the edge that is 867This function tries to resize windows adjacent to the edge that is
868moved. If this is not possible for some reason (e.g., if that adjacent 868moved. If this is not possible for some reason (e.g., if that adjacent
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index 026c57126d2..3d61d24fa9d 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -243,7 +243,7 @@ Interesting point. When wrapping skeletons around successive regions, they are
243put at these places. Point is left at first @code{_} where nothing is wrapped. 243put at these places. Point is left at first @code{_} where nothing is wrapped.
244@item @code{>} 244@item @code{>}
245Indent line according to major mode. When following element is @code{_}, and 245Indent line according to major mode. When following element is @code{_}, and
246there is a interregion that will be wrapped here, indent that interregion. 246there is an interregion that will be wrapped here, indent that interregion.
247@item @code{&} 247@item @code{&}
248Logical and. If preceding element moved point, i.e., usually inserted 248Logical and. If preceding element moved point, i.e., usually inserted
249something, do following element. 249something, do following element.
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 0132ab1775c..2de56fa05c0 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -2408,7 +2408,7 @@ could achieve this with code like this in your @file{.emacs}:
2408@end group 2408@end group
2409@end example 2409@end example
2410 2410
2411In a programming team, a hook is a also a good place for each member 2411In a programming team, a hook is also a good place for each member
2412to put his own personal preferences. For example, you might be the 2412to put his own personal preferences. For example, you might be the
2413only person in your team who likes Auto-newline minor mode. You could 2413only person in your team who likes Auto-newline minor mode. You could
2414have it enabled by default by placing the following in your 2414have it enabled by default by placing the following in your
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 5392748d00f..da6fda08833 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -753,7 +753,7 @@ privileges, you have several options:
753Info files don't actually need to be installed before being used. 753Info files don't actually need to be installed before being used.
754You can use a prefix argument for the @code{info} command and specify 754You can use a prefix argument for the @code{info} command and specify
755the name of the Info file in the minibuffer. This goes to the node 755the name of the Info file in the minibuffer. This goes to the node
756named @samp{Top} in that file. For example, to view a Info file named 756named @samp{Top} in that file. For example, to view an Info file named
757@file{@var{info-file}} in your home directory, you can type this: 757@file{@var{info-file}} in your home directory, you can type this:
758 758
759@example 759@example
@@ -3419,7 +3419,7 @@ version of Emacs, and see @ref{Current GNU distributions}, for a list of
3419archive sites that make GNU software available. 3419archive sites that make GNU software available.
3420 3420
3421@node Finding a package with particular functionality 3421@node Finding a package with particular functionality
3422@section How do I find a Emacs Lisp package that does XXX? 3422@section How do I find an Emacs Lisp package that does XXX?
3423@cindex Package, finding 3423@cindex Package, finding
3424@cindex Finding an Emacs Lisp package 3424@cindex Finding an Emacs Lisp package
3425@cindex Functionality, finding a particular package 3425@cindex Functionality, finding a particular package
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 43f8cd63811..1789767dbe2 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -1022,7 +1022,7 @@ So that the user can enter @samp{info chmod}, for example.
1022 1022
1023@item Create a mode @code{eshell-browse} 1023@item Create a mode @code{eshell-browse}
1024 1024
1025It would treat the Eshell buffer as a outline. Collapsing the outline 1025It would treat the Eshell buffer as an outline. Collapsing the outline
1026hides all of the output text. Collapsing again would show only the 1026hides all of the output text. Collapsing again would show only the
1027first command run in each directory 1027first command run in each directory
1028 1028
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 14c0117191e..26135b81de7 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -441,7 +441,7 @@ machine news.yourprovider.net login YourUserName password YourPassword
441@noindent 441@noindent
442. 442.
443Make sure that the file isn't readable to others if you 443Make sure that the file isn't readable to others if you
444work on a OS which is capable of doing so. (Under Unix 444work on an OS which is capable of doing so. (Under Unix
445say 445say
446@example 446@example
447chmod 600 ~/.authinfo 447chmod 600 ~/.authinfo
@@ -1449,7 +1449,7 @@ all those email addresses?
1449 1449
1450@subsubheading Answer 1450@subsubheading Answer
1451 1451
1452There's an very basic solution for this, mail aliases. 1452There's a very basic solution for this, mail aliases.
1453You can store your mail addresses in a ~/.mailrc file using a simple 1453You can store your mail addresses in a ~/.mailrc file using a simple
1454alias syntax: 1454alias syntax:
1455 1455
@@ -2012,7 +2012,7 @@ server by typing @samp{J a}. If you
2012make a mistake, or change your mind, you can undo this 2012make a mistake, or change your mind, you can undo this
2013action by typing @samp{J r}. When 2013action by typing @samp{J r}. When
2014you're done, type 'q' to return to the group buffer. 2014you're done, type 'q' to return to the group buffer.
2015Now the next time you enter a group on a agentized 2015Now the next time you enter a group on an agentized
2016server, the headers will be stored on disk and read from 2016server, the headers will be stored on disk and read from
2017there the next time you enter the group. 2017there the next time you enter the group.
2018 2018
@@ -2293,7 +2293,7 @@ When the term Emacs is used in this FAQ, it means either GNU
2293Emacs or XEmacs. 2293Emacs or XEmacs.
2294 2294
2295@item Message 2295@item Message
2296In this FAQ message means a either a mail or a posting to a 2296In this FAQ message means either a mail or a posting to a
2297Usenet Newsgroup or to some other fancy back end, no matter 2297Usenet Newsgroup or to some other fancy back end, no matter
2298of which kind it is. 2298of which kind it is.
2299 2299
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 68aa01ca18c..17931905f1a 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -12989,7 +12989,7 @@ of these examples works:
12989 12989
12990@subsubheading Embedding clickable images 12990@subsubheading Embedding clickable images
12991For clickable images, provide a link whose description is another link to an 12991For clickable images, provide a link whose description is another link to an
12992image file. For example, to embed a image @file{org-mode-unicorn.png} which 12992image file. For example, to embed an image @file{org-mode-unicorn.png} which
12993when clicked jumps to @uref{http://Orgmode.org} website, do the following 12993when clicked jumps to @uref{http://Orgmode.org} website, do the following
12994 12994
12995@example 12995@example
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index d8faad9099f..f214152b5f4 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -1340,7 +1340,7 @@ currently part of Supercite, but contributions are welcome!
1340 1340
1341Regi works by interpreting frames with the function 1341Regi works by interpreting frames with the function
1342@code{regi-interpret}. A frame is a list of arbitrary size where each 1342@code{regi-interpret}. A frame is a list of arbitrary size where each
1343element is a entry of the following form: 1343element is an entry of the following form:
1344 1344
1345@example 1345@example
1346(@var{pred} @var{func} [@var{negate-p} [@var{case-fold-search}]]) 1346(@var{pred} @var{func} [@var{negate-p} [@var{case-fold-search}]])
@@ -1709,7 +1709,7 @@ of information from the info alist.
1709@item @code{sc-mail-field-query} (@kbd{C-c C-p f}) 1709@item @code{sc-mail-field-query} (@kbd{C-c C-p f})
1710Allows you to interactively view, modify, add, and delete info alist 1710Allows you to interactively view, modify, add, and delete info alist
1711key-value pairs. With no argument, you are prompted (with completion) 1711key-value pairs. With no argument, you are prompted (with completion)
1712for a info key. The value associated with that key is displayed in the 1712for an info key. The value associated with that key is displayed in the
1713minibuffer. With an argument, this command will first ask if you want 1713minibuffer. With an argument, this command will first ask if you want
1714to view, modify, add, or delete an info key. Viewing is identical to 1714to view, modify, add, or delete an info key. Viewing is identical to
1715running the command with no arguments. 1715running the command with no arguments.