some description of main build options;
authorwenzelm
Sat, 28 Jul 2012 19:37:35 +0200
changeset 48580 9df76dd45900
parent 48579 0b95a13ed90a
child 48581 240d6a677193
some description of main build options;
doc-src/System/Thy/Sessions.thy
etc/options
src/Pure/System/options.scala
--- a/doc-src/System/Thy/Sessions.thy	Sat Jul 28 18:20:47 2012 +0200
+++ b/doc-src/System/Thy/Sessions.thy	Sat Jul 28 19:37:35 2012 +0200
@@ -115,14 +115,22 @@
   again.
 
   \end{description}
+*}
 
-  Plenty of examples may be found in the Isabelle distribution, such
-  as in @{file "~~/src/HOL/ROOT"}.  *}
+subsubsection {* Examples *}
+
+text {* See @{file "~~/src/HOL/ROOT"} for a diversity of practically
+  relevant situations. *}
 
 
 section {* System build options \label{sec:system-options} *}
 
-text {* FIXME *}
+text {* See @{file "~~/etc/options"} for the main defaults provided by
+  the Isabelle distribution.
+
+  Note that Isabelle/jEdit \secref{sec:tool-jedit} includes a simple
+  editing mode @{verbatim "isabelle-options"} for this file-format.
+*}
 
 
 section {* Invoking the build process \label{sec:tool-build} *}
--- a/etc/options	Sat Jul 28 18:20:47 2012 +0200
+++ b/etc/options	Sat Jul 28 19:37:35 2012 +0200
@@ -1,39 +1,63 @@
 (* :mode=isabelle-options: *)
 
 declare browser_info : bool = false
+  -- "generate theory browser information"
 
 declare document : string = ""
+  -- "build document in given format: pdf, dvi, dvi.gz, ps, ps.gz, or false"
 declare document_variants : string = "outline=/proof,/ML"
+  -- "declare alternative document variants (separated by colons)"
 declare document_graph : bool = false
+  -- "generate session graph image for document"
 declare document_dump : string = ""
+  -- "dump generated document sources into given directory"
 declare document_dump_mode : string = "all"
-declare no_document : bool = false
+  -- "specific document dump mode: all, tex, tex+sty"
 
 declare threads : int = 0
+  -- "maximum number of worker threads for prover process (0 = hardware max.)"
 declare threads_trace : int = 0
+  -- "level of tracing information for multithreading"
 declare parallel_proofs : int = 2
+  -- "level of parallel proof checking: 0, 1, 2"
 declare parallel_proofs_threshold : int = 100
+  -- "threshold for sub-proof parallelization"
 
 declare print_mode : string = ""
+  -- "additional print modes for prover output (separated by commas)"
 
 declare proofs : int = 1
+  -- "level of detail for proof objects: 0, 1, 2"
 declare quick_and_dirty : bool = false
+  -- "if true then some tools will OMIT some proofs"
 
 declare condition : string = ""
+  -- "required environment variables for subsequent theories (separated by commas)"
 
 declare show_question_marks : bool = true
+  -- "show leading question mark of schematic variables"
 
 declare names_long : bool = false
+  -- "show fully qualified names"
 declare names_short : bool = false
+  -- "show base names only"
 declare names_unique : bool = true
+  -- "show partially qualified names, as required for unique name resolution"
 
 declare pretty_margin : int = 76
+  -- "right margin / page width of pretty printer in Isabelle/ML"
 
 declare thy_output_display : bool = false
+  -- "indicate output as multi-line display-style material"
+declare thy_output_break : bool = false
+  -- "control line breaks in non-display material"
 declare thy_output_quotes : bool = false
+  -- "indicate if the output should be enclosed in double quotes"
 declare thy_output_indent : int = 0
+  -- "indentation for pretty printing of display material"
 declare thy_output_source : bool = false
-declare thy_output_break : bool = false
+  -- "print original source text rather than internal representation"
 
 declare timing : bool = false
+  -- "global timing of toplevel command execution and theory processing"
 
--- a/src/Pure/System/options.scala	Sat Jul 28 18:20:47 2012 +0200
+++ b/src/Pure/System/options.scala	Sat Jul 28 19:37:35 2012 +0200
@@ -35,7 +35,7 @@
     val DECLARE = "declare"
     val DEFINE = "define"
 
-    val syntax = Outer_Syntax.empty + ":" + "=" + DECLARE + DEFINE
+    val syntax = Outer_Syntax.empty + ":" + "=" + "--" + DECLARE + DEFINE
 
     val entry: Parser[Options => Options] =
     {
@@ -44,9 +44,8 @@
       val option_value = atom("option value", tok => tok.is_name || tok.is_float)
 
       keyword(DECLARE) ~! (option_name ~ keyword(":") ~ option_type ~
-      keyword("=") ~ option_value ~ opt(text)) ^^
-        { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) =>
-            (options: Options) => options.declare(a, b, c, d.getOrElse("")) } |
+      keyword("=") ~ option_value ~ (keyword("--") ~! text ^^ { case _ ~ x => x } | success(""))) ^^
+        { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) => (options: Options) => options.declare(a, b, c, d) } |
       keyword(DEFINE) ~! (option_name ~ keyword("=") ~ option_value) ^^
         { case _ ~ (a ~ _ ~ b) => (options: Options) => options.define(a, b) }
     }