some description of main build options;
authorwenzelm
Sat Jul 28 19:37:35 2012 +0200 (2012-07-28)
changeset 485809df76dd45900
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
     1.1 --- a/doc-src/System/Thy/Sessions.thy	Sat Jul 28 18:20:47 2012 +0200
     1.2 +++ b/doc-src/System/Thy/Sessions.thy	Sat Jul 28 19:37:35 2012 +0200
     1.3 @@ -115,14 +115,22 @@
     1.4    again.
     1.5  
     1.6    \end{description}
     1.7 +*}
     1.8  
     1.9 -  Plenty of examples may be found in the Isabelle distribution, such
    1.10 -  as in @{file "~~/src/HOL/ROOT"}.  *}
    1.11 +subsubsection {* Examples *}
    1.12 +
    1.13 +text {* See @{file "~~/src/HOL/ROOT"} for a diversity of practically
    1.14 +  relevant situations. *}
    1.15  
    1.16  
    1.17  section {* System build options \label{sec:system-options} *}
    1.18  
    1.19 -text {* FIXME *}
    1.20 +text {* See @{file "~~/etc/options"} for the main defaults provided by
    1.21 +  the Isabelle distribution.
    1.22 +
    1.23 +  Note that Isabelle/jEdit \secref{sec:tool-jedit} includes a simple
    1.24 +  editing mode @{verbatim "isabelle-options"} for this file-format.
    1.25 +*}
    1.26  
    1.27  
    1.28  section {* Invoking the build process \label{sec:tool-build} *}
     2.1 --- a/etc/options	Sat Jul 28 18:20:47 2012 +0200
     2.2 +++ b/etc/options	Sat Jul 28 19:37:35 2012 +0200
     2.3 @@ -1,39 +1,63 @@
     2.4  (* :mode=isabelle-options: *)
     2.5  
     2.6  declare browser_info : bool = false
     2.7 +  -- "generate theory browser information"
     2.8  
     2.9  declare document : string = ""
    2.10 +  -- "build document in given format: pdf, dvi, dvi.gz, ps, ps.gz, or false"
    2.11  declare document_variants : string = "outline=/proof,/ML"
    2.12 +  -- "declare alternative document variants (separated by colons)"
    2.13  declare document_graph : bool = false
    2.14 +  -- "generate session graph image for document"
    2.15  declare document_dump : string = ""
    2.16 +  -- "dump generated document sources into given directory"
    2.17  declare document_dump_mode : string = "all"
    2.18 -declare no_document : bool = false
    2.19 +  -- "specific document dump mode: all, tex, tex+sty"
    2.20  
    2.21  declare threads : int = 0
    2.22 +  -- "maximum number of worker threads for prover process (0 = hardware max.)"
    2.23  declare threads_trace : int = 0
    2.24 +  -- "level of tracing information for multithreading"
    2.25  declare parallel_proofs : int = 2
    2.26 +  -- "level of parallel proof checking: 0, 1, 2"
    2.27  declare parallel_proofs_threshold : int = 100
    2.28 +  -- "threshold for sub-proof parallelization"
    2.29  
    2.30  declare print_mode : string = ""
    2.31 +  -- "additional print modes for prover output (separated by commas)"
    2.32  
    2.33  declare proofs : int = 1
    2.34 +  -- "level of detail for proof objects: 0, 1, 2"
    2.35  declare quick_and_dirty : bool = false
    2.36 +  -- "if true then some tools will OMIT some proofs"
    2.37  
    2.38  declare condition : string = ""
    2.39 +  -- "required environment variables for subsequent theories (separated by commas)"
    2.40  
    2.41  declare show_question_marks : bool = true
    2.42 +  -- "show leading question mark of schematic variables"
    2.43  
    2.44  declare names_long : bool = false
    2.45 +  -- "show fully qualified names"
    2.46  declare names_short : bool = false
    2.47 +  -- "show base names only"
    2.48  declare names_unique : bool = true
    2.49 +  -- "show partially qualified names, as required for unique name resolution"
    2.50  
    2.51  declare pretty_margin : int = 76
    2.52 +  -- "right margin / page width of pretty printer in Isabelle/ML"
    2.53  
    2.54  declare thy_output_display : bool = false
    2.55 +  -- "indicate output as multi-line display-style material"
    2.56 +declare thy_output_break : bool = false
    2.57 +  -- "control line breaks in non-display material"
    2.58  declare thy_output_quotes : bool = false
    2.59 +  -- "indicate if the output should be enclosed in double quotes"
    2.60  declare thy_output_indent : int = 0
    2.61 +  -- "indentation for pretty printing of display material"
    2.62  declare thy_output_source : bool = false
    2.63 -declare thy_output_break : bool = false
    2.64 +  -- "print original source text rather than internal representation"
    2.65  
    2.66  declare timing : bool = false
    2.67 +  -- "global timing of toplevel command execution and theory processing"
    2.68  
     3.1 --- a/src/Pure/System/options.scala	Sat Jul 28 18:20:47 2012 +0200
     3.2 +++ b/src/Pure/System/options.scala	Sat Jul 28 19:37:35 2012 +0200
     3.3 @@ -35,7 +35,7 @@
     3.4      val DECLARE = "declare"
     3.5      val DEFINE = "define"
     3.6  
     3.7 -    val syntax = Outer_Syntax.empty + ":" + "=" + DECLARE + DEFINE
     3.8 +    val syntax = Outer_Syntax.empty + ":" + "=" + "--" + DECLARE + DEFINE
     3.9  
    3.10      val entry: Parser[Options => Options] =
    3.11      {
    3.12 @@ -44,9 +44,8 @@
    3.13        val option_value = atom("option value", tok => tok.is_name || tok.is_float)
    3.14  
    3.15        keyword(DECLARE) ~! (option_name ~ keyword(":") ~ option_type ~
    3.16 -      keyword("=") ~ option_value ~ opt(text)) ^^
    3.17 -        { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) =>
    3.18 -            (options: Options) => options.declare(a, b, c, d.getOrElse("")) } |
    3.19 +      keyword("=") ~ option_value ~ (keyword("--") ~! text ^^ { case _ ~ x => x } | success(""))) ^^
    3.20 +        { case _ ~ (a ~ _ ~ b ~ _ ~ c ~ d) => (options: Options) => options.declare(a, b, c, d) } |
    3.21        keyword(DEFINE) ~! (option_name ~ keyword("=") ~ option_value) ^^
    3.22          { case _ ~ (a ~ _ ~ b) => (options: Options) => options.define(a, b) }
    3.23      }