Make some undocumented options regular/expert (#7805)
authorGereon Kremer <gkremer@stanford.edu>
Tue, 14 Dec 2021 21:14:48 +0000 (13:14 -0800)
committerGitHub <noreply@github.com>
Tue, 14 Dec 2021 21:14:48 +0000 (21:14 +0000)
We have some options that are currently "undocumented" for no good reason.
This PR makes them regular or expert options.

src/options/README.md
src/options/base_options.toml
src/options/parser_options.toml
src/options/smt_options.toml

index c3e0182151e94e6a0ce93e0fed810fdfc6fe4076..2f89f04eefc5a20f24b831df961cb23480506669 100644 (file)
@@ -26,7 +26,7 @@ Specifying Options
 Options can be defined within a module file with the `[[option]]` tag, the
 required attributes for an option are:
 
-* `category` (string): one of `common`, `expert`, `regular`, or `undocumented`
+* `category` (string): one of `common`, `regular`, `expert`, or `undocumented`
 * `type` (string): the C++ type of the option value, see below for more details.
 
 Optional attributes are:
@@ -59,6 +59,16 @@ Optional attributes are:
   given)
 
 
+Option categories
+-----------------
+
+Every option has one of the following categories that influences where and how an option is visible:
+
+* `common`: Used for the most common options. All `common` options are shown at the very top in both the online documentation and the output of `--help` on the command line.
+* `regular`: This should be used for most options.
+* `expert`: This is for options that should be used with care only. A warning is shown in both the online documentation and the command line help.
+* `undocumented`: Such an option is skipped entirely in both the online documentation and the command line help. This should only be used when users don't have a (reasonable) use case for this option (e.g., because it stores data that is added via another option like for `output` and `outputTagHolder`).
+
 Option types
 ------------
 
index 042fd6b8a14896e0b9f85fad6730943ed756cbb5..415dbf9f39ad4c57bd6fc20b2747ac9083bb709e 100644 (file)
@@ -3,27 +3,30 @@ name   = "Base"
 
 [[option]]
   name       = "err"
-  category   = "undocumented"
+  category   = "regular"
   long       = "err=erroutput"
   type       = "ManagedErr"
   alias      = ["diagnostic-output-channel"]
   predicates = ["setErrStream"]
   includes   = ["<iostream>", "options/managed_streams.h"]
+  help       = "Set the error (or diagnostic) output channel. Writes to stderr for \"stderr\" or \"--\", stdout for \"stdout\" or the given filename otherwise."
 
 [[option]]
   name       = "in"
-  category   = "undocumented"
+  category   = "regular"
   long       = "in=input"
   type       = "ManagedIn"
   includes   = ["<iostream>", "options/managed_streams.h"]
+  help       = "Set the error (or diagnostic) output channel. Reads from stdin for \"stdin\" or \"--\" and the given filename otherwise."
 
 [[option]]
   name       = "out"
-  category   = "undocumented"
+  category   = "regular"
   long       = "out=output"
   type       = "ManagedOut"
   alias      = ["regular-output-channel"]
   includes   = ["<iostream>", "options/managed_streams.h"]
+  help       = "Set the error (or diagnostic) output channel. Writes to stdout for \"stdout\" or \"--\", stderr for \"stderr\" or the given filename otherwise."
 
 [[option]]
   name       = "inputLanguage"
index 6fc683368a42a8a78fc19986ef8dcf0dd007793e..5552a677d29ad2a9e7b6d81ad2c0dca81aae28c4 100644 (file)
@@ -45,10 +45,11 @@ name   = "Parser"
 # overwrite an existing file with malicious content.
 [[option]]
   name       = "filesystemAccess"
-  category   = "undocumented"
+  category   = "expert"
   long       = "filesystem-access"
   type       = "bool"
   default    = "true"
+  help       = "limits the file system access if set to false"
 
 [[option]]
   name       = "forceLogicString"
index 026c8f494ff296f65c8d7e0897a535a94c5b1a89..1e55f63d084de815667610f82e19c750f759cd67 100644 (file)
@@ -377,7 +377,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "solveBVAsInt"
-  category   = "undocumented"
+  category   = "expert"
   long       = "solve-bv-as-int=MODE"
   type       = "SolveBVAsIntMode"
   default    = "OFF"
@@ -401,7 +401,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "BVAndIntegerGranularity"
-  category   = "undocumented"
+  category   = "expert"
   long       = "bvand-integer-granularity=N"
   type       = "uint64_t"
   default    = "1"
@@ -409,7 +409,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "iandMode"
-  category   = "undocumented"
+  category   = "expert"
   long       = "iand-mode=mode"
   type       = "IandMode"
   default    = "VALUE"
@@ -427,7 +427,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "solveIntAsBV"
-  category   = "undocumented"
+  category   = "expert"
   long       = "solve-int-as-bv=N"
   type       = "uint64_t"
   default    = "0"
@@ -435,7 +435,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "solveRealAsInt"
-  category   = "undocumented"
+  category   = "expert"
   long       = "solve-real-as-int"
   type       = "bool"
   default    = "false"
@@ -443,7 +443,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "produceInterpols"
-  category   = "undocumented"
+  category   = "regular"
   long       = "produce-interpols=MODE"
   type       = "ProduceInterpols"
   default    = "NONE"
@@ -470,7 +470,7 @@ name   = "SMT Layer"
 
 [[option]]
   name       = "produceAbducts"
-  category   = "undocumented"
+  category   = "regular"
   long       = "produce-abducts"
   type       = "bool"
   default    = "false"