aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPierre Courtieu2017-01-04 17:14:29 +0100
committerPierre Courtieu2017-01-04 17:14:29 +0100
commit15b977ff32f6c8250d47d7657987b0c94db76710 (patch)
tree7f70c0855d99fe7d37f784fc45e763ee9afa383b /doc
parentaf30e1ef04320547273fa02967ddcdb18f380f12 (diff)
parent8d405f342bb3a1903fc12184f78f191e7d84c29d (diff)
Merge remote-tracking branch 'OFFICIAL/master'
Diffstat (limited to 'doc')
-rw-r--r--doc/ProofGeneral.texi71
1 files changed, 59 insertions, 12 deletions
diff --git a/doc/ProofGeneral.texi b/doc/ProofGeneral.texi
index 748cf3ac..442ce6d5 100644
--- a/doc/ProofGeneral.texi
+++ b/doc/ProofGeneral.texi
@@ -920,7 +920,7 @@ example in Isabelle with semi-colons, but these will not appear in the
final text.
Coq, on the other hand, requires a full-stop terminator at the end of
-each line, so @kbd{C-c C-.} is the key binding used to turn on
+each line, so @kbd{C-c .} is the key binding used to turn on
electric terminator. If you don't know what the terminator character
is, you can find the option anyway on the menu:
@code{Proof-General -> Quick Options -> Processing -> Electric Terminator}
@@ -4396,12 +4396,19 @@ one project you can set the option as local file variable,
@ref{Using file variables}. This can be done either directly in
every file or once for all files of a directory tree with a
@code{.dir-local.el} file, @inforef{Directory Variables, ,emacs}.
-For this case, this file should contain
+The file @code{.dir-local.el} should then contain
@lisp
((coq-mode . ((coq-project-filename . "myprojectfile"))))
@end lisp
+Note that variables set in @code{.dir-local.el} are automatically
+made buffer local (such that files in different directories can
+have their independent setting of @code{coq-project-filename}).
+If you make complex customizations using @code{eval} in
+@code{.dir-local.el}, you might want to add appropriate calls to
+@code{make-local-variable}.
+
Documentation of the user option @code{coq-project-filename}:
@c TEXI DOCSTRING MAGIC: coq-project-filename
@@ -4494,8 +4501,12 @@ these points:
@itemize @bullet
@item
-The option @code{coq-compile-before-require} must be
-turned on (menu @code{Coq -> Auto Compilation -> Compile Before Require}).
+Set the option @code{coq-compile-before-require} (menu @code{Coq
+-> Auto Compilation -> Compile Before Require}) to enable
+compilation before processing @code{Require} commands and set
+@code{coq-compile-parallel-in-background} (menu @code{Coq
+-> Auto Compilation -> Parallel background compilation}) for
+parallel asynchronous compilation (recommended).
@item
Nonstandard load path elements @emph{must} be configured via a
Coq project file (this is the recommended option),
@@ -4505,9 +4516,18 @@ option @code{coq-load-path}. @code{-I} or @code{-R} options in
@item
Configure
@code{coq-max-background-compilation-jobs} if you want to limit
-the number of parallel background jobs.
+the number of parallel background jobs and set
+@code{coq-compile-keep-going} (menu @code{Coq -> Auto Compilation
+-> Keep going}) to let compilation continue after the first
+error.
@end itemize
+To abort parallel background compilation, use @code{C-c C-c}
+(@code{proof-interrupt-process}), the tool bar interrupt icon,
+the menu entry @code{Abort Background Compilation} (menu
+@code{Coq -> Auto Compilation}) or kill the Coq toplevel via
+@code{C-c C-x} (@code{proof-shell-exit}). To abort synchronous
+single threaded compilation, simply hit @code{C-g}.
@menu
@@ -4554,7 +4574,16 @@ controls how @code{-quick} and @code{.vio} files are used,
@ref{Quick compilation and .vio Files}. This can also be
configured in the menu @code{Coq -> Auto Compilation}.
-When a @code{Require} command causes a compilation of some files
+Similar to @code{make -k}, background compilation can be
+configured to continue as far as possible after the first error,
+see option @code{coq-compile-keep-going} (menu @code{Coq -> Auto
+Compilation -> Keep going}). The keep-going option only applies
+to errors from @code{coqdep} and @code{coqc}. For all other
+errors (for instance when the translation from logical module
+names to physical files fails or when starting @code{coqc} or
+@code{coqdep} fails), the compilation is immediately aborted.
+
+When a @code{Require} command causes a compilation of some files,
one may wish to save some buffers to disk beforehand. The option
@code{coq-compile-auto-save} controls how and which files are
saved. There are two orthogonal choices: One may wish to save all
@@ -4583,8 +4612,11 @@ runs up to @code{coq-max-background-compilation-jobs} coqdep and
coqc jobs in parallel in asynchronous subprocesses (or uses all
your CPU cores if @code{coq-max-background-compilation-jobs}
equals @code{'all-cpus}). Your Emacs will stay responsive during
-compilation. Use @code{C-c C-c} or the tool bar icons for
-interrupt or restart to interrupt compilation.
+compilation. To abort the background compilation process, use
+@code{C-c C-c} (@code{proof-interrupt-process}), the tool bar
+interrupt icon, the menu entry @code{Abort Background
+Compilation} (menu @code{Coq -> Auto Compilation}) or kill the
+Coq toplevel via @code{C-c C-x} (@code{proof-shell-exit}).
For the usual case, you have at most
`coq-max-background-compilation-jobs' parallel processes
@@ -4723,12 +4755,14 @@ files, but don't compile prerequisites for which an up-to-date
@item quick-and-vio2vo
Same as @code{quick-no-vio2vo}, but start vio2vo processes for
missing @code{.vo} files after a certain delay when library
-complication for the current queue region has finished. With this
+compilation for the current queue region has finished. With this
mode you might see asynchronous errors from vio2vo compilation
while you are processing stuff far below the last require. vio2vo
compilation is done on a subset of the available cores controlled
by option @code{coq-compile-vio2vo-percentage}, @ref{Customizing
-Coq Multiple File Support}.
+Coq Multiple File Support}. When @code{coq-compile-keep-going} is
+set, vio2vo compilation is scheduled for those files for which
+@code{coqc} compilation was successful.
@emph{Warning}: This mode does only work when you process require
commands in batches. Slowly single-stepping through require's
@@ -4816,14 +4850,27 @@ The option @code{coq-compile-quick} is described in detail above,
@ref{Quick compilation and .vio Files}
+@c TEXI DOCSTRING MAGIC: coq-compile-keep-going
+@defvar coq-compile-keep-going
+Continue compilation after the first error as far as possible.@*
+Similar to @samp{`make -k}', with this option enabled, the background
+compilation continues after the first error as far as possible.
+With this option disabled, background compilation is
+immediately stopped after the first error.
+
+This option can be set/reset via menu
+@samp{Coq -> Auto Compilation -> Keep going}.
+@end defvar
+
+
@c TEXI DOCSTRING MAGIC: coq-max-background-compilation-jobs
@defvar coq-max-background-compilation-jobs
Maximal number of parallel jobs, if parallel compilation is enabled.@*
Use the number of available CPU cores if this is set to
@code{'all-cpus}. This variable is the user setting. The value that is
-really used is @samp{@code{coq-internal-max-jobs}}. Use @samp{@code{coq-max-jobs-setter}}
+really used is @samp{@code{coq--internal-max-jobs}}. Use @samp{@code{coq-max-jobs-setter}}
or the customization system to change this variable. Otherwise
-your change will have no effect, because @samp{@code{coq-internal-max-jobs}}
+your change will have no effect, because @samp{@code{coq--internal-max-jobs}}
is not adapted.
@end defvar