[website] update man pages and OCaml doc for version 0.17.0

Summary:
The plan is to keep only the man pages and OCaml doc for:
- the latest published version (0.17.0 currently)
- master-ish

Next commit will introduce versioning of the documentation.

Reviewed By: dulmarod

Differential Revision: D21526342

fbshipit-source-id: 6a49d168e
master
Jules Villard 5 years ago committed by Facebook GitHub Bot
parent 68a9c414a6
commit e0da0b00c3

@ -3,10 +3,6 @@ id: internal-API
title: Infer Internal OCaml Modules API
---
The generated OCaml documentation for the latest release of infer can be found
[here](/odoc/latest/index.html). You can generate these pages from within an
infer git checkout with `make doc`.
Browse the generated documentation for Infer's OCaml code [here](/odoc/index.html).
You can also browse the following specific versions:
- [0.15.0](/odoc/0.15.0/index.html)
You can also generate these pages from within an Infer repository with `make doc`.

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:58 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:48 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -24,10 +24,10 @@
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BIABDUCTION CHECKER OPTIONS">BIABDUCTION CHECKER OPTIONS</a><br>
<a href="#BUCK FLAVORS OPTIONS">BUCK FLAVORS OPTIONS</a><br>
<a href="#BUFFER OVERRUN OPTIONS">BUFFER OVERRUN OPTIONS</a><br>
<a href="#CLANG OPTIONS">CLANG OPTIONS</a><br>
<a href="#CRASHCONTEXT OPTIONS">CRASHCONTEXT OPTIONS</a><br>
<a href="#JAVA OPTIONS">JAVA OPTIONS</a><br>
<a href="#QUANDARY CHECKER OPTIONS">QUANDARY CHECKER OPTIONS</a><br>
<a href="#RACERD CHECKER OPTIONS">RACERD CHECKER OPTIONS</a><br>
@ -71,41 +71,15 @@ report.</p>
<p style="margin-left:11%; margin-top: 1em"><b>--analyzer</b>,<b>-a</b>
<i>{ checkers | infer | capture | compile | crashcontext |
<br>
linters }</i></p>
<p style="margin-left:17%;">Specify which analyzer to run
(only one at a time is supported):</p>
<p style="margin-left:11%;">- <b>biabduction</b>: run the
bi-abduction based checker only, in <br>
particular to check for memory errors <br>
- <b>checkers</b>: run the default checkers, including the
bi-abduction <br>
based checker for memory errors (default) <br>
- <b>infer</b>: alias for <b>biabduction</b> <br>
- <b>linters</b>: run linters based on the ast only (clang
only, <br>
activated by default) <br>
- <b>capture</b>: similar to specifying the <b>capture</b>
subcommand <br>
(DEPRECATED) <br>
- <b>compile</b>: similar to specifying the <b>compile</b>
subcommand <br>
(DEPRECATED) <br>
- <b>crashcontext</b>: experimental (see
<b>--crashcontext</b>) <b><br>
--no-annotation-reachability</b></p>
<p style="margin-left:17%;">Deactivates: the annotation
<p style="margin-left:11%; margin-top: 1em"><b>--annotation-reachability</b></p>
<p style="margin-left:17%;">Activates: the annotation
reachability checker. Given a pair of source and sink
annotation, e.g. @PerformanceCritical and @Expensive, this
checker will warn whenever some method annotated with
@PerformanceCritical calls, directly or indirectly, another
method annotated with @Expensive (Conversely:
<b>--annotation-reachability</b>)</p>
<b>--no-annotation-reachability</b>)</p>
<p style="margin-left:11%;"><b>--annotation-reachability-only</b></p>
@ -147,18 +121,16 @@ list of source files from which reactive analysis should
start. Source files should be specified relative to project
root or be absolute</p>
<p style="margin-left:11%;"><b>--check-nullable</b></p>
<p style="margin-left:17%;">Activates: checks that values
annotated with nullable are always checked for null before
dereference (Conversely: <b>--no-check-nullable</b>)</p>
<p style="margin-left:11%;"><b>--class-loads</b></p>
<p style="margin-left:17%;">Activates: Java class loading
analysis (Conversely: <b>--no-class-loads</b>)</p>
<p style="margin-left:11%;"><b>--check-nullable-only</b></p>
<p style="margin-left:11%;"><b>--class-loads-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--check-nullable</b> and disable all other checkers
(Conversely: <b>--no-check-nullable-only</b>)</p>
<b>--class-loads</b> and disable all other checkers
(Conversely: <b>--no-class-loads-only</b>)</p>
<p style="margin-left:11%;"><b>--continue</b></p>
@ -179,17 +151,11 @@ performance cost analysis (Conversely: <b>--no-cost</b>)</p>
and disable all other checkers (Conversely:
<b>--no-cost-only</b>)</p>
<p style="margin-left:11%;"><b>--crashcontext</b></p>
<p style="margin-left:17%;">Activates: the crashcontext
checker for Java stack trace context reconstruction
(Conversely: <b>--no-crashcontext</b>)</p>
<p style="margin-left:11%;"><b>--crashcontext-only</b></p>
<p style="margin-left:11%;"><b>--custom-symbols</b>
<i>json</i></p>
<p style="margin-left:17%;">Activates: Enable
<b>--crashcontext</b> and disable all other checkers
(Conversely: <b>--no-crashcontext-only</b>)</p>
<p style="margin-left:17%;">Specify named lists of symbols
available to rules</p>
<p style="margin-left:11%;"><b>--debug</b>,<b>-g</b></p>
@ -217,32 +183,29 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--no-default-checkers</b></p>
<p style="margin-left:17%;">Deactivates: Default checkers:
<b>--annotation-reachability</b>, <b>--biabduction</b>,
<b>--fragment-retains-view</b>, <b>--immutable-cast</b>,
<b>--linters</b>, <b>--liveness</b>, <b>--ownership</b>,
<b>--printf-args</b>, <b>--racerd</b>, <b>--siof</b>,
<b>--uninit</b> (Conversely: <b>--default-checkers</b>)</p>
<b>--biabduction</b>, <b>--fragment-retains-view</b>,
<b>--inefficient-keyset-iterator</b>, <b>--linters</b>,
<b>--liveness</b>, <b>--racerd</b>, <b>--siof</b>,
<b>--starvation</b>, <b>--uninit</b> (Conversely:
<b>--default-checkers</b>)</p>
<p style="margin-left:11%;"><b>--eradicate</b></p>
@ -282,21 +245,20 @@ checkers (Conversely:
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
<p style="margin-left:17%;">Show this manual with all
internal options in the INTERNAL OPTIONS section</p>
<p style="margin-left:11%;"><b>--no-immutable-cast</b></p>
<p style="margin-left:11%;"><b>--immutable-cast</b></p>
<p style="margin-left:17%;">Deactivates: the detection of
<p style="margin-left:17%;">Activates: the detection of
object cast from immutable type to mutable type. For
instance, it will detect cast from ImmutableList to List,
ImmutableMap to Map, and ImmutableSet to Set. (Conversely:
<b>--immutable-cast</b>)</p>
<b>--no-immutable-cast</b>)</p>
<p style="margin-left:11%;"><b>--immutable-cast-only</b></p>
@ -305,11 +267,27 @@ ImmutableMap to Map, and ImmutableSet to Set. (Conversely:
<b>--immutable-cast</b> and disable all other checkers
(Conversely: <b>--no-immutable-cast-only</b>)</p>
<p style="margin-left:11%;"><b>--no-inefficient-keyset-iterator</b></p>
<p style="margin-left:17%;">Deactivates: Check for
inefficient uses of keySet iterator that access both the key
and the value. (Conversely:
<b>--inefficient-keyset-iterator</b>)</p>
<p style="margin-left:11%;"><b>--inefficient-keyset-iterator-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--inefficient-keyset-iterator</b> and disable all other
checkers (Conversely:
<b>--no-inefficient-keyset-iterator-only</b>)</p>
<p style="margin-left:11%;"><b>--jobs</b>,<b>-j</b>
<i>int</i></p>
<p style="margin-left:17%;">Run the specified number of
analysis jobs simultaneously (default: <i>4</i>)</p>
analysis jobs simultaneously</p>
<p style="margin-left:11%;"><b>--keep-going</b></p>
@ -352,16 +330,36 @@ dead stores and unused variables (Conversely:
<b>--liveness</b> and disable all other checkers
(Conversely: <b>--no-liveness-only</b>)</p>
<p style="margin-left:11%;"><b>--no-ownership</b></p>
<p style="margin-left:11%;"><b>--loop-hoisting</b></p>
<p style="margin-left:17%;">Deactivates: the detection of
C++ lifetime bugs (Conversely: <b>--ownership</b>)</p>
<p style="margin-left:17%;">Activates: checker for
loop-hoisting (Conversely: <b>--no-loop-hoisting</b>)</p>
<p style="margin-left:11%;"><b>--loop-hoisting-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--loop-hoisting</b> and disable all other checkers
(Conversely: <b>--no-loop-hoisting-only</b>)</p>
<p style="margin-left:11%;"><b>--nullsafe</b></p>
<p style="margin-left:11%;"><b>--ownership-only</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
Nullable type checker (incomplete: use --eradicate for now)
(Conversely: <b>--no-nullsafe</b>)</p>
<p style="margin-left:11%;"><b>--nullsafe-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--ownership</b> and disable all other checkers
(Conversely: <b>--no-ownership-only</b>)</p>
<b>--nullsafe</b> and disable all other checkers
(Conversely: <b>--no-nullsafe-only</b>)</p>
<p style="margin-left:11%;"><b>--perf-profiler-data-file</b>
<i>file</i></p>
<p style="margin-left:17%;">Specify the file containing
perf profiler data to read</p>
<p style="margin-left:11%;"><b>--print-active-checkers</b></p>
@ -375,14 +373,14 @@ checkers before starting the analysis (Conversely:
<p style="margin-left:17%;">Activates: Also log messages to
stdout and stderr (Conversely: <b>--no-print-logs</b>)</p>
<p style="margin-left:11%;"><b>--no-printf-args</b></p>
<p style="margin-left:11%;"><b>--printf-args</b></p>
<p style="margin-left:17%;">Deactivates: the detection of
<p style="margin-left:17%;">Activates: the detection of
mismatch between the Java printf format strings and the
argument types For, example, this checker will warn about
the type error in &rsquo;printf(&quot;Hello %d&quot;,
&quot;world&quot;)&rsquo; (Conversely:
<b>--printf-args</b>)</p>
<b>--no-printf-args</b>)</p>
<p style="margin-left:11%;"><b>--printf-args-only</b></p>
@ -390,12 +388,41 @@ the type error in &rsquo;printf(&quot;Hello %d&quot;,
<b>--printf-args</b> and disable all other checkers
(Conversely: <b>--no-printf-args-only</b>)</p>
<p style="margin-left:11%;"><b>--progress-bar-style</b>
<i>{ auto | plain | multiline }</i></p>
<p style="margin-left:17%;">Style of the progress bar.
<b>auto</b> selects <b>multiline</b> if connected to a tty,
otherwise <b>plain</b>.</p>
<p style="margin-left:11%;"><b>--project-root</b>,<b>-C</b>
<i>dir</i></p>
<p style="margin-left:17%;">Specify the root directory of
the project (default: <i>/home/jul/infer.fb</i>)</p>
the project</p>
<p style="margin-left:11%;"><b>--pulse</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL] C++
lifetime analysis (Conversely: <b>--no-pulse</b>)</p>
<p style="margin-left:11%;"><b>--pulse-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--pulse</b> and disable all other checkers (Conversely:
<b>--no-pulse-only</b>)</p>
<p style="margin-left:11%;"><b>--purity</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL]
Purity analysis (Conversely: <b>--no-purity</b>)</p>
<p style="margin-left:11%;"><b>--purity-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--purity</b> and disable all other checkers (Conversely:
<b>--no-purity-only</b>)</p>
<p style="margin-left:11%;"><b>--quandary</b></p>
@ -408,6 +435,18 @@ analysis (Conversely: <b>--no-quandary</b>)</p>
<b>--quandary</b> and disable all other checkers
(Conversely: <b>--no-quandary-only</b>)</p>
<p style="margin-left:11%;"><b>--quandaryBO</b></p>
<p style="margin-left:17%;">Activates: [EXPERIMENTAL] The
quandaryBO tainted buffer access analysis (Conversely:
<b>--no-quandaryBO</b>)</p>
<p style="margin-left:11%;"><b>--quandaryBO-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--quandaryBO</b> and disable all other checkers
(Conversely: <b>--no-quandaryBO-only</b>)</p>
<p style="margin-left:11%;"><b>--quiet</b>,<b>-q</b></p>
<p style="margin-left:17%;">Activates: Do not print specs
@ -440,6 +479,13 @@ analysis starts from the files captured since the
phase once the analysis has completed (Conversely:
<b>--report</b>)</p>
<p style="margin-left:11%;"><b>--report-force-relative-path</b></p>
<p style="margin-left:17%;">Activates: Force converting an
absolute path to a relative path to the root directory
(Conversely: <b>--no-report-force-relative-path</b>)</p>
<p style="margin-left:11%;"><b>--report-hook</b>
<i>script</i></p>
@ -447,15 +493,13 @@ phase once the analysis has completed (Conversely:
after the analysis results are written. This script will be
passed, <b>--issues-json</b>, <b>--issues-txt</b>,
<b>--issues-xml</b>, <b>--project-root</b>, and
<b>--results-dir</b>. (default:
<i>/home/jul/infer.fb/infer/bin/../lib/python/report.py</i>)</p>
<b>--results-dir</b>.</p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory (default:
<i>/home/jul/infer.fb/infer-out</i>)</p>
files in the specified directory</p>
<p style="margin-left:11%;"><b>--no-siof</b></p>
@ -469,10 +513,16 @@ Initialization Order Fiasco analysis (C++ only) (Conversely:
and disable all other checkers (Conversely:
<b>--no-siof-only</b>)</p>
<p style="margin-left:11%;"><b>--starvation</b></p>
<p style="margin-left:11%;"><b>--sqlite-lock-timeout</b>
<i>int</i></p>
<p style="margin-left:17%;">Timeout for SQLite results
database operations, in milliseconds.</p>
<p style="margin-left:11%;"><b>--no-starvation</b></p>
<p style="margin-left:17%;">Activates: starvation analysis
(Conversely: <b>--no-starvation</b>)</p>
<p style="margin-left:17%;">Deactivates: starvation
analysis (Conversely: <b>--starvation</b>)</p>
<p style="margin-left:11%;"><b>--starvation-only</b></p>
@ -480,19 +530,6 @@ and disable all other checkers (Conversely:
<b>--starvation</b> and disable all other checkers
(Conversely: <b>--no-starvation-only</b>)</p>
<p style="margin-left:11%;"><b>--suggest-nullable</b></p>
<p style="margin-left:17%;">Activates: Nullable annotation
sugesstions analysis (Conversely:
<b>--no-suggest-nullable</b>)</p>
<p style="margin-left:11%;"><b>--suggest-nullable-only</b></p>
<p style="margin-left:17%;">Activates: Enable
<b>--suggest-nullable</b> and disable all other checkers
(Conversely: <b>--no-suggest-nullable-only</b>)</p>
<p style="margin-left:11%;"><b>--no-uninit</b></p>
<p style="margin-left:17%;">Deactivates: checker for use of
@ -504,6 +541,25 @@ uninitialized values (Conversely: <b>--uninit</b>)</p>
<b>--uninit</b> and disable all other checkers (Conversely:
<b>--no-uninit-only</b>)</p>
<h2>BIABDUCTION CHECKER OPTIONS
<a name="BIABDUCTION CHECKER OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--biabduction-fallback-model-alloc-pattern</b>
<i>string</i></p>
<p style="margin-left:17%;">Regex of methods that should be
modelled as allocs if definition is missing</p>
<p style="margin-left:11%;"><b>--biabduction-fallback-model-free-pattern</b>
<i>string</i></p>
<p style="margin-left:17%;">Regex of methods that should be
modelled as free if definition is missing</p>
<h2>BUCK FLAVORS OPTIONS
<a name="BUCK FLAVORS OPTIONS"></a>
</h2>
@ -526,7 +582,13 @@ results directories specified in the dependency file
<i>int</i></p>
<p style="margin-left:17%;">Debug level for buffer-overrun
checker (0-4) (default: <i>0</i>)</p>
checker (0-4)</p>
<p style="margin-left:11%;"><b>--bo-relational-domain</b>
<i>{ oct | poly }</i></p>
<p style="margin-left:17%;">Select a relational domain
being used in the bufferoverrun checker (experimental)</p>
<h2>CLANG OPTIONS
<a name="CLANG OPTIONS"></a>
@ -534,12 +596,65 @@ checker (0-4) (default: <i>0</i>)</p>
<p style="margin-left:11%; margin-top: 1em"><b>--cxx-scope-guards</b>
<p style="margin-left:11%; margin-top: 1em"><b>--annotation-reachability-cxx</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify annotation reachability
analyses to be performed on C/C++/ObjC code. Each entry is a
JSON object whose key is the issue name. &quot;sources&quot;
and &quot;sinks&quot; can be specified either by symbol or
path prefix. &quot;sinks&quot; optionally can specify
&quot;overrides&quot; (by symbol or path prefix) that block
the reachability analysis when hit. Example:</p>
<p style="margin-left:11%;">{ <br>
&quot;ISOLATED_REACHING_CONNECT&quot;: { <br>
&quot;doc_url&quot;:
&quot;http:://optional/issue/doc/link.html&quot;, <br>
&quot;sources&quot;: { <br>
&quot;desc&quot;: &quot;Code that should not call connect
[optional]&quot;, <br>
&quot;paths&quot;: [ &quot;isolated/&quot; ] <br>
}, <br>
&quot;sinks&quot;: { <br>
&quot;symbols&quot;: [ &quot;connect&quot; ], <br>
&quot;overrides&quot;: { &quot;symbols&quot;: [
&quot;Trusted::&quot; ] } <br>
} <br>
} <br>
} <br>
This will cause us to create a new ISOLATED_REACHING_CONNECT
<br>
issue for every function whose source path starts with
&quot;isolated/&quot; <br>
that may reach the function named &quot;connect&quot;,
ignoring paths that <br>
go through a symbol starting with &quot;Trusted::&quot;.
<b><br>
--annotation-reachability-cxx-sources</b> <i>json</i></p>
<p style="margin-left:17%;">Override sources in all cxx
annotation reachability specs with the given sources
spec</p>
<p style="margin-left:11%;"><b>--cxx-scope-guards</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify scope guard classes
that can be read only by destructors without being reported
as dead stores. (default: <i>[]</i>)</p>
as dead stores.</p>
<p style="margin-left:11%;"><b>--liveness-dangerous-classes</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify classes where the
destructor should be ignored when computing liveness. In
other words, assignement to variables of these types (or
common wrappers around these types such as
<i>unique_ptr&lt;type&gt;</i>) will count as dead stores
when the variables are not read explicitly by the
program.</p>
<p style="margin-left:11%;"><b>--ml-buckets</b>
<i>,-separated sequence of { all | cf | arc | narc | cpp |
@ -549,38 +664,14 @@ unknown_origin }</i></p>
<p style="margin-left:17%;">Specify the memory leak buckets
to be checked in C++:</p>
<p style="margin-left:11%;">- <b>cpp</b> from C++ code <br>
(default: <i>cf</i>) <b><br>
<p style="margin-left:11%;">- <b>cpp</b> from C++ code
<b><br>
--unsafe-malloc</b></p>
<p style="margin-left:17%;">Activates: Assume that
malloc(3) never returns null. (Conversely:
<b>--no-unsafe-malloc</b>)</p>
<h2>CRASHCONTEXT OPTIONS
<a name="CRASHCONTEXT OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--stacktrace</b>
<i>file</i></p>
<p style="margin-left:17%;">File path containing a
json-encoded Java crash stacktrace. Used to guide the
analysis (only with '-a crashcontext'). See
tests/codetoanalyze/java/crashcontext/*.json for examples of
the expected format.</p>
<p style="margin-left:11%;"><b>--stacktraces-dir</b>
<i>dir</i></p>
<p style="margin-left:17%;">Directory path containing
multiple json-encoded Java crash stacktraces. Used to guide
the analysis (only with '-a crashcontext'). See
tests/codetoanalyze/java/crashcontext/*.json for examples of
the expected format.</p>
<h2>JAVA OPTIONS
<a name="JAVA OPTIONS"></a>
</h2>
@ -598,8 +689,7 @@ annotations <br>
com.my.annotation.{Source1,Source2,Sink1} <br>
{ &quot;sources&quot; : [&quot;Source1&quot;,
&quot;Source2&quot;], &quot;sink&quot; : &quot;Sink1&quot; }
<br>
(default: <i>[]</i>) <b><br>
<b><br>
--external-java-packages</b> <i>+prefix</i></p>
<p style="margin-left:17%;">Specify a list of Java package
@ -607,6 +697,12 @@ prefixes for external Java packages. If set, the analysis
will not report non-actionable warnings on those
packages.</p>
<p style="margin-left:11%;"><b>--java-version</b>
<i>int</i></p>
<p style="margin-left:17%;">The version of Java being used.
Set it to your Java version if mvn is failing.</p>
<h2>QUANDARY CHECKER OPTIONS
<a name="QUANDARY CHECKER OPTIONS"></a>
</h2>
@ -617,25 +713,25 @@ packages.</p>
<i>json</i></p>
<p style="margin-left:17%;">Specify endpoint classes for
Quandary (default: <i>[]</i>)</p>
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sanitizers</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sanitizers for
Quandary (default: <i>[]</i>)</p>
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sinks</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sinks for
Quandary (default: <i>[]</i>)</p>
Quandary</p>
<p style="margin-left:11%;"><b>--quandary-sources</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom sources for
Quandary (default: <i>[]</i>)</p>
Quandary</p>
<h2>RACERD CHECKER OPTIONS
<a name="RACERD CHECKER OPTIONS"></a>
@ -643,12 +739,17 @@ Quandary (default: <i>[]</i>)</p>
<p style="margin-left:11%; margin-top: 1em"><b>--threadsafe-aliases</b>
<p style="margin-left:11%; margin-top: 1em"><b>--racerd-guardedby</b></p>
<p style="margin-left:17%;">Activates: Check @GuardedBy
annotations with RacerD (Conversely:
<b>--no-racerd-guardedby</b>)</p>
<p style="margin-left:11%;"><b>--threadsafe-aliases</b>
<i>json</i></p>
<p style="margin-left:17%;">Specify custom annotations that
should be considered aliases of @ThreadSafe (default:
<i>[]</i>)</p>
should be considered aliases of @ThreadSafe</p>
<h2>SIOF CHECKER OPTIONS
<a name="SIOF CHECKER OPTIONS"></a>
@ -660,13 +761,10 @@ should be considered aliases of @ThreadSafe (default:
<p style="margin-left:17%;">Activates: Do not assume that
iostreams (cout, cerr, ...) are always initialized. The
default is to assume they are always initialized when
<b>--cxx-infer-headers</b> is false to avoid false positives
due to lack of models of the proper initialization of io
streams. However, if your program compiles against a recent
libstdc++ then the infer models are not needed for precision
and it is safe to turn this option on. (Conversely:
<b>--no-siof-check-iostreams</b>)</p>
default is to assume they are always initialized to avoid
false positives. However, if your program compiles against a
recent libstdc++ then it is safe to turn this option on.
(Conversely: <b>--no-siof-check-iostreams</b>)</p>
<p style="margin-left:11%;"><b>--siof-safe-methods</b>
<i>+string</i></p>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:58 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:48 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -118,22 +118,19 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--force-delete-results-dir</b></p>
@ -148,12 +145,12 @@ infer results directory. (Conversely:
<p style="margin-left:17%;">Proceed as if the first
argument after <b>--</b> was <i>command</i>. Possible
values: <i>analyze</i>, <i>ant</i>, <i>buck</i>,
<i>gradle</i>, <i>gradlew</i>, <i>java</i>, <i>javac</i>,
<i>cc</i>, <i>clang</i>, <i>gcc</i>, <i>clang++</i>,
<i>c++</i>, <i>g++</i>, <i>make</i>, <i>configure</i>,
<i>cmake</i>, <i>waf</i>, <i>mvn</i>, <i>mvnw</i>,
<i>ndk-build</i>, <i>python</i>, <i>xcodebuild</i>.</p>
values: <i>ant</i>, <i>buck</i>, <i>gradle</i>,
<i>gradlew</i>, <i>java</i>, <i>javac</i>, <i>cc</i>,
<i>clang</i>, <i>gcc</i>, <i>clang++</i>, <i>c++</i>,
<i>g++</i>, <i>make</i>, <i>configure</i>, <i>cmake</i>,
<i>waf</i>, <i>mvn</i>, <i>mvnw</i>, <i>ndk-build</i>,
<i>xcodebuild</i>.</p>
<p style="margin-left:11%;"><b>--help</b></p>
@ -165,8 +162,7 @@ values: <i>analyze</i>, <i>ant</i>, <i>buck</i>,
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
@ -186,19 +182,25 @@ make only)</p>
<p style="margin-left:17%;">Activates: Also log messages to
stdout and stderr (Conversely: <b>--no-print-logs</b>)</p>
<p style="margin-left:11%;"><b>--progress-bar-style</b>
<i>{ auto | plain | multiline }</i></p>
<p style="margin-left:17%;">Style of the progress bar.
<b>auto</b> selects <b>multiline</b> if connected to a tty,
otherwise <b>plain</b>.</p>
<p style="margin-left:11%;"><b>--project-root</b>,<b>-C</b>
<i>dir</i></p>
<p style="margin-left:17%;">Specify the root directory of
the project (default: <i>/home/jul/infer.fb</i>)</p>
the project</p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory (default:
<i>/home/jul/infer.fb/infer-out</i>)</p>
files in the specified directory</p>
<p style="margin-left:11%;"><b>--skip-analysis-in-path</b>
<i>+path_prefix_OCaml_regex</i></p>
@ -206,6 +208,12 @@ files in the specified directory (default:
<p style="margin-left:17%;">Ignore files whose path matches
the given prefix (can be specified multiple times)</p>
<p style="margin-left:11%;"><b>--sqlite-lock-timeout</b>
<i>int</i></p>
<p style="margin-left:17%;">Timeout for SQLite results
database operations, in milliseconds.</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
@ -242,6 +250,13 @@ compilation database, with or without dependencies.</p>
the <b>--buck-compilation-database deps</b> option. By
default, all recursive dependencies are captured.</p>
<p style="margin-left:11%;"><b>--buck-targets-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of buck targets
matched by the specified regular expression.</p>
<h2>BUCK FLAVORS OPTIONS
<a name="BUCK FLAVORS OPTIONS"></a>
</h2>
@ -256,10 +271,18 @@ append to targets discovered by the
<b>--buck-compilation-database</b> option.</p>
<p style="margin-left:11%;"><b>--buck-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified regular expression (only the &quot;flavors
(C++)&quot; Buck integration is supported, not Java).</p>
<p style="margin-left:11%;"><b>--capture-blacklist</b>
<i>regex</i></p>
<p style="margin-left:17%;">Skip analysis of files matched
by the specified regular expression</p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified OCaml regular expression (only supported by
the javac integration for now).</p>
<p style="margin-left:11%;"><b>--flavors</b></p>
@ -275,6 +298,13 @@ using Buck flavors (clang only), eg <i>&rsquo;infer
arguments to invocations of <i>&rsquo;buck
build&rsquo;</i></p>
<p style="margin-left:11%;"><b>--Xbuck-no-inline</b>
<i>+string</i></p>
<p style="margin-left:17%;">Pass values as command-line
arguments to invocations of <i>&rsquo;buck build&rsquo;</i>,
don't inline any args starting with '@'</p>
<p style="margin-left:11%;"><b>--xcode-developer-dir</b>
<i>XCODE_DEVELOPER_DIR</i></p>
@ -303,8 +333,7 @@ buck-out</p>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--no-default-linters</b></p>
@ -393,6 +422,19 @@ AL files, then emit possible errors in JSON format to stdout
<p style="margin-left:17%;">Specify a file containing the
AST of the program, in biniou format</p>
<p style="margin-left:11%;"><b>--clang-blacklisted-flags</b>
<i>+string</i></p>
<p style="margin-left:17%;">Clang flags to filter out</p>
<p style="margin-left:11%;"><b>--clang-blacklisted-flags-with-arg</b>
<i>+string</i></p>
<p style="margin-left:17%;">Clang flags (taking args) to
filter out</p>
<p style="margin-left:11%;"><b>--compilation-database</b>
<i>+path</i></p>
@ -419,14 +461,6 @@ component kit file cyclomatic complexity (Conversely:
<p style="margin-left:17%;">Deactivates: Analyze C++
methods (Conversely: <b>--cxx</b>)</p>
<p style="margin-left:11%;"><b>--cxx-infer-headers</b></p>
<p style="margin-left:17%;">Activates: Include C++ header
models during compilation. Infer swaps some C++ headers for
its own in order to get a better model of, eg, the standard
library. This can sometimes cause compilation failures.
(Conversely: <b>--no-cxx-infer-headers</b>)</p>
<p style="margin-left:11%;"><b>--dump-duplicate-symbols</b></p>
@ -453,6 +487,12 @@ header files (Conversely: <b>--no-headers</b>)</p>
<p style="margin-left:17%;">Ignore headers whose path
matches the given prefix</p>
<p style="margin-left:11%;"><b>--Xclang</b>
<i>+string</i></p>
<p style="margin-left:17%;">Pass values as command-line
arguments to invocations of clang</p>
<p style="margin-left:11%;"><b>--xcpretty</b></p>
<p style="margin-left:17%;">Activates: Infer will use
@ -493,6 +533,12 @@ generated class files</p>
<p style="margin-left:17%;">Specify the Java compiler jar
used to generate the bytecode</p>
<p style="margin-left:11%;"><b>--java-version</b>
<i>int</i></p>
<p style="margin-left:17%;">The version of Java being used.
Set it to your Java version if mvn is failing.</p>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:58 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:48 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -91,22 +91,19 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--force-delete-results-dir</b></p>
@ -126,8 +123,7 @@ infer results directory. (Conversely:
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:59 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:49 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -24,6 +24,9 @@
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXPLORE BUGS">EXPLORE BUGS</a><br>
<a href="#EXPLORE PROCEDURES">EXPLORE PROCEDURES</a><br>
<a href="#EXPLORE SOURCE FILES">EXPLORE SOURCE FILES</a><br>
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
<a href="#FILES">FILES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
@ -46,22 +49,27 @@ explore the error traces in infer reports</p>
<p style="margin-left:11%; margin-top: 1em"><b>infer
explore</b> <i>[options]</i> <b><br>
infer explore --procedures</b> <i>[options]</i></p>
infer explore --procedures</b> <i>[options]</i> <b><br>
infer explore --source-files</b> <i>[options]</i></p>
<h2>DESCRIPTION
<a name="DESCRIPTION"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em">Show the list
of bugs on the console and explore symbolic program traces
emitted by infer to explain a report. Can also generate an
HTML report from a JSON report.</p>
<p style="margin-left:11%; margin-top: 1em">If
<b>--procedures</b> is passed, print information about each
procedure captured by infer.</p>
<p style="margin-left:11%; margin-top: 1em">If
<b>--source-files</b> is passed, print information about
captured source files.</p>
<p style="margin-left:11%; margin-top: 1em">Otherwise, show
the list of bugs on the console and explore symbolic program
traces emitted by infer to explain a report. Can also
generate an HTML report from a JSON report.</p>
<h2>OPTIONS
<a name="OPTIONS"></a>
</h2>
@ -78,15 +86,26 @@ procedure captured by infer.</p>
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
<p style="margin-left:17%;">Show this manual with all
internal options in the INTERNAL OPTIONS section</p>
<p style="margin-left:11%;"><b>--html</b></p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory</p>
<h2>EXPLORE BUGS
<a name="EXPLORE BUGS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--html</b></p>
<p style="margin-left:17%;">Activates: Generate html
report. (Conversely: <b>--no-html</b>)</p>
@ -103,7 +122,24 @@ skipped. If omitted, all levels are shown.</p>
<p style="margin-left:17%;">Activates: Show the list of
reports and exit (Conversely: <b>--no-only-show</b>)</p>
<p style="margin-left:11%;"><b>--procedures</b></p>
<p style="margin-left:11%;"><b>--select</b> <i>N</i></p>
<p style="margin-left:17%;">Select bug number <i>N</i>. If
omitted, prompt for input.</p>
<p style="margin-left:11%;"><b>--no-source-preview</b></p>
<p style="margin-left:17%;">Deactivates: print code
excerpts around trace elements (Conversely:
<b>--source-preview</b>)</p>
<h2>EXPLORE PROCEDURES
<a name="EXPLORE PROCEDURES"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--procedures</b></p>
<p style="margin-left:17%;">Activates: Print functions and
methods discovered by infer (Conversely:
@ -133,10 +169,9 @@ Objective-C accessor (Conversely:
print functions and methods (procedures) matching the
specified <i>filter</i>. A procedure filter is of the form
<i>path_pattern:procedure_name</i>. Patterns are interpreted
by SQLite: use <b>_</b> to match any one character and
<b>%</b> to match any sequence of characters. For instance,
to keep only methods named &quot;foo&quot;, one can use the
filter &quot;%:foo&quot;.</p>
as OCaml Str regular expressions. For instance, to keep only
methods named &quot;foo&quot;, one can use the filter
&quot;.*:foo&quot;, or &quot;foo&quot; for short.</p>
<p style="margin-left:11%;"><b>--procedures-name</b></p>
@ -152,29 +187,24 @@ file in which the procedure definition or declaration was
found in the output of <b>--procedures</b> (Conversely:
<b>--procedures-source-file</b>)</p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<h2>EXPLORE SOURCE FILES
<a name="EXPLORE SOURCE FILES"></a>
</h2>
<p style="margin-left:17%;">Write results and internal
files in the specified directory (default:
<i>/home/jul/infer.fb/infer-out</i>)</p>
<p style="margin-left:11%;"><b>--select</b> <i>N</i></p>
<p style="margin-left:17%;">Select bug number <i>N</i>. If
omitted, prompt for input.</p>
<p style="margin-left:11%;"><b>--source-files</b></p>
<p style="margin-left:11%; margin-top: 1em"><b>--source-files</b></p>
<p style="margin-left:17%;">Activates: Print source files
discovered by infer (Conversely:
<b>--no-source-files</b>)</p>
<p style="margin-left:11%;"><b>--source-files-cfgs</b></p>
<p style="margin-left:11%;"><b>--source-files-cfg</b></p>
<p style="margin-left:17%;">Activates: Print the Cfgs of
each source file in the output of <b>--source-files</b>
(Conversely: <b>--no-source-files-cfgs</b>)</p>
<p style="margin-left:17%;">Activates: Output a dotty file
in infer-out/captured for each source file in the output of
<b>--source-files</b> (Conversely:
<b>--no-source-files-cfg</b>)</p>
<p style="margin-left:11%;"><b>--source-files-filter</b>
<i>filter</i></p>
@ -182,10 +212,8 @@ each source file in the output of <b>--source-files</b>
<p style="margin-left:17%;">With <b>--source-files</b>,
only print source files matching the specified
<i>filter</i>. The filter is a pattern that should match the
file path. Patterns are interpreted by SQLite: use <b>_</b>
to match any one character and <b>%</b> to match any
sequence of characters. For instance, &quot;lib/%.c&quot;
matches only C files in the lib directory.</p>
file path. Patterns are interpreted as OCaml Str regular
expressions.</p>
<p style="margin-left:11%;"><b>--source-files-freshly-captured</b></p>
@ -211,12 +239,6 @@ environment of each source file in the output of
<b>--source-files</b> (Conversely:
<b>--no-source-files-type-environment</b>)</p>
<p style="margin-left:11%;"><b>--no-source-preview</b></p>
<p style="margin-left:17%;">Deactivates: print code
excerpts around trace elements (Conversely:
<b>--source-preview</b>)</p>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:59 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:49 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -24,6 +24,7 @@
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#HOISTING OPTIONS">HOISTING OPTIONS</a><br>
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
<a href="#FILES">FILES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
@ -66,28 +67,31 @@ in the results directory.</p>
<p style="margin-left:11%; margin-top: 1em"><b>--&lt;analyzer&gt;-blacklist-files-containing</b>
<p style="margin-left:11%; margin-top: 1em"><b>--censor-report</b>
<i>+string</i></p>
<p style="margin-left:17%;">blacklist files containing the
specified string for the given analyzer (see
<b>--analyzer</b> for valid values)</p>
<p style="margin-left:11%;"><b>--&lt;analyzer&gt;-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">blacklist the analysis of files
whose relative path matches the specified OCaml-style regex
(to whitelist:
<b>--&lt;analyzer&gt;-whitelist-path-regex</b>)</p>
<p style="margin-left:11%;"><b>--&lt;analyzer&gt;-suppress-errors</b>
<i>+error_name</i></p>
<p style="margin-left:17%;">do not report a type of
errors</p>
<p style="margin-left:17%;">Specify a filter for issues to
be censored by adding a 'censored_reason' field in the json
report. Infer will not report censored issues on the console
output and in bugs.txt, but tools that post-process the json
report can take them into account. If multiple filters are
specified, they are applied in the order in which they are
specified. Each filter is applied to each issue detected,
and only issues which are accepted by all filters are
reported. Each filter is of the form:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--debug</b>,<b>-g</b></p>
@ -115,22 +119,19 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--differential-filter-files</b>
@ -151,29 +152,192 @@ which types of issue should be reported once the checkers
have run. In particular, note that disabling issue types
does not make the corresponding checker not run.</p>
<p style="margin-left:11%;">By default, the following issue
types are disabled: <br>
ANALYSIS_STOPS, ARRAY_OUT_OF_BOUNDS_L1,
ARRAY_OUT_OF_BOUNDS_L2, <br>
ARRAY_OUT_OF_BOUNDS_L3, BUFFER_OVERRUN_L4,
BUFFER_OVERRUN_L5, <br>
BUFFER_OVERRUN_U5, CLASS_CAST_EXCEPTION,
CONDITION_ALWAYS_FALSE, <br>
CONDITION_ALWAYS_TRUE, DANGLING_POINTER_DEREFERENCE, <br>
DIVIDE_BY_ZERO, <br>
GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL,
<p style="margin-left:11%;">Available issue types are as
follows: <br>
ALLOCATION_COMPLEXITY_INCREASE (enabled by default), <br>
ALLOCATION_COMPLEXITY_INCREASE_COLD_START (enabled by
default), <br>
ANALYSIS_STOPS (disabled by default), <br>
ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), <br>
ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), <br>
ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), <br>
Abduction_case_not_implemented (enabled by default), <br>
Array_of_pointsto (enabled by default), <br>
Assert_failure (enabled by default), <br>
BUFFER_OVERRUN_L1 (enabled by default), <br>
BUFFER_OVERRUN_L2 (enabled by default), <br>
BUFFER_OVERRUN_L3 (enabled by default), <br>
BUFFER_OVERRUN_L4 (disabled by default), <br>
BUFFER_OVERRUN_L5 (disabled by default), <br>
BUFFER_OVERRUN_R2 (enabled by default), <br>
BUFFER_OVERRUN_S2 (enabled by default), <br>
BUFFER_OVERRUN_U5 (disabled by default), <br>
Bad_footprint (enabled by default), <br>
CHECKERS_ALLOCATES_MEMORY (enabled by default), <br>
CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default),
<br>
INFERBO_ALLOC_MAY_BE_BIG, INFERBO_ALLOC_MAY_BE_NEGATIVE,
CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), <br>
CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by
default), <br>
CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), <br>
CHECKERS_IMMUTABLE_CAST (enabled by default), <br>
CHECKERS_PRINTF_ARGS (enabled by default), <br>
CLASS_CAST_EXCEPTION (disabled by default), <br>
CLASS_LOAD (enabled by default), <br>
COMPARING_FLOAT_FOR_EQUALITY (enabled by default), <br>
COMPONENT_FACTORY_FUNCTION (enabled by default), <br>
COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default),
<br>
INFINITE_EXECUTION_TIME_CALL, NULL_TEST_AFTER_DEREFERENCE,
COMPONENT_FILE_LINE_COUNT (enabled by default), <br>
COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by
default), <br>
COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by
default), <br>
COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by
default), <br>
CONDITION_ALWAYS_FALSE (disabled by default), <br>
CONDITION_ALWAYS_TRUE (disabled by default), <br>
CREATE_INTENT_FROM_URI (enabled by default), <br>
CROSS_SITE_SCRIPTING (enabled by default), <br>
Cannot_star (enabled by default), <br>
Codequery (enabled by default), <br>
DANGLING_POINTER_DEREFERENCE (disabled by default), <br>
DEADLOCK (enabled by default), <br>
DEAD_STORE (enabled by default), <br>
DEALLOCATE_STACK_VARIABLE (enabled by default), <br>
DEALLOCATE_STATIC_MEMORY (enabled by default), <br>
DEALLOCATION_MISMATCH (enabled by default), <br>
DIVIDE_BY_ZERO (disabled by default), <br>
DO_NOT_REPORT (enabled by default), <br>
EMPTY_VECTOR_ACCESS (enabled by default), <br>
ERADICATE_CONDITION_REDUNDANT (enabled by default), <br>
ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default),
<br>
RETURN_VALUE_IGNORED, STACK_VARIABLE_ADDRESS_ESCAPE, <br>
UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION. <br>
See also <b>--report-issue-type</b>. <br>
(default: <i><br>
ANALYSIS_STOPS,ARRAY_OUT_OF_BOUNDS_L1,ARRAY_OUT_OF_BOUNDS_L2,ARRAY_OUT_OF_BOUNDS_L3,BUFFER_OVERRUN_L4,BUFFER_OVERRUN_L5,BUFFER_OVERRUN_U5,CLASS_CAST_EXCEPTION,CONDITION_ALWAYS_FALSE,CONDITION_ALWAYS_TRUE,DANGLING_POINTER_DEREFERENCE,DIVIDE_BY_ZERO,GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL,INFERBO_ALLOC_MAY_BE_BIG,INFERBO_ALLOC_MAY_BE_NEGATIVE,INFINITE_EXECUTION_TIME_CALL,NULL_TEST_AFTER_DEREFERENCE,RETURN_VALUE_IGNORED,STACK_VARIABLE_ADDRESS_ESCAPE,UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION</i>)
<b><br>
ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), <br>
ERADICATE_FIELD_NOT_MUTABLE (enabled by default), <br>
ERADICATE_FIELD_NOT_NULLABLE (enabled by default), <br>
ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), <br>
ERADICATE_FIELD_VALUE_ABSENT (enabled by default), <br>
ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION
(enabled <br>
by default), <br>
ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled
by <br>
default), <br>
ERADICATE_NULLABLE_DEREFERENCE (enabled by default), <br>
ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), <br>
ERADICATE_PARAMETER_VALUE_ABSENT (enabled by default), <br>
ERADICATE_RETURN_NOT_NULLABLE (enabled by default), <br>
ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), <br>
ERADICATE_RETURN_VALUE_NOT_PRESENT (enabled by default),
<br>
ERADICATE_VALUE_NOT_PRESENT (enabled by default), <br>
EXECUTION_TIME_COMPLEXITY_INCREASE (enabled by default),
<br>
EXECUTION_TIME_COMPLEXITY_INCREASE_COLD_START (enabled by
<br>
default), <br>
EXPENSIVE_ALLOCATION (disabled by default), <br>
EXPENSIVE_ALLOCATION_COLD_START (disabled by default), <br>
EXPENSIVE_EXECUTION_TIME (disabled by default), <br>
EXPENSIVE_EXECUTION_TIME_COLD_START (disabled by default),
<br>
EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), <br>
EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), <br>
Failure_exe (enabled by default), <br>
GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL
<br>
(disabled by default), <br>
GRAPHQL_FIELD_ACCESS (enabled by default), <br>
GUARDEDBY_VIOLATION (enabled by default), <br>
INEFFICIENT_KEYSET_ITERATOR (enabled by default), <br>
INFERBO_ALLOC_IS_BIG (enabled by default), <br>
INFERBO_ALLOC_IS_NEGATIVE (enabled by default), <br>
INFERBO_ALLOC_IS_ZERO (enabled by default), <br>
INFERBO_ALLOC_MAY_BE_BIG (enabled by default), <br>
INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), <br>
INFINITE_ALLOCATION (disabled by default), <br>
INFINITE_EXECUTION_TIME (disabled by default), <br>
INHERENTLY_DANGEROUS_FUNCTION (enabled by default), <br>
INSECURE_INTENT_HANDLING (enabled by default), <br>
INTEGER_OVERFLOW_L1 (enabled by default), <br>
INTEGER_OVERFLOW_L2 (enabled by default), <br>
INTEGER_OVERFLOW_L5 (disabled by default), <br>
INTEGER_OVERFLOW_R2 (enabled by default), <br>
INTEGER_OVERFLOW_U5 (disabled by default), <br>
INTERFACE_NOT_THREAD_SAFE (enabled by default), <br>
INVARIANT_CALL (enabled by default), <br>
IVAR_NOT_NULL_CHECKED (enabled by default), <br>
Internal_error (enabled by default), <br>
JAVASCRIPT_INJECTION (enabled by default), <br>
LOCK_CONSISTENCY_VIOLATION (enabled by default), <br>
LOGGING_PRIVATE_DATA (enabled by default), <br>
Leak_after_array_abstraction (enabled by default), <br>
Leak_in_footprint (enabled by default), <br>
MEMORY_LEAK (enabled by default), <br>
MISSING_REQUIRED_PROP (enabled by default), <br>
MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by
default), <br>
Missing_fld (enabled by default), <br>
NULLSAFE_FIELD_NOT_NULLABLE (enabled by default), <br>
NULLSAFE_NULLABLE_DEREFERENCE (enabled by default), <br>
NULL_DEREFERENCE (enabled by default), <br>
NULL_TEST_AFTER_DEREFERENCE (disabled by default), <br>
PARAMETER_NOT_NULL_CHECKED (enabled by default), <br>
POINTER_SIZE_MISMATCH (enabled by default), <br>
PRECONDITION_NOT_FOUND (enabled by default), <br>
PRECONDITION_NOT_MET (enabled by default), <br>
PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default),
<br>
PURE_FUNCTION (enabled by default), <br>
QUANDARY_TAINT_ERROR (enabled by default), <br>
REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default),
<br>
RESOURCE_LEAK (enabled by default), <br>
RETAIN_CYCLE (enabled by default), <br>
RETURN_EXPRESSION_REQUIRED (enabled by default), <br>
RETURN_STATEMENT_MISSING (enabled by default), <br>
RETURN_VALUE_IGNORED (disabled by default), <br>
SHELL_INJECTION (enabled by default), <br>
SHELL_INJECTION_RISK (enabled by default), <br>
SKIP_FUNCTION (enabled by default), <br>
SKIP_POINTER_DEREFERENCE (enabled by default), <br>
SQL_INJECTION (enabled by default), <br>
SQL_INJECTION_RISK (enabled by default), <br>
STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), <br>
STARVATION (enabled by default), <br>
STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default),
<br>
STRICT_MODE_VIOLATION (enabled by default), <br>
Symexec_memory_error (enabled by default), <br>
TAINTED_BUFFER_ACCESS (enabled by default), <br>
TAINTED_MEMORY_ALLOCATION (enabled by default), <br>
THREAD_SAFETY_VIOLATION (enabled by default), <br>
TOPL_ERROR (enabled by default), <br>
UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by <br>
default), <br>
UNINITIALIZED_VALUE (enabled by default), <br>
UNREACHABLE_CODE (enabled by default), <br>
UNSAFE_GUARDED_BY_ACCESS (enabled by default), <br>
UNTRUSTED_BUFFER_ACCESS (disabled by default), <br>
UNTRUSTED_DESERIALIZATION (enabled by default), <br>
UNTRUSTED_DESERIALIZATION_RISK (enabled by default), <br>
UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), <br>
UNTRUSTED_FILE (enabled by default), <br>
UNTRUSTED_FILE_RISK (enabled by default), <br>
UNTRUSTED_HEAP_ALLOCATION (disabled by default), <br>
UNTRUSTED_INTENT_CREATION (enabled by default), <br>
UNTRUSTED_URL_RISK (enabled by default), <br>
UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), <br>
USER_CONTROLLED_SQL_RISK (enabled by default), <br>
USE_AFTER_DELETE (enabled by default), <br>
USE_AFTER_FREE (enabled by default), <br>
USE_AFTER_LIFETIME (enabled by default), <br>
Unknown_proc (enabled by default), <br>
VECTOR_INVALIDATION (enabled by default), <br>
Wrong_argument_number (enabled by default), <br>
ZERO_ALLOCATION (disabled by default), <br>
ZERO_EXECUTION_TIME (disabled by default). <b><br>
--enable-issue-type</b> <i>+issue_type</i></p>
<p style="margin-left:17%;">Show reports coming from this
@ -183,29 +347,6 @@ that enabling issue types does not make the corresponding
checker run; see individual checker options to turn them on
or off.</p>
<p style="margin-left:11%;"><b>--filter-report</b>
<i>+string</i></p>
<p style="margin-left:17%;">Specify a filter for issues to
report. If multiple filters are specified, they are applied
in the order in which they are specified. Each filter is
applied to each issue detected, and only issues which are
accepted by all filters are reported. Each filter is of the
form:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--no-filtering</b>,<b>-F</b></p>
@ -230,8 +371,7 @@ files generated by the analysis).</p>
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
@ -239,18 +379,15 @@ undefined, and to <b>pager</b> otherwise. (default:
internal options in the INTERNAL OPTIONS section</p>
<p style="margin-left:11%;"><b>--issues-fields</b>
<i>,-separated sequence of { bug_class | kind | bug_type |
<i>,-separated sequence of { bug_type | bucket | qualifier
<br>
bucket | qualifier | severity | visibility | line | column |
procedure <br>
| procedure_id | procedure_start_line | file | bug_trace |
key | hash | <br>
line_offset | procedure_id_without_crc | <br>
| severity | line | column | procedure |
procedure_start_line | file | <br>
bug_trace | key | hash | line_offset | <br>
qualifier_contains_potential_exception_note }</i></p>
<p style="margin-left:17%;">Fields to emit with
<b>--issues-tests</b> (default: <i>file procedure
line_offset bug_type bucket kind bug_trace</i>)</p>
<b>--issues-tests</b></p>
<p style="margin-left:11%;"><b>--issues-tests</b>
<i>file</i></p>
@ -274,7 +411,7 @@ stdout and stderr (Conversely: <b>--no-print-logs</b>)</p>
<i>dir</i></p>
<p style="margin-left:17%;">Specify the root directory of
the project (default: <i>/home/jul/infer.fb</i>)</p>
the project</p>
<p style="margin-left:11%;"><b>--quiet</b>,<b>-q</b></p>
@ -283,18 +420,41 @@ on standard output (default: only print for the
<b>report</b> command) (Conversely: <b>--no-quiet</b> |
<b>-Q</b>)</p>
<p style="margin-left:11%;"><b>--report-blacklist-files-containing</b>
<i>+string</i></p>
<p style="margin-left:17%;">blacklist files containing the
specified string for the given analyzer (see
<b>--analyzer</b> for valid values)</p>
<p style="margin-left:11%;"><b>--report-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">blacklist the analysis of files
whose relative path matches the specified OCaml-style regex
(to whitelist:
<b>--&lt;analyzer&gt;-whitelist-path-regex</b>)</p>
<p style="margin-left:11%;"><b>--report-formatter</b> <i>{
none | phabricator }</i></p>
<p style="margin-left:17%;">Which formatter to use when
emitting the report (default: <i>phabricator</i>)</p>
emitting the report</p>
<p style="margin-left:11%;"><b>--report-suppress-errors</b>
<i>+error_name</i></p>
<p style="margin-left:17%;">do not report a type of
errors</p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory (default:
<i>/home/jul/infer.fb/infer-out</i>)</p>
files in the specified directory</p>
<p style="margin-left:11%;"><b>--skip-analysis-in-path-skips-compilation</b></p>
@ -304,6 +464,19 @@ files in the specified directory (default:
(Conversely:
<b>--no-skip-analysis-in-path-skips-compilation</b>)</p>
<h2>HOISTING OPTIONS
<a name="HOISTING OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--no-hoisting-report-only-expensive</b></p>
<p style="margin-left:17%;">Deactivates: [Hoisting] Report
loop-invariant calls only when the function is expensive,
i.e. at least linear (Conversely:
<b>--hoisting-report-only-expensive</b>)</p>
<h2>ENVIRONMENT
<a name="ENVIRONMENT"></a>
</h2>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:59 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:49 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -75,7 +75,19 @@ follow the same format as normal infer reports.</p>
<p style="margin-left:11%; margin-top: 1em"><b>--debug</b>,<b>-g</b></p>
<p style="margin-left:11%; margin-top: 1em"><b>--costs-current</b>
<i>path</i></p>
<p style="margin-left:17%;">Costs report of the latest
revision</p>
<p style="margin-left:11%;"><b>--costs-previous</b>
<i>path</i></p>
<p style="margin-left:17%;">Costs report of the base
revision to use for comparison</p>
<p style="margin-left:11%;"><b>--debug</b>,<b>-g</b></p>
<p style="margin-left:17%;">Activates: Debug mode (also
sets <b>--debug-level 2</b>, <b>--developer-mode</b>,
@ -101,22 +113,19 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--file-renamings</b>
<i>path</i></p>
@ -134,8 +143,7 @@ renamings to use while computing differential reports</p>
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>

@ -1,5 +1,5 @@
<!-- Creator : groff version 1.22.3 -->
<!-- CreationDate: Thu Jun 7 16:35:59 2018 -->
<!-- Creator : groff version 1.22.4 -->
<!-- CreationDate: Tue May 12 16:45:49 2020 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@ -24,6 +24,7 @@
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#BUCK COMPILATION DATABASE OPTIONS">BUCK COMPILATION DATABASE OPTIONS</a><br>
<a href="#BUCK FLAVORS OPTIONS">BUCK FLAVORS OPTIONS</a><br>
<a href="#CLANG OPTIONS">CLANG OPTIONS</a><br>
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
@ -70,54 +71,31 @@ infer analyze</b> <i>[options]</i></p>
<p style="margin-left:11%; margin-top: 1em"><i><b>--analyzer</b></i>,<b>-a</b>
<i>{ checkers | infer | capture | compile | crashcontext |
<br>
linters }</i></p>
<p style="margin-left:17%;">Specify which analyzer to run
(only one at a time is supported):</p>
<p style="margin-left:11%;">- <b>biabduction</b>: run the
bi-abduction based checker only, in <br>
particular to check for memory errors <br>
- <b>checkers</b>: run the default checkers, including the
bi-abduction <br>
based checker for memory errors (default) <br>
- <b>infer</b>: alias for <b>biabduction</b> <br>
- <b>linters</b>: run linters based on the ast only (clang
only, <br>
activated by default) <br>
- <b>capture</b>: similar to specifying the <b>capture</b>
subcommand <br>
(DEPRECATED) <br>
- <b>compile</b>: similar to specifying the <b>compile</b>
subcommand <br>
(DEPRECATED) <br>
- <b>crashcontext</b>: experimental (see
<b>--crashcontext</b>) <b><br>
--&lt;analyzer&gt;-blacklist-files-containing</b>
<i>+string</i></p>
<p style="margin-left:17%;">blacklist files containing the
specified string for the given analyzer (see
<b>--analyzer</b> for valid values)</p>
<p style="margin-left:11%;"><b>--&lt;analyzer&gt;-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">blacklist the analysis of files
whose relative path matches the specified OCaml-style regex
(to whitelist:
<b>--&lt;analyzer&gt;-whitelist-path-regex</b>)</p>
<p style="margin-left:11%; margin-top: 1em"><i><b>--censor-report</b>
+string</i></p>
<p style="margin-left:11%;"><b>--&lt;analyzer&gt;-suppress-errors</b>
<i>+error_name</i></p>
<p style="margin-left:17%;">do not report a type of
errors</p>
<p style="margin-left:17%;">Specify a filter for issues to
be censored by adding a 'censored_reason' field in the json
report. Infer will not report censored issues on the console
output and in bugs.txt, but tools that post-process the json
report can take them into account. If multiple filters are
specified, they are applied in the order in which they are
specified. Each filter is applied to each issue detected,
and only issues which are accepted by all filters are
reported. Each filter is of the form:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--debug</b>,<b>-g</b></p>
@ -145,22 +123,19 @@ enabled <br>
--debug-level-analysis</b> <i>int</i></p>
<p style="margin-left:17%;">Debug level for the analysis.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-capture</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the capture.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--debug-level-linters</b>
<i>int</i></p>
<p style="margin-left:17%;">Debug level for the linters.
See <b>--debug-level</b> for accepted values. (default:
<i>0</i>)</p>
See <b>--debug-level</b> for accepted values.</p>
<p style="margin-left:11%;"><b>--fail-on-issue</b></p>
@ -168,29 +143,6 @@ See <b>--debug-level</b> for accepted values. (default:
2 if Infer found something to report (Conversely:
<b>--no-fail-on-issue</b>)</p>
<p style="margin-left:11%;"><b>--filter-report</b>
<i>+string</i></p>
<p style="margin-left:17%;">Specify a filter for issues to
report. If multiple filters are specified, they are applied
in the order in which they are specified. Each filter is
applied to each issue detected, and only issues which are
accepted by all filters are reported. Each filter is of the
form:
&rsquo;&lt;issue_type_regex&gt;:&lt;filename_regex&gt;:&lt;reason_string&gt;&rsquo;.
The first two components are OCaml Str regular expressions,
with an optional &rsquo;!&rsquo; character prefix. If a
regex has a &rsquo;!&rsquo; prefix, the polarity is
inverted, and the filter becomes a &quot;blacklist&quot;
instead of a &quot;whitelist&quot;. Each filter is
interpreted as an implication: an issue matches if it does
not match the &rsquo;issue_type_regex&rsquo; or if it does
match the &rsquo;filename_regex&rsquo;. The filenames that
are tested by the regex are relative to the
&rsquo;--project-root&rsquo; directory. The
&rsquo;&lt;reason_string&gt;&rsquo; is a non-empty string
used to explain why the issue was filtered.</p>
<p style="margin-left:11%;"><b>--force-delete-results-dir</b></p>
@ -204,12 +156,12 @@ infer results directory. (Conversely:
<p style="margin-left:17%;">Proceed as if the first
argument after <b>--</b> was <i>command</i>. Possible
values: <i>analyze</i>, <i>ant</i>, <i>buck</i>,
<i>gradle</i>, <i>gradlew</i>, <i>java</i>, <i>javac</i>,
<i>cc</i>, <i>clang</i>, <i>gcc</i>, <i>clang++</i>,
<i>c++</i>, <i>g++</i>, <i>make</i>, <i>configure</i>,
<i>cmake</i>, <i>waf</i>, <i>mvn</i>, <i>mvnw</i>,
<i>ndk-build</i>, <i>python</i>, <i>xcodebuild</i>.</p>
values: <i>ant</i>, <i>buck</i>, <i>gradle</i>,
<i>gradlew</i>, <i>java</i>, <i>javac</i>, <i>cc</i>,
<i>clang</i>, <i>gcc</i>, <i>clang++</i>, <i>c++</i>,
<i>g++</i>, <i>make</i>, <i>configure</i>, <i>cmake</i>,
<i>waf</i>, <i>mvn</i>, <i>mvnw</i>, <i>ndk-build</i>,
<i>xcodebuild</i>.</p>
<p style="margin-left:11%;"><b>--help</b></p>
@ -221,8 +173,7 @@ values: <i>analyze</i>, <i>ant</i>, <i>buck</i>,
<p style="margin-left:17%;">Show this help in the specified
format. <b>auto</b> sets the format to <b>plain</b> if the
environment variable <b>TERM</b> is &quot;dumb&quot; or
undefined, and to <b>pager</b> otherwise. (default:
<i>auto</i>)</p>
undefined, and to <b>pager</b> otherwise.</p>
<p style="margin-left:11%;"><b>--help-full</b></p>
@ -235,6 +186,13 @@ internal options in the INTERNAL OPTIONS section</p>
that logs events in a machine-readable format (Conversely:
<b>--no-log-events</b>)</p>
<p style="margin-left:11%;"><b>--log-skipped</b></p>
<p style="margin-left:17%;">Activates: Turn on the feature
that logs skipped functions (one per file) in a
machine-readable format (Conversely:
<b>--no-log-skipped</b>)</p>
<p style="margin-left:11%;"><b>--pmd-xml</b></p>
<p style="margin-left:17%;">Activates: Output issues in
@ -263,7 +221,7 @@ bar (Conversely: <b>--progress-bar</b> | <b>-p</b>)</p>
<i>dir</i></p>
<p style="margin-left:17%;">Specify the root directory of
the project (default: <i>/home/jul/infer.fb</i>)</p>
the project</p>
<p style="margin-left:11%;"><b>--no-report</b></p>
@ -271,6 +229,30 @@ the project (default: <i>/home/jul/infer.fb</i>)</p>
phase once the analysis has completed (Conversely:
<b>--report</b>)</p>
<p style="margin-left:11%;"><b>--report-blacklist-files-containing</b>
<i>+string</i></p>
<p style="margin-left:17%;">blacklist files containing the
specified string for the given analyzer (see
<b>--analyzer</b> for valid values)</p>
<p style="margin-left:11%;"><b>--report-blacklist-path-regex</b>
<i>+path_regex</i></p>
<p style="margin-left:17%;">blacklist the analysis of files
whose relative path matches the specified OCaml-style regex
(to whitelist:
<b>--&lt;analyzer&gt;-whitelist-path-regex</b>)</p>
<p style="margin-left:11%;"><b>--report-force-relative-path</b></p>
<p style="margin-left:17%;">Activates: Force converting an
absolute path to a relative path to the root directory
(Conversely: <b>--no-report-force-relative-path</b>)</p>
<p style="margin-left:11%;"><b>--report-hook</b>
<i>script</i></p>
@ -278,15 +260,20 @@ phase once the analysis has completed (Conversely:
after the analysis results are written. This script will be
passed, <b>--issues-json</b>, <b>--issues-txt</b>,
<b>--issues-xml</b>, <b>--project-root</b>, and
<b>--results-dir</b>. (default:
<i>/home/jul/infer.fb/infer/bin/../lib/python/report.py</i>)</p>
<b>--results-dir</b>.</p>
<p style="margin-left:11%;"><b>--report-suppress-errors</b>
<i>+error_name</i></p>
<p style="margin-left:17%;">do not report a type of
errors</p>
<p style="margin-left:11%;"><b>--results-dir</b>,<b>-o</b>
<i>dir</i></p>
<p style="margin-left:17%;">Write results and internal
files in the specified directory (default:
<i>/home/jul/infer.fb/infer-out</i>)</p>
files in the specified directory</p>
<p style="margin-left:11%;"><b>--skip-analysis-in-path</b>
<i>+path_prefix_OCaml_regex</i></p>
@ -294,6 +281,12 @@ files in the specified directory (default:
<p style="margin-left:17%;">Ignore files whose path matches
the given prefix (can be specified multiple times)</p>
<p style="margin-left:11%;"><b>--sqlite-lock-timeout</b>
<i>int</i></p>
<p style="margin-left:17%;">Timeout for SQLite results
database operations, in milliseconds.</p>
<p style="margin-left:11%;"><b>--version</b></p>
<p style="margin-left:17%;">Print version information and
@ -320,6 +313,18 @@ json format and exit</p>
build command</p></td></tr>
</table>
<h2>BUCK COMPILATION DATABASE OPTIONS
<a name="BUCK COMPILATION DATABASE OPTIONS"></a>
</h2>
<p style="margin-left:11%; margin-top: 1em"><b>--buck-targets-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of buck targets
matched by the specified regular expression.</p>
<h2>BUCK FLAVORS OPTIONS
<a name="BUCK FLAVORS OPTIONS"></a>
</h2>
@ -327,10 +332,18 @@ build command</p></td></tr>
<p style="margin-left:11%; margin-top: 1em"><b>--buck-blacklist</b>
<i>+regex</i></p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified regular expression (only the &quot;flavors
(C++)&quot; Buck integration is supported, not Java).</p>
<p style="margin-left:11%;"><b>--capture-blacklist</b>
<i>regex</i></p>
<p style="margin-left:17%;">Skip analysis of files matched
by the specified regular expression</p>
<p style="margin-left:17%;">Skip capture of files matched
by the specified OCaml regular expression (only supported by
the javac integration for now).</p>
<h2>CLANG OPTIONS
<a name="CLANG OPTIONS"></a>

File diff suppressed because it is too large Load Diff

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CommandDoc (InferBase.InferBase.CommandDoc)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.CommandDoc</span></h1></header><div class="spec module" id="module-CLOpt"><a href="#module-CLOpt" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>CLOpt = <a href="../index.html#module-CommandLineOption">CommandLineOption</a></code></div><div class="doc"></div></div><div class="spec type" id="type-data"><a href="#type-data" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>data</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-data.name" class="anchored"><td class="def field"><a href="#type-data.name" class="anchor"></a><code>name : string;</code></td></tr><tr id="type-data.command_doc" class="anchored"><td class="def field"><a href="#type-data.command_doc" class="anchor"></a><code>command_doc : <a href="../CommandLineOption/index.html#type-command_doc">CLOpt.command_doc</a>;</code></td></tr></table><code>}</code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-inferconfig_env_var"><a href="#val-inferconfig_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inferconfig_env_var : string</code></div><div class="doc"></div></div><div class="spec val" id="val-inferconfig_file"><a href="#val-inferconfig_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inferconfig_file : string</code></div><div class="doc"></div></div><div class="spec val" id="val-infer"><a href="#val-infer" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>infer : <a href="../CommandLineOption/index.html#type-command_doc">CLOpt.command_doc</a></code></div><div class="doc"></div></div><div class="spec val" id="val-data_of_command"><a href="#val-data_of_command" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>data_of_command : <a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-data">data</a></code></div><div class="doc"></div></div></body></html>

@ -1,49 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>CommandLineOption (InferBase.InferBase.CommandLineOption)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.CommandLineOption</span></h1></header><p>Definition and parsing of command line arguments</p><div class="spec val" id="val-warnf"><a href="#val-warnf" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>warnf : (<span class="type-var">'a</span>, Format.formatter, unit) <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Print to stderr in case of error, fails in strict mode</p></div></div><div class="spec type" id="type-parse_mode"><a href="#type-parse_mode" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>parse_mode</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-parse_mode.InferCommand" class="anchored"><td class="def constructor"><a href="#type-parse_mode.InferCommand" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">InferCommand</span></code></td><td class="doc"><p>(** parse arguments as arguments for infer *)</p></td></tr><tr id="type-parse_mode.Javac" class="anchored"><td class="def constructor"><a href="#type-parse_mode.Javac" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Javac</span></code></td><td class="doc"><p>(** parse arguments passed to the Java compiler *)</p></td></tr><tr id="type-parse_mode.NoParse" class="anchored"><td class="def constructor"><a href="#type-parse_mode.NoParse" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">NoParse</span></code></td><td class="doc"><p>(** all arguments are anonymous arguments, no parsing is attempted *)</p></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_parse_mode"><a href="#val-compare_parse_mode" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_parse_mode : <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-is_originator"><a href="#val-is_originator" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_originator : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-init_work_dir"><a href="#val-init_work_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init_work_dir : string</code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a t</code><code><span class="keyword"> = </span>?&#8288;deprecated:string list <span class="keyword">&#8209;&gt;</span> long:string <span class="keyword">&#8209;&gt;</span> ?&#8288;short:char <span class="keyword">&#8209;&gt;</span> ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> ?&#8288;meta:string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code><code></code></div><div class="doc"><p>The <code class="code">mk_*</code> functions declare command line options, while <code class="code">parse</code> parses then according to the
declared options.</p><p>The arguments of the declaration functions are largely treated uniformly:
</p><ul><li><code class="code">long</code> declares the option <code class="code">--long</code></li><li><code class="code">short</code> declares the option <code class="code">-short</code> as an alias</li><li><code class="code">deprecated</code> declares the option <code class="code">-key</code> as an alias, for each <code class="code">key</code> in <code class="code">deprecated</code></li><li><code class="code">default</code> specifies the default value</li><li><code class="code">default_to_string</code> is used to document the default value</li><li><code class="code">f</code> specifies a transformation to be performed on the parsed value before setting the config
variable</li><li><code class="code">symbols</code> is an association list sometimes used in place of <code class="code">f</code></li><li><code class="code">parse_mode</code> declares which parse mode the option is for</li><li><code class="code">in_help</code> indicates the man pages in which the command should be documented, as generated by
calling infer with --help. Otherwise it appears only in --help-full.</li><li><code class="code">meta</code> is a meta-variable naming the parsed value for documentation purposes</li><li>a documentation string</li></ul></div></div><div class="spec val" id="val-mk_set"><a href="#val-mk_set" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_set : <span class="type-var">'a</span> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_set variable value</code> defines a command line option which sets <code class="code">variable</code> to <code class="code">value</code>.</p></div></div><div class="spec val" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_bool : ?&#8288;deprecated_no:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;default:bool <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(bool <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_bool long short doc</code> defines a <code class="code">bool ref</code> set by the command line flag <code class="code">--long</code> (and
<code class="code">-s</code>), and cleared by the flag <code class="code">--no-long</code> (and <code class="code">-S</code>). If <code class="code">long</code> already has a &quot;no-&quot; prefix,
or <code class="code">s</code> is capital, then the existing prefixes will instead be removed. The default
value is <code class="code">false</code> unless overridden by <code class="code">~default:true</code>. The <code class="code">doc</code> string will be prefixed with
either &quot;Activates:&quot; or &quot;Deactivates:&quot;, so should be phrased accordingly.</p></div></div><div class="spec val" id="val-mk_bool_group"><a href="#val-mk_bool_group" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_bool_group : ?&#8288;deprecated_no:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;default:bool <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(bool <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref list <span class="keyword">&#8209;&gt;</span> bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref list <span class="keyword">&#8209;&gt;</span> bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref) <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_bool_group children not_children</code> behaves as <code class="code">mk_bool</code> with the addition that all the
<code class="code">children</code> are also set and the <code class="code">no_children</code> are unset. A child can be unset by including
&quot;--no-child&quot; later in the arguments.</p></div></div><div class="spec val" id="val-mk_int"><a href="#val-mk_int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_int : default:int <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(int <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> int <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_int_opt"><a href="#val-mk_int_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_int_opt : ?&#8288;default:int <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(int <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> int option <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_float_opt"><a href="#val-mk_float_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_float_opt : ?&#8288;default:float <span class="keyword">&#8209;&gt;</span> float option <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_string"><a href="#val-mk_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string : default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_string_opt"><a href="#val-mk_string_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string_opt : ?&#8288;default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> ?&#8288;mk_reset:bool <span class="keyword">&#8209;&gt;</span> string option <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>An option &quot;--<code class="code">long</code>-reset&quot; is automatically created that resets the reference to None when found
on the command line, unless <code class="code">mk_reset</code> is false.</p></div></div><div class="spec val" id="val-mk_string_list"><a href="#val-mk_string_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string_list : ?&#8288;default:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string list <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_string_list</code> defines a <code class="code">string list ref</code>, initialized to <code class="code">[]</code> unless overridden by
<code class="code">~default</code>. Each argument of an occurrence of the option will be prepended to the list, so the
final value will be in the reverse order they appeared on the command line.</p><p>An option &quot;--<code class="code">long</code>-reset&quot; is automatically created that resets the list to <code class="code"></code> when found on the
command line.</p></div></div><div class="spec val" id="val-mk_path"><a href="#val-mk_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path : default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>like <code class="code">mk_string</code> but will resolve the string into an absolute path so that children processes
agree on the absolute path that the option represents</p></div></div><div class="spec val" id="val-mk_path_opt"><a href="#val-mk_path_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path_opt : ?&#8288;default:string <span class="keyword">&#8209;&gt;</span> string option <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>analogous of <code class="code">mk_string_opt</code> with the extra feature of <code class="code">mk_path</code></p></div></div><div class="spec val" id="val-mk_path_list"><a href="#val-mk_path_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path_list : ?&#8288;default:string list <span class="keyword">&#8209;&gt;</span> string list <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>analogous of <code class="code">mk_string_list</code> with the extra feature of <code class="code">mk_path</code></p></div></div><div class="spec val" id="val-mk_symbol"><a href="#val-mk_symbol" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol : default:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol long symbols</code> defines a command line flag <code class="code">--long &lt;symbol&gt;</code> where <code class="code">(&lt;symbol&gt;,_)</code> is
an element of <code class="code">symbols</code>.</p></div></div><div class="spec val" id="val-mk_symbol_opt"><a href="#val-mk_symbol_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol_opt : symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> ?&#8288;mk_reset:bool <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol_opt</code> is similar to <code class="code">mk_symbol</code> but defaults to <code class="code">None</code>. If <code class="code">mk_reset</code> is false then do not create an additional --<code class="code">long</code>-reset option to reset the value of the option to <code class="code">None</code>.</p></div></div><div class="spec val" id="val-mk_symbol_seq"><a href="#val-mk_symbol_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol_seq : ?&#8288;default:<span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol_seq long symbols</code> defines a command line flag <code class="code">--long &lt;symbol sequence&gt;</code> where
<code class="code">&lt;symbol sequence&gt;</code> is a comma-separated sequence of <code class="code">&lt;symbol&gt;</code>s such that <code class="code">(&lt;symbol&gt;,_)</code> is an
element of <code class="code">symbols</code>.</p></div></div><div class="spec val" id="val-mk_json"><a href="#val-mk_json" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_json : Yojson.Basic.json <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_anon"><a href="#val-mk_anon" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_anon : unit <span class="keyword">&#8209;&gt;</span> string list <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p><code class="code">mk_anon ()</code> defines a <code class="code">string list ref</code> of the anonymous command line arguments, in the reverse
order they appeared on the command line.</p></div></div><div class="spec val" id="val-mk_rest_actions"><a href="#val-mk_rest_actions" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_rest_actions : ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> usage:string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a>) <span class="keyword">&#8209;&gt;</span> string list <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p><code class="code">mk_rest_actions doc ~usage command_to_parse_mode</code> defines a <code class="code">string list ref</code> of the command
line arguments following <code class="code">&quot;--&quot;</code>, in the reverse order they appeared on the command line. <code class="code">usage</code>
is the usage message in case of parse errors or if --help is passed. For example, calling
<code class="code">mk_action</code> and parsing <code class="code">exe -opt1 -opt2 -- arg1 arg2</code> will result in the returned ref
containing <code class="code">arg2; arg1</code>. Additionally, the first arg following <code class="code">&quot;--&quot;</code> is passed to
<code class="code">command_to_parse_mode</code> to obtain the parse action that will be used to parse the remaining
arguments.</p></div></div><div class="spec type" id="type-command_doc"><a href="#type-command_doc" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>command_doc</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_command_doc"><a href="#val-mk_command_doc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_command_doc : title:string <span class="keyword">&#8209;&gt;</span> section:int <span class="keyword">&#8209;&gt;</span> version:string <span class="keyword">&#8209;&gt;</span> date:string <span class="keyword">&#8209;&gt;</span> short_description:string <span class="keyword">&#8209;&gt;</span> synopsis:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> description:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;options:[ `Prepend of Cmdliner.Manpage.block list | `Replace of Cmdliner.Manpage.block list ] <span class="keyword">&#8209;&gt;</span> ?&#8288;exit_status:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;environment:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;files:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;notes:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;bugs:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;examples:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> see_also:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a></code></div><div class="doc"><p><code class="code">mk_command_doc ~title ~section ~version ~short_description ~synopsis ~description ~see_also
command_exe</code> records information about a command that is used to create its man page. A lot of
the concepts are taken from man-pages(7).</p><ul><li><code class="code">command_exe</code> is the name of the command, preferably an executable that selects the command</li><li><code class="code">title</code> will be the title of the manual</li><li><code class="code">section</code> will be the section of the manual (the number 7 in man-pages(7))</li><li><code class="code">version</code> is the version string of the command</li><li><code class="code">date</code> is the date of the last modification of the manual</li><li><code class="code">short_description</code> is a one-line description of the command</li><li><code class="code">options</code> can be either <code class="code">`Replace blocks</code>, which populates the OPTIONS section with <code class="code">blocks</code>,
or <code class="code">`Prepend blocks</code>, in which case the options from the command are used, prepended by
<code class="code">blocks</code>. If unspecified it defaults to <code class="code">`Prepend []</code>.</li><li>All the other <code class="code">section_name</code> options correspond to the contents of the section <code class="code">section_name</code>.
Some are mandatory and some are not.</li></ul></div></div><div class="spec val" id="val-mk_subcommand"><a href="#val-mk_subcommand" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_subcommand : <a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;on_unknown_arg:[ `Add | `Skip | `Reject ] <span class="keyword">&#8209;&gt;</span> name:string <span class="keyword">&#8209;&gt;</span> ?&#8288;deprecated_long:string <span class="keyword">&#8209;&gt;</span> ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a> option <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">mk_subcommand command ~long command_doc</code> defines the subcommand <code class="code">command</code>. A subcommand is
activated by passing <code class="code">name</code>, and by passing <code class="code">--deprecated_long</code> if specified. A man page is
automatically generated for <code class="code">command</code> based on the information in <code class="code">command_doc</code>, if available
(otherwise the command is considered internal). <code class="code">on_unknown_arg</code> is the action taken on unknown
anonymous arguments; it is `Reject by default.</p></div></div><div class="spec val" id="val-args_env_var"><a href="#val-args_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>args_env_var : string</code></div><div class="doc"><p>environment variable use to pass arguments from parent to child processes</p></div></div><div class="spec val" id="val-strict_mode_env_var"><a href="#val-strict_mode_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>strict_mode_env_var : string</code></div><div class="doc"></div></div><div class="spec val" id="val-env_var_sep"><a href="#val-env_var_sep" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>env_var_sep : char</code></div><div class="doc"><p>separator of argv elements when encoded into environment variables</p></div></div><div class="spec val" id="val-extend_env_args"><a href="#val-extend_env_args" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>extend_env_args : string list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">extend_env_args args</code> appends <code class="code">args</code> to those passed via <code class="code">args_env_var</code></p></div></div><div class="spec val" id="val-parse"><a href="#val-parse" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse : ?&#8288;config_file:string <span class="keyword">&#8209;&gt;</span> usage:<a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Arg.usage_msg <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option <span class="keyword">&#8209;&gt;</span> <a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option<span class="keyword"> * </span>(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>)</code></div><div class="doc"><p><code class="code">parse ~usage parse_mode command</code> parses command line arguments as specified by preceding calls
to the <code class="code">mk_*</code> functions, and returns:
</p><ul><li>the command selected by the user on the command line, except if <code class="code">command</code> is not None in which
case it is considered &quot;pre-selected&quot; for the user;</li><li>a function that prints the usage message and help text then exits with the code passed as
argument.</li></ul><p>The decoded values of the inferconfig file <code class="code">config_file</code>, if provided, are parsed, followed by
the decoded values of the environment variable <code class="code">args_env_var</code>, followed by <code class="code">Sys.argv</code> if
<code class="code">parse_mode</code> is one that should parse command line arguments (this is defined in the
implementation of this module). Therefore arguments passed on the command line supersede those
specified in the environment variable, which themselves supersede those passed via the config
file.</p><p>WARNING: An argument will be interpreted as many times as it appears in all of the config file,
the environment variable, and the command line. The <code class="code">args_env_var</code> is set to the set of options
parsed in <code class="code">args_env_var</code> and on the command line.</p></div></div><div class="spec val" id="val-is_env_var_set"><a href="#val-is_env_var_set" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_env_var_set : string <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p><code class="code">is_env_var_set var</code> is true if $<code class="code">var</code>=1</p></div></div><div class="spec val" id="val-show_manual"><a href="#val-show_manual" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>show_manual : ?&#8288;internal_section:string <span class="keyword">&#8209;&gt;</span> Cmdliner.Manpage.format <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Display the manual of <code class="code">command</code> to the user, or <code class="code">command_doc</code> if <code class="code">command</code> is None. <code class="code">format</code> is
used as for <code class="code">Cmdliner.Manpage.print</code>. If <code class="code">internal_section</code> is specified, add a section titled
<code class="code">internal_section</code> about internal (hidden) options.</p></div></div><div class="spec val" id="val-keep_args_file"><a href="#val-keep_args_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_args_file : bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Results_dir (InferBase.InferBase.DB.Results_dir)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.DB.Results_dir</span></h1></header><div class="spec type" id="type-path"><a href="#type-path" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>path</code><code><span class="keyword"> = </span>string list</code><code></code></div><div class="doc"><p>path expressed as a list of strings</p></div></div><div class="spec type" id="type-path_kind"><a href="#type-path_kind" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>path_kind</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-path_kind.Abs_root" class="anchored"><td class="def constructor"><a href="#type-path_kind.Abs_root" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Abs_root</span></code></td><td class="doc"><p>(** absolute path implicitly rooted at the root of the results dir *)</p></td></tr><tr id="type-path_kind.Abs_source_dir" class="anchored"><td class="def constructor"><a href="#type-path_kind.Abs_source_dir" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Abs_source_dir</span><span class="keyword"> of </span><a href="../../SourceFile/index.html#type-t">SourceFile.t</a></code></td><td class="doc"><p>(** absolute path implicitly rooted at the source directory for the file *)</p></td></tr><tr id="type-path_kind.Rel" class="anchored"><td class="def constructor"><a href="#type-path_kind.Rel" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Rel</span></code></td><td class="doc"><p>(** relative path *)</p></td></tr></table><code></code></div><div class="doc"><p>kind of path: specifies how to interpret a path</p></div></div><div class="spec val" id="val-path_to_filename"><a href="#val-path_to_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>path_to_filename : <a href="index.html#type-path_kind">path_kind</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-path">path</a> <span class="keyword">&#8209;&gt;</span> <a href="../index.html#type-filename">filename</a></code></div><div class="doc"><p>convert a path to a filename</p></div></div><div class="spec val" id="val-specs_dir"><a href="#val-specs_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>specs_dir : <a href="../index.html#type-filename">filename</a></code></div><div class="doc"><p>directory of spec files</p></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : <a href="../../SourceFile/index.html#type-t">SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Initialize the results directory</p></div></div><div class="spec val" id="val-clean_specs_dir"><a href="#val-clean_specs_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clean_specs_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Clean up specs directory</p></div></div><div class="spec val" id="val-create_file"><a href="#val-create_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_file : <a href="index.html#type-path_kind">path_kind</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-path">path</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.File_descr.t</code></div><div class="doc"><p>create a file at the given path, creating any missing directories</p></div></div></body></html>

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>DB (InferBase.InferBase.DB)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.DB</span></h1></header><p>Database of analysis results</p><h3>Filename</h3><div class="spec type" id="type-filename"><a href="#type-filename" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>filename</code><code></code><code></code></div><div class="doc"><p>generic file name</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_filename"><a href="#val-compare_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_filename : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-filename_from_string"><a href="#val-filename_from_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_from_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"></div></div><div class="spec val" id="val-filename_to_string"><a href="#val-filename_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_to_string : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-filename_add_suffix"><a href="#val-filename_add_suffix" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_add_suffix : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"></div></div><div class="spec val" id="val-file_exists"><a href="#val-file_exists" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>file_exists : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-file_modified_time"><a href="#val-file_modified_time" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>file_modified_time : ?&#8288;symlink:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> float</code></div><div class="doc"><p>Return the time when a file was last modified. The file must exist.</p></div></div><h3>Results Directory</h3><div class="spec module" id="module-Results_dir"><a href="#module-Results_dir" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Results_dir/index.html">Results_dir</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-append_crc_cutoff"><a href="#val-append_crc_cutoff" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_crc_cutoff : ?&#8288;key:string <span class="keyword">&#8209;&gt;</span> ?&#8288;crc_only:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Append a crc to the string, using string_crc_hex32.
Cut the string if it exceeds the cutoff limit.
Use an optional key to compute the crc.
Return only the crc if <code class="code">crc_only</code> is true.</p></div></div><div class="spec val" id="val-strip_crc"><a href="#val-strip_crc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>strip_crc : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Strip any crc attached to any string generated by string_append_crc_cutoff</p></div></div><div class="spec val" id="val-source_file_encoding"><a href="#val-source_file_encoding" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_file_encoding : <a href="../SourceFile/index.html#type-t">SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>string encoding of a source file (including path) as a single filename</p></div></div><h3>Source Dirs</h3><div class="spec type" id="type-source_dir"><a href="#type-source_dir" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>source_dir</code><code></code><code></code></div><div class="doc"><p>source directory: the directory inside the results dir corresponding to a source file</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_source_dir"><a href="#val-compare_source_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_source_dir : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-source_dir_to_string"><a href="#val-source_dir_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_to_string : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>expose the source dir as a string</p></div></div><div class="spec val" id="val-source_dir_get_internal_file"><a href="#val-source_dir_get_internal_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_get_internal_file : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"><p>get the path to an internal file with the given extention (.tenv, ...)</p></div></div><div class="spec val" id="val-source_dir_from_source_file"><a href="#val-source_dir_from_source_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_from_source_file : <a href="../SourceFile/index.html#type-t">SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-source_dir">source_dir</a></code></div><div class="doc"><p>get the source directory corresponding to a source file</p></div></div><div class="spec val" id="val-read_file_with_lock"><a href="#val-read_file_with_lock" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_file_with_lock : string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> string option</code></div><div class="doc"><p>Read a file using a lock to allow write attempts in parallel.</p></div></div><div class="spec val" id="val-update_file_with_lock"><a href="#val-update_file_with_lock" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>update_file_with_lock : string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Update the file contents with the update function provided.
If the directory does not exist, it is created.
If the file does not exist, it is created, and update is given the empty string.
A lock is used to allow write attempts in parallel.</p></div></div><div class="spec val" id="val-is_source_file"><a href="#val-is_source_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_source_file : string <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Check if a path is a Java, C, C++ or Objectve C source file according to the file extention</p></div></div><div class="spec val" id="val-fold_paths_matching"><a href="#val-fold_paths_matching" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_paths_matching : dir:<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> p:(<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> f:(<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Fold over all file paths recursively under <code class="code">dir</code> which match <code class="code">p</code>.</p></div></div><div class="spec val" id="val-paths_matching"><a href="#val-paths_matching" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>paths_matching : string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> string list</code></div><div class="doc"><p>Return all file paths recursively under the given directory which match the given predicate</p></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Epilogues (InferBase.InferBase.Epilogues)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Epilogues</span></h1></header><div class="spec val" id="val-register"><a href="#val-register" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register : f:(unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Register a function to run when the program exits or is interrupted. Registered functions are
run in the reverse order in which they were registered.</p></div></div><div class="spec val" id="val-register_late"><a href="#val-register_late" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register_late : (unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-late"><a href="#val-late" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>late : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY (InferBase.InferBase.FileDiff.UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.FileDiff.UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-t.Unchanged" class="anchored"><td class="def constructor"><a href="#type-t.Unchanged" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Unchanged</span></code></td></tr><tr id="type-t.New" class="anchored"><td class="def constructor"><a href="#type-t.New" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">New</span></code></td></tr><tr id="type-t.Old" class="anchored"><td class="def constructor"><a href="#type-t.Old" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Old</span></code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-process_raw_directives"><a href="#val-process_raw_directives" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>process_raw_directives : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> list</code></div><div class="doc"></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>UnixDiff (InferBase.InferBase.FileDiff.UnixDiff)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.FileDiff.UnixDiff</span></h1></header><div class="spec module" id="module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY"><a href="#module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html">VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY (InferBase.InferBase.FileDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.FileDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</span></h1></header><div class="spec val" id="val-parse_directives"><a href="#val-parse_directives" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_directives : <a href="../UnixDiff/VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html#type-t">UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY.t</a> list <span class="keyword">&#8209;&gt;</span> int list</code></div><div class="doc"></div></div></body></html>

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>FileDiff (InferBase.InferBase.FileDiff)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.FileDiff</span></h1></header><div class="spec module" id="module-UnixDiff"><a href="#module-UnixDiff" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="UnixDiff/index.html">UnixDiff</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module" id="module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY"><a href="#module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html">VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-parse_unix_diff"><a href="#val-parse_unix_diff" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_unix_diff : string <span class="keyword">&#8209;&gt;</span> int list</code></div><div class="doc"><p>Given a difference between two files, return the relevant lines in the new file; a line is
relevant when a change took place in it, or nearby. To generate a valid input for this
parser, use unix-diff command with the following formatter arguments:
diff --unchanged-line-format=&quot;U&quot; --old-line-format=&quot;O&quot; --new-line-format=&quot;N&quot; File1 File2</p></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>JsonBuilder (InferBase.InferBase.JsonBuilder)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.JsonBuilder</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_int"><a href="#val-add_int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_int : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_float"><a href="#val-add_float" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_float : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:float <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_string"><a href="#val-add_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_string_opt"><a href="#val-add_string_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_string_opt : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:string option <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_json"><a href="#val-to_json" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_json : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Language (InferBase.InferBase.Language)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Language</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-t.Clang" class="anchored"><td class="def constructor"><a href="#type-t.Clang" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Clang</span></code></td></tr><tr id="type-t.Java" class="anchored"><td class="def constructor"><a href="#type-t.Java" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Java</span></code></td></tr><tr id="type-t.Python" class="anchored"><td class="def constructor"><a href="#type-t.Python" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Python</span></code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-to_explicit_string"><a href="#val-to_explicit_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_explicit_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-of_string"><a href="#val-of_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"></div></div><div class="spec val" id="val-curr_language"><a href="#val-curr_language" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>curr_language : <a href="index.html#type-t">t</a> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"></div></div><div class="spec val" id="val-curr_language_is"><a href="#val-curr_language_is" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>curr_language_is : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Location (InferBase.InferBase.Location)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Location</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-t.line" class="anchored"><td class="def field"><a href="#type-t.line" class="anchor"></a><code>line : int;</code></td><td class="doc"><p>(** The line number. -1 means &quot;do not know&quot; *)</p></td></tr><tr id="type-t.col" class="anchored"><td class="def field"><a href="#type-t.col" class="anchor"></a><code>col : int;</code></td><td class="doc"><p>(** The column number. -1 means &quot;do not know&quot; *)</p></td></tr><tr id="type-t.file" class="anchored"><td class="def field"><a href="#type-t.file" class="anchor"></a><code>file : <a href="../SourceFile/index.html#type-t">SourceFile.t</a>;</code></td><td class="doc"><p>(** The name of the source file *)</p></td></tr></table><code>}</code><code></code></div><div class="doc"><p>Location in the original source file</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-none"><a href="#val-none" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>none : <a href="../SourceFile/index.html#type-t">SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Dummy source location for the given file</p></div></div><div class="spec val" id="val-dummy"><a href="#val-dummy" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>dummy : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Dummy location with no source file</p></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Pretty print a location.</p></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>String representation of a location.</p></div></div><div class="spec val" id="val-pp_file_pos"><a href="#val-pp_file_pos" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_file_pos : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Pretty print a file-position of a location</p></div></div><div class="spec val" id="val-pp_range"><a href="#val-pp_range" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_range : Format.formatter <span class="keyword">&#8209;&gt;</span> (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>MarkupFormatter (InferBase.InferBase.MarkupFormatter)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.MarkupFormatter</span></h1></header><div class="spec val" id="val-wrap_monospaced"><a href="#val-wrap_monospaced" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_monospaced : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a monospaced block</p></div></div><div class="spec val" id="val-pp_monospaced"><a href="#val-pp_monospaced" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_monospaced : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a monospaced block</p></div></div><div class="spec val" id="val-monospaced_to_string"><a href="#val-monospaced_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>monospaced_to_string : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>wrap into a monospaced block</p></div></div><div class="spec val" id="val-wrap_code"><a href="#val-wrap_code" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_code : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a code block</p></div></div><div class="spec val" id="val-pp_code"><a href="#val-pp_code" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_code : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a code block</p></div></div><div class="spec val" id="val-wrap_bold"><a href="#val-wrap_bold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_bold : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a bold block</p></div></div><div class="spec val" id="val-pp_bold"><a href="#val-pp_bold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_bold : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a bold block</p></div></div><div class="spec val" id="val-bold_to_string"><a href="#val-bold_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>bold_to_string : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>wrap into a bold block</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>MergeResults (InferBase.InferBase.MergeResults)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.MergeResults</span></h1></header><div class="spec val" id="val-merge_buck_flavors_results"><a href="#val-merge_buck_flavors_results" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge_buck_flavors_results : string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Merge the results from sub-invocations of infer inside buck-out/. Takes as argument the
infer_deps file.</p></div></div></body></html>

@ -1,4 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Multilinks (InferBase.InferBase.Multilinks)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Multilinks</span></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>F = Format</code></div><div class="doc"></div></div><div class="spec module" id="module-L"><a href="#module-L" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>L = <a href="../index.html#module-Logging">Logging</a></code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>In-memory representation of multilink files.</p></div></div><div class="spec val" id="val-add"><a href="#val-add" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Add a link.</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : unit <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new multilink.</p></div></div><div class="spec val" id="val-multilink_file_name"><a href="#val-multilink_file_name" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>multilink_file_name : string</code></div><div class="doc"><p>Name of the multilink file.
A multilink file is recognized by its file name.</p></div></div><div class="spec val" id="val-read"><a href="#val-read" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read : dir:string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Read a multilink file from disk.</p></div></div><div class="spec val" id="val-resolve"><a href="#val-resolve" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>resolve : <a href="../DB/index.html#type-filename">DB.filename</a> <span class="keyword">&#8209;&gt;</span> <a href="../DB/index.html#type-filename">DB.filename</a></code></div><div class="doc"><p>Resolve a filename following multilinks.
The cache is updated if a new multilinks file is read.</p></div></div><div class="spec val" id="val-reset_cache"><a href="#val-reset_cache" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_cache : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the cache of multilink files</p></div></div><div class="spec val" id="val-write"><a href="#val-write" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> dir:string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Write a multilink file in the given directory</p></div></div></body></html>

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Process (InferBase.InferBase.Process)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Process</span></h1></header><div class="spec val" id="val-create_process_and_wait"><a href="#val-create_process_and_wait" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_process_and_wait : prog:string <span class="keyword">&#8209;&gt;</span> args:string list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Given an command to be executed, creates a process to execute this command,
and waits for its execution. The standard out and error are not redirected.
If the commands fails to execute, prints an error message and exits.</p></div></div><div class="spec val" id="val-print_error_and_exit"><a href="#val-print_error_and_exit" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>print_error_and_exit : ?&#8288;exit_code:int <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, Format.formatter, unit, <span class="type-var">'b</span>) <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format4 <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Prints an error message to a log file, prints a message saying that the error can be
found in that file, and exist, with default code 1 or a given code.</p></div></div><div class="spec val" id="val-pipeline"><a href="#val-pipeline" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pipeline : producer_prog:string <span class="keyword">&#8209;&gt;</span> producer_args:string list <span class="keyword">&#8209;&gt;</span> consumer_prog:string <span class="keyword">&#8209;&gt;</span> consumer_args:string list <span class="keyword">&#8209;&gt;</span> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.Exit_or_signal.t<span class="keyword"> * </span><a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.Exit_or_signal.t</code></div><div class="doc"><p>Pipeline producer program into consumer program</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ProcessPool (InferBase.InferBase.ProcessPool)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.ProcessPool</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Pool of processes to execute in parallel up to a number of jobs.</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : jobs:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new pool of processes</p></div></div><div class="spec val" id="val-start_child"><a href="#val-start_child" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>start_child : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> pool:<a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Start a new child process in the pool.
If all the jobs are taken, wait until one is free.</p></div></div><div class="spec val" id="val-wait_all"><a href="#val-wait_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wait_all : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Wait until all the currently executing processes terminate</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ProcessPoolState (InferBase.InferBase.ProcessPoolState)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.ProcessPoolState</span></h1></header><div class="spec val" id="val-in_child"><a href="#val-in_child" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>in_child : bool <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p>Keep track of whether the current execution is in a child process</p></div></div></body></html>

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ResultsDatabase (InferBase.InferBase.ResultsDatabase)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.ResultsDatabase</span></h1></header><div class="spec val" id="val-database_filename"><a href="#val-database_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>database_filename : string</code></div><div class="doc"><p>the relative path to the database from the results directory</p></div></div><div class="spec val" id="val-database_fullpath"><a href="#val-database_fullpath" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>database_fullpath : string</code></div><div class="doc"><p>the absolute path to the database file</p></div></div><div class="spec val" id="val-schema_hum"><a href="#val-schema_hum" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>schema_hum : string</code></div><div class="doc"><p>some human-readable string describing the tables</p></div></div><div class="spec val" id="val-get_database"><a href="#val-get_database" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_database : unit <span class="keyword">&#8209;&gt;</span> Sqlite3.db</code></div><div class="doc"><p>The results database. You should always use this function to access the database, as the connection to it may change during the execution (see <code class="code">new_database_connection</code>).</p></div></div><div class="spec val" id="val-reset_capture_tables"><a href="#val-reset_capture_tables" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_capture_tables : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>zero out the tables associated with capture data</p></div></div><div class="spec val" id="val-new_database_connection"><a href="#val-new_database_connection" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>new_database_connection : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Closes the previous connection to the database (if any), and opens a new one. Needed after calls to fork(2).</p></div></div><div class="spec val" id="val-db_canonicalize"><a href="#val-db_canonicalize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>db_canonicalize : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>put the database on disk in deterministic form</p></div></div><div class="spec val" id="val-db_close"><a href="#val-db_close" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>db_close : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>close the current connection to the database</p></div></div><div class="spec val" id="val-create_db"><a href="#val-create_db" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_db : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>create the database file and initialize all the necessary tables</p></div></div><div class="spec type" id="type-registered_stmt"><a href="#type-registered_stmt" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>registered_stmt</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-register_statement"><a href="#val-register_statement" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register_statement : (<span class="type-var">'a</span>, unit, string, <a href="index.html#type-registered_stmt">registered_stmt</a>) Base.format4 <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Return a function unit -&gt; Sqlite3.stmt that can be called (once the DB has been initialized) to
get the prepared statement corresponding to the current DB connection. Use this to prepare
statements only once per DB connection.</p><p>In particular, clients of this need not worry about calling <code class="code">Sqlite3.finalize</code> on the returned
statement, or about generating new statements when the connection to the DB changes: this is all
handled internally.</p></div></div><div class="spec val" id="val-with_registered_statement"><a href="#val-with_registered_statement" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>with_registered_statement : <a href="index.html#type-registered_stmt">registered_stmt</a> <span class="keyword">&#8209;&gt;</span> f:(Sqlite3.db <span class="keyword">&#8209;&gt;</span> Sqlite3.stmt <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ResultsDir (InferBase.InferBase.ResultsDir)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.ResultsDir</span></h1></header><div class="spec val" id="val-assert_results_dir"><a href="#val-assert_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assert_results_dir : string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Check that the results dir exists and sets up logging, the database, etc.</p></div></div><div class="spec val" id="val-remove_results_dir"><a href="#val-remove_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_results_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Recursively delete the results directory.</p></div></div><div class="spec val" id="val-create_results_dir"><a href="#val-create_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_results_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Create the results dir and sets up logging, the database, etc.</p></div></div><div class="spec val" id="val-delete_capture_and_analysis_data"><a href="#val-delete_capture_and_analysis_data" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>delete_capture_and_analysis_data : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>delete all results from the capture and the analysis</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>RunState (InferBase.InferBase.RunState)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.RunState</span></h1></header><div class="spec val" id="val-add_run_to_sequence"><a href="#val-add_run_to_sequence" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_run_to_sequence : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>add an entry with the current run date</p></div></div><div class="spec val" id="val-store"><a href="#val-store" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>store : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>save the current state to disk</p></div></div><div class="spec val" id="val-load_and_validate"><a href="#val-load_and_validate" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>load_and_validate : unit <span class="keyword">&#8209;&gt;</span> (unit, string) <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Result.t</code></div><div class="doc"><p>attempt to load state from disk</p></div></div><div class="spec val" id="val-reset"><a href="#val-reset" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>reset the in-memory state to what it would be if this were a fresh run of infer</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Key (InferBase.InferBase.Serialization.Key)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Serialization.Key</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Serialization key, used to distinguish versions of serializers and avoid assert faults</p></div></div><div class="spec val" id="val-issues"><a href="#val-issues" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>issues : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for lint issues</p></div></div><div class="spec val" id="val-summary"><a href="#val-summary" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>summary : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for a procedure summary</p></div></div><div class="spec val" id="val-tenv"><a href="#val-tenv" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tenv : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for tenv</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Serialization (InferBase.InferBase.Serialization)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Serialization</span></h1></header><p>Serialization of data stuctures</p><div class="spec module" id="module-Key"><a href="#module-Key" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Key/index.html">Key</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec type" id="type-serializer"><a href="#type-serializer" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a serializer</code><code></code><code></code></div><div class="doc"><p>Generic serializer</p></div></div><div class="spec val" id="val-create_serializer"><a href="#val-create_serializer" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_serializer : <a href="Key/index.html#type-t">Key.t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a></code></div><div class="doc"><p>create a serializer from a file name
given an integer key used as double-check of the file type</p></div></div><div class="spec val" id="val-read_from_file"><a href="#val-read_from_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_from_file : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> <a href="../DB/index.html#type-filename">DB.filename</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Deserialize a file and check the keys</p></div></div><div class="spec val" id="val-read_from_string"><a href="#val-read_from_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_from_string : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Deserialize a string and check the keys</p></div></div><div class="spec val" id="val-write_to_file"><a href="#val-write_to_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write_to_file : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> data:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <a href="../DB/index.html#type-filename">DB.filename</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Serialize into a file writing value</p></div></div><div class="spec val" id="val-generate_keys"><a href="#val-generate_keys" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>generate_keys : unit <span class="keyword">&#8209;&gt;</span> int<span class="keyword"> * </span>int<span class="keyword"> * </span>int<span class="keyword"> * </span>int<span class="keyword"> * </span>int</code></div><div class="doc"><p>Generate new (random) serialization keys, to be used in an ocaml toplevel</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SQLite (InferBase.InferBase.SourceFile.SQLite)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.SourceFile.SQLite</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code><span class="keyword"> = </span><a href="../index.html#type-t">t</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SourceFile (InferBase.InferBase.SourceFile)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.SourceFile</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec module" id="module-Map"><a href="#module-Map" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Map : <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Map.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Map">Map</a>.key<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"><p>Maps from source_file</p></div></div><div class="spec module" id="module-Set"><a href="#module-Set" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Set : <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Set.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Set">Set</a>.elt<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"><p>Set of source files</p></div></div><div class="spec module" id="module-Hash"><a href="#module-Hash" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Hash : <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Hashtbl.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Hash">Hash</a>.key<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-is_invalid"><a href="#val-is_invalid" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_invalid : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Is the source file the invalid source file?</p></div></div><div class="spec val" id="val-changed_sources_from_changed_files"><a href="#val-changed_sources_from_changed_files" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>changed_sources_from_changed_files : string list <span class="keyword">&#8209;&gt;</span> <a href="index.html#module-Set">Set</a>.t</code></div><div class="doc"><p>Set of files read from --changed-files-index file, None if option not specified
NOTE: it may include extra source_files if --changed-files-index contains paths to
header files</p></div></div><div class="spec val" id="val-invalid"><a href="#val-invalid" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>invalid : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Invalid source file</p></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>equality of source files</p></div></div><div class="spec val" id="val-from_abs_path"><a href="#val-from_abs_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>from_abs_path : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>create source file from absolute path.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given path (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a SourceFile from a given path. If relative, it assumes it is w.r.t. project root.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given path (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-is_cpp_model"><a href="#val-is_cpp_model" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_cpp_model : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Returns true if the file is a C++ model</p></div></div><div class="spec val" id="val-is_infer_model"><a href="#val-is_infer_model" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_infer_model : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-is_under_project_root"><a href="#val-is_under_project_root" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_under_project_root : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Returns true if the file is in project root</p></div></div><div class="spec val" id="val-line_count"><a href="#val-line_count" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>line_count : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>compute line count of a source file</p></div></div><div class="spec val" id="val-of_header"><a href="#val-of_header" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_header : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Return approximate source file corresponding to the parameter if it's header file and
file exists. returns None otherwise.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given SourceFile (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pretty print t</p></div></div><div class="spec val" id="val-to_abs_path"><a href="#val-to_abs_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_abs_path : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>get the full path of a source file</p></div></div><div class="spec val" id="val-to_rel_path"><a href="#val-to_rel_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_rel_path : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>get the relative path of a source file</p></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>convert a source file to a string
WARNING: result may not be valid file path, do not use this function to perform operations
on filenames</p></div></div><div class="spec module" id="module-SQLite"><a href="#module-SQLite" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="SQLite/index.html">SQLite</a> : <a href="../SqliteUtils/index.html#module-type-Data">SqliteUtils.Data</a><span class="keyword"> with </span><span class="keyword">type </span><a href="../SqliteUtils/module-type-Data/index.html#type-t">t</a><span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>1-D (InferBase.InferBase.SqliteUtils.MarshalledData.1-D)</title><link rel="stylesheet" href="../../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Parameter</span> <span class="module-path">InferBase.SqliteUtils.MarshalledData.1-D</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>MarshalledData (InferBase.InferBase.SqliteUtils.MarshalledData)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.SqliteUtils.MarshalledData</span></h1></header><div class="doc"><p>A default implementation of the Data API that encodes every objects as marshalled blobs</p></div><h3 class="heading">Parameters</h3><div><div class="spec argument" id="argument-1-D"><a href="#argument-1-D" class="anchor"></a><div class="def argument"><code><a href="argument-1-D/index.html">D</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></div><h3 class="heading">Signature</h3><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code><span class="keyword"> = </span><a href="argument-1-D/index.html#type-t">D.t</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Data (InferBase.InferBase.SqliteUtils.Data)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module type</span> <span class="module-path">InferBase.SqliteUtils.Data</span></h1></header><div class="doc"><p>An API commonly needed to store and retrieve objects from the database</p></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SymOp (InferBase.InferBase.SymOp)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.SymOp</span></h1></header><p>Symbolic Operations and Failures: the units in which analysis work is measured</p><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Internal state of the module</p></div></div><div class="spec val" id="val-check_wallclock_alarm"><a href="#val-check_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>check_wallclock_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>if the wallclock alarm has expired, raise a timeout exception</p></div></div><div class="spec val" id="val-get_remaining_wallclock_time"><a href="#val-get_remaining_wallclock_time" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_remaining_wallclock_time : unit <span class="keyword">&#8209;&gt;</span> float</code></div><div class="doc"><p>Return the time remaining before the wallclock alarm expires</p></div></div><div class="spec val" id="val-get_timeout_seconds"><a href="#val-get_timeout_seconds" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_timeout_seconds : unit <span class="keyword">&#8209;&gt;</span> float option</code></div><div class="doc"><p>Timeout in seconds for each function</p></div></div><div class="spec val" id="val-get_total"><a href="#val-get_total" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_total : unit <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>Return the total number of symop's since the beginning</p></div></div><div class="spec val" id="val-pay"><a href="#val-pay" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pay : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Count one symop</p></div></div><div class="spec val" id="val-reset_total"><a href="#val-reset_total" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_total : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the total number of symop's</p></div></div><div class="spec val" id="val-restore_state"><a href="#val-restore_state" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>restore_state : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Restore the old state.</p></div></div><div class="spec val" id="val-save_state"><a href="#val-save_state" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>save_state : keep_symop_total:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Return the old state, and revert the current state to the initial one.
If keep_symop_total is true, share the total counter.</p></div></div><div class="spec val" id="val-set_alarm"><a href="#val-set_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the counter and activate the alarm</p></div></div><div class="spec val" id="val-set_wallclock_alarm"><a href="#val-set_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_wallclock_alarm : float <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Set the wallclock alarm checked at every pay()</p></div></div><div class="spec val" id="val-set_wallclock_timeout_handler"><a href="#val-set_wallclock_timeout_handler" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_wallclock_timeout_handler : (unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>set the handler for the wallclock timeout</p></div></div><div class="spec val" id="val-unset_alarm"><a href="#val-unset_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unset_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>De-activate the alarm</p></div></div><div class="spec val" id="val-unset_wallclock_alarm"><a href="#val-unset_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unset_wallclock_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Unset the wallclock alarm checked at every pay()</p></div></div><div class="spec type" id="type-failure_kind"><a href="#type-failure_kind" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>failure_kind</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-failure_kind.FKtimeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKtimeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKtimeout</span></code></td><td class="doc"><p>(** max time exceeded *)</p></td></tr><tr id="type-failure_kind.FKsymops_timeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKsymops_timeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKsymops_timeout</span><span class="keyword"> of </span>int</code></td><td class="doc"><p>(** max symop's exceeded *)</p></td></tr><tr id="type-failure_kind.FKrecursion_timeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKrecursion_timeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKrecursion_timeout</span><span class="keyword"> of </span>int</code></td><td class="doc"><p>(** max recursion level exceeded *)</p></td></tr><tr id="type-failure_kind.FKcrash" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKcrash" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKcrash</span><span class="keyword"> of </span>string</code></td><td class="doc"><p>(** uncaught exception or failed assertion *)</p></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec exception" id="exception-Analysis_failure_exe"><a href="#exception-Analysis_failure_exe" class="anchor"></a><div class="def exception"><code><span class="keyword">exception </span></code><code><span class="exception">Analysis_failure_exe</span><span class="keyword"> of </span><a href="index.html#type-failure_kind">failure_kind</a></code></div><div class="doc"><p>Timeout exception</p></div></div><div class="spec val" id="val-exn_not_failure"><a href="#val-exn_not_failure" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exn_not_failure : exn <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>check that the exception is not a timeout exception</p></div></div><div class="spec val" id="val-try_finally"><a href="#val-try_finally" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>try_finally : f:(unit <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> finally:(unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p><code class="code">try_finally ~f ~finally</code> executes <code class="code">f</code> and then <code class="code">finally</code> even if <code class="code">f</code> raises an exception.
Assuming that <code class="code">finally ()</code> terminates quickly <code class="code">Analysis_failure_exe</code> exceptions are handled correctly.
In particular, an exception raised by <code class="code">f ()</code> is delayed until <code class="code">finally ()</code> finishes, so <code class="code">finally ()</code> should
return reasonably quickly.</p></div></div><div class="spec val" id="val-pp_failure_kind"><a href="#val-pp_failure_kind" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_failure_kind : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-failure_kind">failure_kind</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-failure_kind_to_string"><a href="#val-failure_kind_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>failure_kind_to_string : <a href="index.html#type-failure_kind">failure_kind</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Version (InferBase.InferBase.Version)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.Version</span></h1></header><div class="spec val" id="val-major"><a href="#val-major" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>major : int</code></div><div class="doc"></div></div><div class="spec val" id="val-minor"><a href="#val-minor" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>minor : int</code></div><div class="doc"></div></div><div class="spec val" id="val-patch"><a href="#val-patch" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>patch : int</code></div><div class="doc"></div></div><div class="spec val" id="val-commit"><a href="#val-commit" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>commit : string</code></div><div class="doc"></div></div><div class="spec val" id="val-versionString"><a href="#val-versionString" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>versionString : string</code></div><div class="doc"></div></div><div class="spec val" id="val-versionJson"><a href="#val-versionJson" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>versionJson : string</code></div><div class="doc"></div></div><div class="spec val" id="val-clang_enabled"><a href="#val-clang_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clang_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-java_enabled"><a href="#val-java_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>java_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-python_enabled"><a href="#val-python_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>python_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-xcode_enabled"><a href="#val-xcode_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>xcode_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-man_pages_last_modify_date"><a href="#val-man_pages_last_modify_date" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>man_pages_last_modify_date : string</code></div><div class="doc"></div></div></body></html>

@ -1,4 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ZipLib (InferBase.InferBase.ZipLib)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase.ZipLib</span></h1></header><div class="spec val" id="val-load"><a href="#val-load" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>load : <span class="type-var">'a</span> <a href="../Serialization/index.html#type-serializer">Serialization.serializer</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p><code class="code">load serializer path</code> searches for the file at the given path in the zip libraries.
If Config.infer_cache is set, already deserialized data will be saved there and <code class="code">path</code>
will be searched from the cache first.</p></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__CommandDoc (InferBase.InferBase__CommandDoc)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__CommandDoc</span></h1></header><div class="spec module" id="module-CLOpt"><a href="#module-CLOpt" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>CLOpt = <a href="../InferBase/index.html#module-CommandLineOption">InferBase.CommandLineOption</a></code></div><div class="doc"></div></div><div class="spec type" id="type-data"><a href="#type-data" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>data</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-data.name" class="anchored"><td class="def field"><a href="#type-data.name" class="anchor"></a><code>name : string;</code></td></tr><tr id="type-data.command_doc" class="anchored"><td class="def field"><a href="#type-data.command_doc" class="anchor"></a><code>command_doc : <a href="../InferBase/CommandLineOption/index.html#type-command_doc">CLOpt.command_doc</a>;</code></td></tr></table><code>}</code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-inferconfig_env_var"><a href="#val-inferconfig_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inferconfig_env_var : string</code></div><div class="doc"></div></div><div class="spec val" id="val-inferconfig_file"><a href="#val-inferconfig_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>inferconfig_file : string</code></div><div class="doc"></div></div><div class="spec val" id="val-infer"><a href="#val-infer" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>infer : <a href="../InferBase/CommandLineOption/index.html#type-command_doc">CLOpt.command_doc</a></code></div><div class="doc"></div></div><div class="spec val" id="val-data_of_command"><a href="#val-data_of_command" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>data_of_command : <a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-data">data</a></code></div><div class="doc"></div></div></body></html>

@ -1,49 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__CommandLineOption (InferBase.InferBase__CommandLineOption)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__CommandLineOption</span></h1></header><p>Definition and parsing of command line arguments</p><div class="spec val" id="val-warnf"><a href="#val-warnf" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>warnf : (<span class="type-var">'a</span>, Format.formatter, unit) <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Print to stderr in case of error, fails in strict mode</p></div></div><div class="spec type" id="type-parse_mode"><a href="#type-parse_mode" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>parse_mode</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-parse_mode.InferCommand" class="anchored"><td class="def constructor"><a href="#type-parse_mode.InferCommand" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">InferCommand</span></code></td><td class="doc"><p>(** parse arguments as arguments for infer *)</p></td></tr><tr id="type-parse_mode.Javac" class="anchored"><td class="def constructor"><a href="#type-parse_mode.Javac" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Javac</span></code></td><td class="doc"><p>(** parse arguments passed to the Java compiler *)</p></td></tr><tr id="type-parse_mode.NoParse" class="anchored"><td class="def constructor"><a href="#type-parse_mode.NoParse" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">NoParse</span></code></td><td class="doc"><p>(** all arguments are anonymous arguments, no parsing is attempted *)</p></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_parse_mode"><a href="#val-compare_parse_mode" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_parse_mode : <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-is_originator"><a href="#val-is_originator" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_originator : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-init_work_dir"><a href="#val-init_work_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init_work_dir : string</code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a t</code><code><span class="keyword"> = </span>?&#8288;deprecated:string list <span class="keyword">&#8209;&gt;</span> long:string <span class="keyword">&#8209;&gt;</span> ?&#8288;short:char <span class="keyword">&#8209;&gt;</span> ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> ?&#8288;meta:string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code><code></code></div><div class="doc"><p>The <code class="code">mk_*</code> functions declare command line options, while <code class="code">parse</code> parses then according to the
declared options.</p><p>The arguments of the declaration functions are largely treated uniformly:
</p><ul><li><code class="code">long</code> declares the option <code class="code">--long</code></li><li><code class="code">short</code> declares the option <code class="code">-short</code> as an alias</li><li><code class="code">deprecated</code> declares the option <code class="code">-key</code> as an alias, for each <code class="code">key</code> in <code class="code">deprecated</code></li><li><code class="code">default</code> specifies the default value</li><li><code class="code">default_to_string</code> is used to document the default value</li><li><code class="code">f</code> specifies a transformation to be performed on the parsed value before setting the config
variable</li><li><code class="code">symbols</code> is an association list sometimes used in place of <code class="code">f</code></li><li><code class="code">parse_mode</code> declares which parse mode the option is for</li><li><code class="code">in_help</code> indicates the man pages in which the command should be documented, as generated by
calling infer with --help. Otherwise it appears only in --help-full.</li><li><code class="code">meta</code> is a meta-variable naming the parsed value for documentation purposes</li><li>a documentation string</li></ul></div></div><div class="spec val" id="val-mk_set"><a href="#val-mk_set" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_set : <span class="type-var">'a</span> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_set variable value</code> defines a command line option which sets <code class="code">variable</code> to <code class="code">value</code>.</p></div></div><div class="spec val" id="val-mk_bool"><a href="#val-mk_bool" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_bool : ?&#8288;deprecated_no:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;default:bool <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(bool <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_bool long short doc</code> defines a <code class="code">bool ref</code> set by the command line flag <code class="code">--long</code> (and
<code class="code">-s</code>), and cleared by the flag <code class="code">--no-long</code> (and <code class="code">-S</code>). If <code class="code">long</code> already has a &quot;no-&quot; prefix,
or <code class="code">s</code> is capital, then the existing prefixes will instead be removed. The default
value is <code class="code">false</code> unless overridden by <code class="code">~default:true</code>. The <code class="code">doc</code> string will be prefixed with
either &quot;Activates:&quot; or &quot;Deactivates:&quot;, so should be phrased accordingly.</p></div></div><div class="spec val" id="val-mk_bool_group"><a href="#val-mk_bool_group" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_bool_group : ?&#8288;deprecated_no:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;default:bool <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(bool <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> (bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref list <span class="keyword">&#8209;&gt;</span> bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref list <span class="keyword">&#8209;&gt;</span> bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref) <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_bool_group children not_children</code> behaves as <code class="code">mk_bool</code> with the addition that all the
<code class="code">children</code> are also set and the <code class="code">no_children</code> are unset. A child can be unset by including
&quot;--no-child&quot; later in the arguments.</p></div></div><div class="spec val" id="val-mk_int"><a href="#val-mk_int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_int : default:int <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(int <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> int <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_int_opt"><a href="#val-mk_int_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_int_opt : ?&#8288;default:int <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(int <span class="keyword">&#8209;&gt;</span> int) <span class="keyword">&#8209;&gt;</span> int option <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_float_opt"><a href="#val-mk_float_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_float_opt : ?&#8288;default:float <span class="keyword">&#8209;&gt;</span> float option <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_string"><a href="#val-mk_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string : default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_string_opt"><a href="#val-mk_string_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string_opt : ?&#8288;default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> ?&#8288;mk_reset:bool <span class="keyword">&#8209;&gt;</span> string option <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>An option &quot;--<code class="code">long</code>-reset&quot; is automatically created that resets the reference to None when found
on the command line, unless <code class="code">mk_reset</code> is false.</p></div></div><div class="spec val" id="val-mk_string_list"><a href="#val-mk_string_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_string_list : ?&#8288;default:string list <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string list <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_string_list</code> defines a <code class="code">string list ref</code>, initialized to <code class="code">[]</code> unless overridden by
<code class="code">~default</code>. Each argument of an occurrence of the option will be prepended to the list, so the
final value will be in the reverse order they appeared on the command line.</p><p>An option &quot;--<code class="code">long</code>-reset&quot; is automatically created that resets the list to <code class="code"></code> when found on the
command line.</p></div></div><div class="spec val" id="val-mk_path"><a href="#val-mk_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path : default:string <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> string <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>like <code class="code">mk_string</code> but will resolve the string into an absolute path so that children processes
agree on the absolute path that the option represents</p></div></div><div class="spec val" id="val-mk_path_opt"><a href="#val-mk_path_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path_opt : ?&#8288;default:string <span class="keyword">&#8209;&gt;</span> string option <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>analogous of <code class="code">mk_string_opt</code> with the extra feature of <code class="code">mk_path</code></p></div></div><div class="spec val" id="val-mk_path_list"><a href="#val-mk_path_list" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_path_list : ?&#8288;default:string list <span class="keyword">&#8209;&gt;</span> string list <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p>analogous of <code class="code">mk_string_list</code> with the extra feature of <code class="code">mk_path</code></p></div></div><div class="spec val" id="val-mk_symbol"><a href="#val-mk_symbol" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol : default:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol long symbols</code> defines a command line flag <code class="code">--long &lt;symbol&gt;</code> where <code class="code">(&lt;symbol&gt;,_)</code> is
an element of <code class="code">symbols</code>.</p></div></div><div class="spec val" id="val-mk_symbol_opt"><a href="#val-mk_symbol_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol_opt : symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> ?&#8288;f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> ?&#8288;mk_reset:bool <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol_opt</code> is similar to <code class="code">mk_symbol</code> but defaults to <code class="code">None</code>. If <code class="code">mk_reset</code> is false then do not create an additional --<code class="code">long</code>-reset option to reset the value of the option to <code class="code">None</code>.</p></div></div><div class="spec val" id="val-mk_symbol_seq"><a href="#val-mk_symbol_seq" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_symbol_seq : ?&#8288;default:<span class="type-var">'a</span> list <span class="keyword">&#8209;&gt;</span> symbols:(string<span class="keyword"> * </span><span class="type-var">'a</span>) list <span class="keyword">&#8209;&gt;</span> eq:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> list <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"><p><code class="code">mk_symbol_seq long symbols</code> defines a command line flag <code class="code">--long &lt;symbol sequence&gt;</code> where
<code class="code">&lt;symbol sequence&gt;</code> is a comma-separated sequence of <code class="code">&lt;symbol&gt;</code>s such that <code class="code">(&lt;symbol&gt;,_)</code> is an
element of <code class="code">symbols</code>.</p></div></div><div class="spec val" id="val-mk_json"><a href="#val-mk_json" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_json : Yojson.Basic.json <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_anon"><a href="#val-mk_anon" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_anon : unit <span class="keyword">&#8209;&gt;</span> string list <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p><code class="code">mk_anon ()</code> defines a <code class="code">string list ref</code> of the anonymous command line arguments, in the reverse
order they appeared on the command line.</p></div></div><div class="spec val" id="val-mk_rest_actions"><a href="#val-mk_rest_actions" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_rest_actions : ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> usage:string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a>) <span class="keyword">&#8209;&gt;</span> string list <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p><code class="code">mk_rest_actions doc ~usage command_to_parse_mode</code> defines a <code class="code">string list ref</code> of the command
line arguments following <code class="code">&quot;--&quot;</code>, in the reverse order they appeared on the command line. <code class="code">usage</code>
is the usage message in case of parse errors or if --help is passed. For example, calling
<code class="code">mk_action</code> and parsing <code class="code">exe -opt1 -opt2 -- arg1 arg2</code> will result in the returned ref
containing <code class="code">arg2; arg1</code>. Additionally, the first arg following <code class="code">&quot;--&quot;</code> is passed to
<code class="code">command_to_parse_mode</code> to obtain the parse action that will be used to parse the remaining
arguments.</p></div></div><div class="spec type" id="type-command_doc"><a href="#type-command_doc" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>command_doc</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-mk_command_doc"><a href="#val-mk_command_doc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_command_doc : title:string <span class="keyword">&#8209;&gt;</span> section:int <span class="keyword">&#8209;&gt;</span> version:string <span class="keyword">&#8209;&gt;</span> date:string <span class="keyword">&#8209;&gt;</span> short_description:string <span class="keyword">&#8209;&gt;</span> synopsis:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> description:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;options:[ `Prepend of Cmdliner.Manpage.block list | `Replace of Cmdliner.Manpage.block list ] <span class="keyword">&#8209;&gt;</span> ?&#8288;exit_status:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;environment:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;files:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;notes:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;bugs:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> ?&#8288;examples:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> see_also:Cmdliner.Manpage.block list <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a></code></div><div class="doc"><p><code class="code">mk_command_doc ~title ~section ~version ~short_description ~synopsis ~description ~see_also
command_exe</code> records information about a command that is used to create its man page. A lot of
the concepts are taken from man-pages(7).</p><ul><li><code class="code">command_exe</code> is the name of the command, preferably an executable that selects the command</li><li><code class="code">title</code> will be the title of the manual</li><li><code class="code">section</code> will be the section of the manual (the number 7 in man-pages(7))</li><li><code class="code">version</code> is the version string of the command</li><li><code class="code">date</code> is the date of the last modification of the manual</li><li><code class="code">short_description</code> is a one-line description of the command</li><li><code class="code">options</code> can be either <code class="code">`Replace blocks</code>, which populates the OPTIONS section with <code class="code">blocks</code>,
or <code class="code">`Prepend blocks</code>, in which case the options from the command are used, prepended by
<code class="code">blocks</code>. If unspecified it defaults to <code class="code">`Prepend []</code>.</li><li>All the other <code class="code">section_name</code> options correspond to the contents of the section <code class="code">section_name</code>.
Some are mandatory and some are not.</li></ul></div></div><div class="spec val" id="val-mk_subcommand"><a href="#val-mk_subcommand" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mk_subcommand : <a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;on_unknown_arg:[ `Add | `Skip | `Reject ] <span class="keyword">&#8209;&gt;</span> name:string <span class="keyword">&#8209;&gt;</span> ?&#8288;deprecated_long:string <span class="keyword">&#8209;&gt;</span> ?&#8288;parse_mode:<a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> ?&#8288;in_help:(<a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a><span class="keyword"> * </span>string) list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a> option <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">mk_subcommand command ~long command_doc</code> defines the subcommand <code class="code">command</code>. A subcommand is
activated by passing <code class="code">name</code>, and by passing <code class="code">--deprecated_long</code> if specified. A man page is
automatically generated for <code class="code">command</code> based on the information in <code class="code">command_doc</code>, if available
(otherwise the command is considered internal). <code class="code">on_unknown_arg</code> is the action taken on unknown
anonymous arguments; it is `Reject by default.</p></div></div><div class="spec val" id="val-args_env_var"><a href="#val-args_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>args_env_var : string</code></div><div class="doc"><p>environment variable use to pass arguments from parent to child processes</p></div></div><div class="spec val" id="val-strict_mode_env_var"><a href="#val-strict_mode_env_var" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>strict_mode_env_var : string</code></div><div class="doc"></div></div><div class="spec val" id="val-env_var_sep"><a href="#val-env_var_sep" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>env_var_sep : char</code></div><div class="doc"><p>separator of argv elements when encoded into environment variables</p></div></div><div class="spec val" id="val-extend_env_args"><a href="#val-extend_env_args" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>extend_env_args : string list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p><code class="code">extend_env_args args</code> appends <code class="code">args</code> to those passed via <code class="code">args_env_var</code></p></div></div><div class="spec val" id="val-parse"><a href="#val-parse" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse : ?&#8288;config_file:string <span class="keyword">&#8209;&gt;</span> usage:<a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Arg.usage_msg <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-parse_mode">parse_mode</a> <span class="keyword">&#8209;&gt;</span> <a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option <span class="keyword">&#8209;&gt;</span> <a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option<span class="keyword"> * </span>(int <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>)</code></div><div class="doc"><p><code class="code">parse ~usage parse_mode command</code> parses command line arguments as specified by preceding calls
to the <code class="code">mk_*</code> functions, and returns:
</p><ul><li>the command selected by the user on the command line, except if <code class="code">command</code> is not None in which
case it is considered &quot;pre-selected&quot; for the user;</li><li>a function that prints the usage message and help text then exits with the code passed as
argument.</li></ul><p>The decoded values of the inferconfig file <code class="code">config_file</code>, if provided, are parsed, followed by
the decoded values of the environment variable <code class="code">args_env_var</code>, followed by <code class="code">Sys.argv</code> if
<code class="code">parse_mode</code> is one that should parse command line arguments (this is defined in the
implementation of this module). Therefore arguments passed on the command line supersede those
specified in the environment variable, which themselves supersede those passed via the config
file.</p><p>WARNING: An argument will be interpreted as many times as it appears in all of the config file,
the environment variable, and the command line. The <code class="code">args_env_var</code> is set to the set of options
parsed in <code class="code">args_env_var</code> and on the command line.</p></div></div><div class="spec val" id="val-is_env_var_set"><a href="#val-is_env_var_set" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_env_var_set : string <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p><code class="code">is_env_var_set var</code> is true if $<code class="code">var</code>=1</p></div></div><div class="spec val" id="val-show_manual"><a href="#val-show_manual" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>show_manual : ?&#8288;internal_section:string <span class="keyword">&#8209;&gt;</span> Cmdliner.Manpage.format <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-command_doc">command_doc</a> <span class="keyword">&#8209;&gt;</span> <a href="../../InferGenerated/InferGenerated/InferCommand/index.html#type-t">InferGenerated.InferCommand.t</a> option <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Display the manual of <code class="code">command</code> to the user, or <code class="code">command_doc</code> if <code class="code">command</code> is None. <code class="code">format</code> is
used as for <code class="code">Cmdliner.Manpage.print</code>. If <code class="code">internal_section</code> is specified, add a section titled
<code class="code">internal_section</code> about internal (hidden) options.</p></div></div><div class="spec val" id="val-keep_args_file"><a href="#val-keep_args_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>keep_args_file : bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Results_dir (InferBase.InferBase__DB.Results_dir)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__DB.Results_dir</span></h1></header><div class="spec type" id="type-path"><a href="#type-path" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>path</code><code><span class="keyword"> = </span>string list</code><code></code></div><div class="doc"><p>path expressed as a list of strings</p></div></div><div class="spec type" id="type-path_kind"><a href="#type-path_kind" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>path_kind</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-path_kind.Abs_root" class="anchored"><td class="def constructor"><a href="#type-path_kind.Abs_root" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Abs_root</span></code></td><td class="doc"><p>(** absolute path implicitly rooted at the root of the results dir *)</p></td></tr><tr id="type-path_kind.Abs_source_dir" class="anchored"><td class="def constructor"><a href="#type-path_kind.Abs_source_dir" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Abs_source_dir</span><span class="keyword"> of </span><a href="../../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a></code></td><td class="doc"><p>(** absolute path implicitly rooted at the source directory for the file *)</p></td></tr><tr id="type-path_kind.Rel" class="anchored"><td class="def constructor"><a href="#type-path_kind.Rel" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Rel</span></code></td><td class="doc"><p>(** relative path *)</p></td></tr></table><code></code></div><div class="doc"><p>kind of path: specifies how to interpret a path</p></div></div><div class="spec val" id="val-path_to_filename"><a href="#val-path_to_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>path_to_filename : <a href="index.html#type-path_kind">path_kind</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-path">path</a> <span class="keyword">&#8209;&gt;</span> <a href="../index.html#type-filename">filename</a></code></div><div class="doc"><p>convert a path to a filename</p></div></div><div class="spec val" id="val-specs_dir"><a href="#val-specs_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>specs_dir : <a href="../index.html#type-filename">filename</a></code></div><div class="doc"><p>directory of spec files</p></div></div><div class="spec val" id="val-init"><a href="#val-init" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>init : <a href="../../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Initialize the results directory</p></div></div><div class="spec val" id="val-clean_specs_dir"><a href="#val-clean_specs_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clean_specs_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Clean up specs directory</p></div></div><div class="spec val" id="val-create_file"><a href="#val-create_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_file : <a href="index.html#type-path_kind">path_kind</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-path">path</a> <span class="keyword">&#8209;&gt;</span> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.File_descr.t</code></div><div class="doc"><p>create a file at the given path, creating any missing directories</p></div></div></body></html>

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__DB (InferBase.InferBase__DB)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__DB</span></h1></header><p>Database of analysis results</p><h3>Filename</h3><div class="spec type" id="type-filename"><a href="#type-filename" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>filename</code><code></code><code></code></div><div class="doc"><p>generic file name</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_filename"><a href="#val-compare_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_filename : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-filename_from_string"><a href="#val-filename_from_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_from_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"></div></div><div class="spec val" id="val-filename_to_string"><a href="#val-filename_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_to_string : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-filename_add_suffix"><a href="#val-filename_add_suffix" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>filename_add_suffix : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"></div></div><div class="spec val" id="val-file_exists"><a href="#val-file_exists" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>file_exists : <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-file_modified_time"><a href="#val-file_modified_time" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>file_modified_time : ?&#8288;symlink:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> float</code></div><div class="doc"><p>Return the time when a file was last modified. The file must exist.</p></div></div><h3>Results Directory</h3><div class="spec module" id="module-Results_dir"><a href="#module-Results_dir" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Results_dir/index.html">Results_dir</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-append_crc_cutoff"><a href="#val-append_crc_cutoff" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>append_crc_cutoff : ?&#8288;key:string <span class="keyword">&#8209;&gt;</span> ?&#8288;crc_only:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Append a crc to the string, using string_crc_hex32.
Cut the string if it exceeds the cutoff limit.
Use an optional key to compute the crc.
Return only the crc if <code class="code">crc_only</code> is true.</p></div></div><div class="spec val" id="val-strip_crc"><a href="#val-strip_crc" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>strip_crc : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Strip any crc attached to any string generated by string_append_crc_cutoff</p></div></div><div class="spec val" id="val-source_file_encoding"><a href="#val-source_file_encoding" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_file_encoding : <a href="../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>string encoding of a source file (including path) as a single filename</p></div></div><h3>Source Dirs</h3><div class="spec type" id="type-source_dir"><a href="#type-source_dir" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>source_dir</code><code></code><code></code></div><div class="doc"><p>source directory: the directory inside the results dir corresponding to a source file</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare_source_dir"><a href="#val-compare_source_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_source_dir : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-source_dir_to_string"><a href="#val-source_dir_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_to_string : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>expose the source dir as a string</p></div></div><div class="spec val" id="val-source_dir_get_internal_file"><a href="#val-source_dir_get_internal_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_get_internal_file : <a href="index.html#type-source_dir">source_dir</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-filename">filename</a></code></div><div class="doc"><p>get the path to an internal file with the given extention (.tenv, ...)</p></div></div><div class="spec val" id="val-source_dir_from_source_file"><a href="#val-source_dir_from_source_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>source_dir_from_source_file : <a href="../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-source_dir">source_dir</a></code></div><div class="doc"><p>get the source directory corresponding to a source file</p></div></div><div class="spec val" id="val-read_file_with_lock"><a href="#val-read_file_with_lock" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_file_with_lock : string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> string option</code></div><div class="doc"><p>Read a file using a lock to allow write attempts in parallel.</p></div></div><div class="spec val" id="val-update_file_with_lock"><a href="#val-update_file_with_lock" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>update_file_with_lock : string <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> string) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Update the file contents with the update function provided.
If the directory does not exist, it is created.
If the file does not exist, it is created, and update is given the empty string.
A lock is used to allow write attempts in parallel.</p></div></div><div class="spec val" id="val-is_source_file"><a href="#val-is_source_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_source_file : string <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Check if a path is a Java, C, C++ or Objectve C source file according to the file extention</p></div></div><div class="spec val" id="val-fold_paths_matching"><a href="#val-fold_paths_matching" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>fold_paths_matching : dir:<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> p:(<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> init:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> f:(<a href="index.html#type-filename">filename</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Fold over all file paths recursively under <code class="code">dir</code> which match <code class="code">p</code>.</p></div></div><div class="spec val" id="val-paths_matching"><a href="#val-paths_matching" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>paths_matching : string <span class="keyword">&#8209;&gt;</span> (string <span class="keyword">&#8209;&gt;</span> bool) <span class="keyword">&#8209;&gt;</span> string list</code></div><div class="doc"><p>Return all file paths recursively under the given directory which match the given predicate</p></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Epilogues (InferBase.InferBase__Epilogues)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Epilogues</span></h1></header><div class="spec val" id="val-register"><a href="#val-register" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register : f:(unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Register a function to run when the program exits or is interrupted. Registered functions are
run in the reverse order in which they were registered.</p></div></div><div class="spec val" id="val-register_late"><a href="#val-register_late" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register_late : (unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-late"><a href="#val-late" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>late : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY (InferBase.InferBase__FileDiff.UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__FileDiff.UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-t.Unchanged" class="anchored"><td class="def constructor"><a href="#type-t.Unchanged" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Unchanged</span></code></td></tr><tr id="type-t.New" class="anchored"><td class="def constructor"><a href="#type-t.New" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">New</span></code></td></tr><tr id="type-t.Old" class="anchored"><td class="def constructor"><a href="#type-t.Old" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Old</span></code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-process_raw_directives"><a href="#val-process_raw_directives" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>process_raw_directives : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> list</code></div><div class="doc"></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>UnixDiff (InferBase.InferBase__FileDiff.UnixDiff)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__FileDiff.UnixDiff</span></h1></header><div class="spec module" id="module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY"><a href="#module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html">VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY (InferBase.InferBase__FileDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__FileDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</span></h1></header><div class="spec val" id="val-parse_directives"><a href="#val-parse_directives" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_directives : <a href="../UnixDiff/VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html#type-t">UnixDiff.VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY.t</a> list <span class="keyword">&#8209;&gt;</span> int list</code></div><div class="doc"></div></div></body></html>

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__FileDiff (InferBase.InferBase__FileDiff)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__FileDiff</span></h1></header><div class="spec module" id="module-UnixDiff"><a href="#module-UnixDiff" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="UnixDiff/index.html">UnixDiff</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec module" id="module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY"><a href="#module-VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY/index.html">VISIBLE_FOR_TESTING_DO_NOT_USE_DIRECTLY</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec val" id="val-parse_unix_diff"><a href="#val-parse_unix_diff" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>parse_unix_diff : string <span class="keyword">&#8209;&gt;</span> int list</code></div><div class="doc"><p>Given a difference between two files, return the relevant lines in the new file; a line is
relevant when a change took place in it, or nearby. To generate a valid input for this
parser, use unix-diff command with the following formatter arguments:
diff --unchanged-line-format=&quot;U&quot; --old-line-format=&quot;O&quot; --new-line-format=&quot;N&quot; File1 File2</p></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__JsonBuilder (InferBase.InferBase__JsonBuilder)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__JsonBuilder</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-empty"><a href="#val-empty" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>empty : <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_int"><a href="#val-add_int" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_int : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_float"><a href="#val-add_float" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_float : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:float <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_string"><a href="#val-add_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-add_string_opt"><a href="#val-add_string_opt" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_string_opt : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> key:string <span class="keyword">&#8209;&gt;</span> data:string option <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_json"><a href="#val-to_json" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_json : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Language (InferBase.InferBase__Language)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Language</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-t.Clang" class="anchored"><td class="def constructor"><a href="#type-t.Clang" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Clang</span></code></td></tr><tr id="type-t.Java" class="anchored"><td class="def constructor"><a href="#type-t.Java" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Java</span></code></td></tr><tr id="type-t.Python" class="anchored"><td class="def constructor"><a href="#type-t.Python" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Python</span></code></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-to_explicit_string"><a href="#val-to_explicit_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_explicit_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-of_string"><a href="#val-of_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"></div></div><div class="spec val" id="val-curr_language"><a href="#val-curr_language" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>curr_language : <a href="index.html#type-t">t</a> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"></div></div><div class="spec val" id="val-curr_language_is"><a href="#val-curr_language_is" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>curr_language_is : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Location (InferBase.InferBase__Location)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Location</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-t.line" class="anchored"><td class="def field"><a href="#type-t.line" class="anchor"></a><code>line : int;</code></td><td class="doc"><p>(** The line number. -1 means &quot;do not know&quot; *)</p></td></tr><tr id="type-t.col" class="anchored"><td class="def field"><a href="#type-t.col" class="anchor"></a><code>col : int;</code></td><td class="doc"><p>(** The column number. -1 means &quot;do not know&quot; *)</p></td></tr><tr id="type-t.file" class="anchored"><td class="def field"><a href="#type-t.file" class="anchor"></a><code>file : <a href="../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a>;</code></td><td class="doc"><p>(** The name of the source file *)</p></td></tr></table><code>}</code><code></code></div><div class="doc"><p>Location in the original source file</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-none"><a href="#val-none" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>none : <a href="../InferBase/SourceFile/index.html#type-t">InferBase.SourceFile.t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Dummy source location for the given file</p></div></div><div class="spec val" id="val-dummy"><a href="#val-dummy" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>dummy : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Dummy location with no source file</p></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Pretty print a location.</p></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>String representation of a location.</p></div></div><div class="spec val" id="val-pp_file_pos"><a href="#val-pp_file_pos" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_file_pos : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Pretty print a file-position of a location</p></div></div><div class="spec val" id="val-pp_range"><a href="#val-pp_range" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_range : Format.formatter <span class="keyword">&#8209;&gt;</span> (<a href="index.html#type-t">t</a><span class="keyword"> * </span><a href="index.html#type-t">t</a>) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__MarkupFormatter (InferBase.InferBase__MarkupFormatter)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__MarkupFormatter</span></h1></header><div class="spec val" id="val-wrap_monospaced"><a href="#val-wrap_monospaced" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_monospaced : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a monospaced block</p></div></div><div class="spec val" id="val-pp_monospaced"><a href="#val-pp_monospaced" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_monospaced : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a monospaced block</p></div></div><div class="spec val" id="val-monospaced_to_string"><a href="#val-monospaced_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>monospaced_to_string : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>wrap into a monospaced block</p></div></div><div class="spec val" id="val-wrap_code"><a href="#val-wrap_code" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_code : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a code block</p></div></div><div class="spec val" id="val-pp_code"><a href="#val-pp_code" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_code : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a code block</p></div></div><div class="spec val" id="val-wrap_bold"><a href="#val-wrap_bold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap_bold : (Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> Format.formatter <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>used to combine pp together, wrap content into a bold block</p></div></div><div class="spec val" id="val-pp_bold"><a href="#val-pp_bold" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_bold : Format.formatter <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pp to wrap into a bold block</p></div></div><div class="spec val" id="val-bold_to_string"><a href="#val-bold_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>bold_to_string : string <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>wrap into a bold block</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__MergeResults (InferBase.InferBase__MergeResults)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__MergeResults</span></h1></header><div class="spec val" id="val-merge_buck_flavors_results"><a href="#val-merge_buck_flavors_results" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>merge_buck_flavors_results : string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Merge the results from sub-invocations of infer inside buck-out/. Takes as argument the
infer_deps file.</p></div></div></body></html>

@ -1,4 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Multilinks (InferBase.InferBase__Multilinks)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Multilinks</span></h1></header><div class="spec module" id="module-F"><a href="#module-F" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>F = Format</code></div><div class="doc"></div></div><div class="spec module" id="module-L"><a href="#module-L" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>L = <a href="../InferBase/index.html#module-Logging">InferBase.Logging</a></code></div><div class="doc"></div></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>In-memory representation of multilink files.</p></div></div><div class="spec val" id="val-add"><a href="#val-add" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Add a link.</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : unit <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new multilink.</p></div></div><div class="spec val" id="val-multilink_file_name"><a href="#val-multilink_file_name" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>multilink_file_name : string</code></div><div class="doc"><p>Name of the multilink file.
A multilink file is recognized by its file name.</p></div></div><div class="spec val" id="val-read"><a href="#val-read" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read : dir:string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Read a multilink file from disk.</p></div></div><div class="spec val" id="val-resolve"><a href="#val-resolve" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>resolve : <a href="../InferBase/DB/index.html#type-filename">InferBase.DB.filename</a> <span class="keyword">&#8209;&gt;</span> <a href="../InferBase/DB/index.html#type-filename">InferBase.DB.filename</a></code></div><div class="doc"><p>Resolve a filename following multilinks.
The cache is updated if a new multilinks file is read.</p></div></div><div class="spec val" id="val-reset_cache"><a href="#val-reset_cache" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_cache : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the cache of multilink files</p></div></div><div class="spec val" id="val-write"><a href="#val-write" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> dir:string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Write a multilink file in the given directory</p></div></div></body></html>

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Process (InferBase.InferBase__Process)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Process</span></h1></header><div class="spec val" id="val-create_process_and_wait"><a href="#val-create_process_and_wait" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_process_and_wait : prog:string <span class="keyword">&#8209;&gt;</span> args:string list <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Given an command to be executed, creates a process to execute this command,
and waits for its execution. The standard out and error are not redirected.
If the commands fails to execute, prints an error message and exits.</p></div></div><div class="spec val" id="val-print_error_and_exit"><a href="#val-print_error_and_exit" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>print_error_and_exit : ?&#8288;exit_code:int <span class="keyword">&#8209;&gt;</span> (<span class="type-var">'a</span>, Format.formatter, unit, <span class="type-var">'b</span>) <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.format4 <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Prints an error message to a log file, prints a message saying that the error can be
found in that file, and exist, with default code 1 or a given code.</p></div></div><div class="spec val" id="val-pipeline"><a href="#val-pipeline" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pipeline : producer_prog:string <span class="keyword">&#8209;&gt;</span> producer_args:string list <span class="keyword">&#8209;&gt;</span> consumer_prog:string <span class="keyword">&#8209;&gt;</span> consumer_args:string list <span class="keyword">&#8209;&gt;</span> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.Exit_or_signal.t<span class="keyword"> * </span><a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Unix.Exit_or_signal.t</code></div><div class="doc"><p>Pipeline producer program into consumer program</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__ProcessPool (InferBase.InferBase__ProcessPool)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__ProcessPool</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Pool of processes to execute in parallel up to a number of jobs.</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : jobs:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a new pool of processes</p></div></div><div class="spec val" id="val-start_child"><a href="#val-start_child" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>start_child : f:(<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> pool:<a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Start a new child process in the pool.
If all the jobs are taken, wait until one is free.</p></div></div><div class="spec val" id="val-wait_all"><a href="#val-wait_all" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wait_all : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Wait until all the currently executing processes terminate</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__ProcessPoolState (InferBase.InferBase__ProcessPoolState)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__ProcessPoolState</span></h1></header><div class="spec val" id="val-in_child"><a href="#val-in_child" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>in_child : bool <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.ref</code></div><div class="doc"><p>Keep track of whether the current execution is in a child process</p></div></div></body></html>

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__ResultsDatabase (InferBase.InferBase__ResultsDatabase)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__ResultsDatabase</span></h1></header><div class="spec val" id="val-database_filename"><a href="#val-database_filename" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>database_filename : string</code></div><div class="doc"><p>the relative path to the database from the results directory</p></div></div><div class="spec val" id="val-database_fullpath"><a href="#val-database_fullpath" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>database_fullpath : string</code></div><div class="doc"><p>the absolute path to the database file</p></div></div><div class="spec val" id="val-schema_hum"><a href="#val-schema_hum" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>schema_hum : string</code></div><div class="doc"><p>some human-readable string describing the tables</p></div></div><div class="spec val" id="val-get_database"><a href="#val-get_database" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_database : unit <span class="keyword">&#8209;&gt;</span> Sqlite3.db</code></div><div class="doc"><p>The results database. You should always use this function to access the database, as the connection to it may change during the execution (see <code class="code">new_database_connection</code>).</p></div></div><div class="spec val" id="val-reset_capture_tables"><a href="#val-reset_capture_tables" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_capture_tables : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>zero out the tables associated with capture data</p></div></div><div class="spec val" id="val-new_database_connection"><a href="#val-new_database_connection" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>new_database_connection : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Closes the previous connection to the database (if any), and opens a new one. Needed after calls to fork(2).</p></div></div><div class="spec val" id="val-db_canonicalize"><a href="#val-db_canonicalize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>db_canonicalize : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>put the database on disk in deterministic form</p></div></div><div class="spec val" id="val-db_close"><a href="#val-db_close" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>db_close : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>close the current connection to the database</p></div></div><div class="spec val" id="val-create_db"><a href="#val-create_db" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_db : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>create the database file and initialize all the necessary tables</p></div></div><div class="spec type" id="type-registered_stmt"><a href="#type-registered_stmt" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>registered_stmt</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-register_statement"><a href="#val-register_statement" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>register_statement : (<span class="type-var">'a</span>, unit, string, <a href="index.html#type-registered_stmt">registered_stmt</a>) Base.format4 <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p>Return a function unit -&gt; Sqlite3.stmt that can be called (once the DB has been initialized) to
get the prepared statement corresponding to the current DB connection. Use this to prepare
statements only once per DB connection.</p><p>In particular, clients of this need not worry about calling <code class="code">Sqlite3.finalize</code> on the returned
statement, or about generating new statements when the connection to the DB changes: this is all
handled internally.</p></div></div><div class="spec val" id="val-with_registered_statement"><a href="#val-with_registered_statement" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>with_registered_statement : <a href="index.html#type-registered_stmt">registered_stmt</a> <span class="keyword">&#8209;&gt;</span> f:(Sqlite3.db <span class="keyword">&#8209;&gt;</span> Sqlite3.stmt <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__ResultsDir (InferBase.InferBase__ResultsDir)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__ResultsDir</span></h1></header><div class="spec val" id="val-assert_results_dir"><a href="#val-assert_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>assert_results_dir : string <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Check that the results dir exists and sets up logging, the database, etc.</p></div></div><div class="spec val" id="val-remove_results_dir"><a href="#val-remove_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>remove_results_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Recursively delete the results directory.</p></div></div><div class="spec val" id="val-create_results_dir"><a href="#val-create_results_dir" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_results_dir : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Create the results dir and sets up logging, the database, etc.</p></div></div><div class="spec val" id="val-delete_capture_and_analysis_data"><a href="#val-delete_capture_and_analysis_data" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>delete_capture_and_analysis_data : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>delete all results from the capture and the analysis</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__RunState (InferBase.InferBase__RunState)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__RunState</span></h1></header><div class="spec val" id="val-add_run_to_sequence"><a href="#val-add_run_to_sequence" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>add_run_to_sequence : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>add an entry with the current run date</p></div></div><div class="spec val" id="val-store"><a href="#val-store" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>store : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>save the current state to disk</p></div></div><div class="spec val" id="val-load_and_validate"><a href="#val-load_and_validate" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>load_and_validate : unit <span class="keyword">&#8209;&gt;</span> (unit, string) <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Result.t</code></div><div class="doc"><p>attempt to load state from disk</p></div></div><div class="spec val" id="val-reset"><a href="#val-reset" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>reset the in-memory state to what it would be if this were a fresh run of infer</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Key (InferBase.InferBase__Serialization.Key)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Serialization.Key</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Serialization key, used to distinguish versions of serializers and avoid assert faults</p></div></div><div class="spec val" id="val-issues"><a href="#val-issues" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>issues : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for lint issues</p></div></div><div class="spec val" id="val-summary"><a href="#val-summary" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>summary : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for a procedure summary</p></div></div><div class="spec val" id="val-tenv"><a href="#val-tenv" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>tenv : <a href="index.html#type-t">t</a></code></div><div class="doc"><p>current key for tenv</p></div></div></body></html>

@ -1,3 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Serialization (InferBase.InferBase__Serialization)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Serialization</span></h1></header><p>Serialization of data stuctures</p><div class="spec module" id="module-Key"><a href="#module-Key" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="Key/index.html">Key</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div><div class="spec type" id="type-serializer"><a href="#type-serializer" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>'a serializer</code><code></code><code></code></div><div class="doc"><p>Generic serializer</p></div></div><div class="spec val" id="val-create_serializer"><a href="#val-create_serializer" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create_serializer : <a href="Key/index.html#type-t">Key.t</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a></code></div><div class="doc"><p>create a serializer from a file name
given an integer key used as double-check of the file type</p></div></div><div class="spec val" id="val-read_from_file"><a href="#val-read_from_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_from_file : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> <a href="../InferBase/DB/index.html#type-filename">InferBase.DB.filename</a> <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Deserialize a file and check the keys</p></div></div><div class="spec val" id="val-read_from_string"><a href="#val-read_from_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_from_string : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p>Deserialize a string and check the keys</p></div></div><div class="spec val" id="val-write_to_file"><a href="#val-write_to_file" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write_to_file : <span class="type-var">'a</span> <a href="index.html#type-serializer">serializer</a> <span class="keyword">&#8209;&gt;</span> data:<span class="type-var">'a</span> <span class="keyword">&#8209;&gt;</span> <a href="../InferBase/DB/index.html#type-filename">InferBase.DB.filename</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Serialize into a file writing value</p></div></div><div class="spec val" id="val-generate_keys"><a href="#val-generate_keys" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>generate_keys : unit <span class="keyword">&#8209;&gt;</span> int<span class="keyword"> * </span>int<span class="keyword"> * </span>int<span class="keyword"> * </span>int<span class="keyword"> * </span>int</code></div><div class="doc"><p>Generate new (random) serialization keys, to be used in an ocaml toplevel</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>SQLite (InferBase.InferBase__SourceFile.SQLite)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__SourceFile.SQLite</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code><span class="keyword"> = </span><a href="../index.html#type-t">t</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,13 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__SourceFile (InferBase.InferBase__SourceFile)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__SourceFile</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec module" id="module-Map"><a href="#module-Map" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Map : <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Map.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Map">Map</a>.key<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"><p>Maps from source_file</p></div></div><div class="spec module" id="module-Set"><a href="#module-Set" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Set : <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Set.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Set">Set</a>.elt<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"><p>Set of source files</p></div></div><div class="spec module" id="module-Hash"><a href="#module-Hash" class="anchor"></a><div class="def module"><code><span class="keyword">module </span>Hash : <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Caml.Hashtbl.S<span class="keyword"> with </span><span class="keyword">type </span><a href="index.html#module-Hash">Hash</a>.key<span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-is_invalid"><a href="#val-is_invalid" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_invalid : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Is the source file the invalid source file?</p></div></div><div class="spec val" id="val-changed_sources_from_changed_files"><a href="#val-changed_sources_from_changed_files" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>changed_sources_from_changed_files : string list <span class="keyword">&#8209;&gt;</span> <a href="index.html#module-Set">Set</a>.t</code></div><div class="doc"><p>Set of files read from --changed-files-index file, None if option not specified
NOTE: it may include extra source_files if --changed-files-index contains paths to
header files</p></div></div><div class="spec val" id="val-invalid"><a href="#val-invalid" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>invalid : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Invalid source file</p></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>equality of source files</p></div></div><div class="spec val" id="val-from_abs_path"><a href="#val-from_abs_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>from_abs_path : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>create source file from absolute path.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given path (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-create"><a href="#val-create" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>create : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Create a SourceFile from a given path. If relative, it assumes it is w.r.t. project root.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given path (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-is_cpp_model"><a href="#val-is_cpp_model" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_cpp_model : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Returns true if the file is a C++ model</p></div></div><div class="spec val" id="val-is_infer_model"><a href="#val-is_infer_model" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_infer_model : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-is_under_project_root"><a href="#val-is_under_project_root" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>is_under_project_root : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>Returns true if the file is in project root</p></div></div><div class="spec val" id="val-line_count"><a href="#val-line_count" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>line_count : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>compute line count of a source file</p></div></div><div class="spec val" id="val-of_header"><a href="#val-of_header" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_header : ?&#8288;warn_on_error:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"><p>Return approximate source file corresponding to the parameter if it's header file and
file exists. returns None otherwise.
WARNING: If warn_on_error is false, no warning will be shown whenever an error occurs for
the given SourceFile (e.g. if it does not exist).</p></div></div><div class="spec val" id="val-pp"><a href="#val-pp" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>pretty print t</p></div></div><div class="spec val" id="val-to_abs_path"><a href="#val-to_abs_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_abs_path : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>get the full path of a source file</p></div></div><div class="spec val" id="val-to_rel_path"><a href="#val-to_rel_path" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_rel_path : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>get the relative path of a source file</p></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>convert a source file to a string
WARNING: result may not be valid file path, do not use this function to perform operations
on filenames</p></div></div><div class="spec module" id="module-SQLite"><a href="#module-SQLite" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="SQLite/index.html">SQLite</a> : <a href="../InferBase/SqliteUtils/index.html#module-type-Data">InferBase.SqliteUtils.Data</a><span class="keyword"> with </span><span class="keyword">type </span><a href="../InferBase/SqliteUtils/module-type-Data/index.html#type-t">t</a><span class="keyword"> = </span><a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>1-D (InferBase.InferBase__SqliteUtils.MarshalledData.1-D)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Parameter</span> <span class="module-path">InferBase__SqliteUtils.MarshalledData.1-D</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>MarshalledData (InferBase.InferBase__SqliteUtils.MarshalledData)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__SqliteUtils.MarshalledData</span></h1></header><div class="doc"><p>A default implementation of the Data API that encodes every objects as marshalled blobs</p></div><h3 class="heading">Parameters</h3><div><div class="spec argument" id="argument-1-D"><a href="#argument-1-D" class="anchor"></a><div class="def argument"><code><a href="argument-1-D/index.html">D</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></div><h3 class="heading">Signature</h3><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code><span class="keyword"> = </span><a href="argument-1-D/index.html#type-t">D.t</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Data (InferBase.InferBase__SqliteUtils.Data)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module type</span> <span class="module-path">InferBase__SqliteUtils.Data</span></h1></header><div class="doc"><p>An API commonly needed to store and retrieve objects from the database</p></div><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-serialize"><a href="#val-serialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>serialize : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> Sqlite3.Data.t</code></div><div class="doc"></div></div><div class="spec val" id="val-deserialize"><a href="#val-deserialize" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>deserialize : Sqlite3.Data.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div></body></html>

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__SymOp (InferBase.InferBase__SymOp)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__SymOp</span></h1></header><p>Symbolic Operations and Failures: the units in which analysis work is measured</p><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code></code></div><div class="doc"><p>Internal state of the module</p></div></div><div class="spec val" id="val-check_wallclock_alarm"><a href="#val-check_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>check_wallclock_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>if the wallclock alarm has expired, raise a timeout exception</p></div></div><div class="spec val" id="val-get_remaining_wallclock_time"><a href="#val-get_remaining_wallclock_time" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_remaining_wallclock_time : unit <span class="keyword">&#8209;&gt;</span> float</code></div><div class="doc"><p>Return the time remaining before the wallclock alarm expires</p></div></div><div class="spec val" id="val-get_timeout_seconds"><a href="#val-get_timeout_seconds" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_timeout_seconds : unit <span class="keyword">&#8209;&gt;</span> float option</code></div><div class="doc"><p>Timeout in seconds for each function</p></div></div><div class="spec val" id="val-get_total"><a href="#val-get_total" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>get_total : unit <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"><p>Return the total number of symop's since the beginning</p></div></div><div class="spec val" id="val-pay"><a href="#val-pay" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pay : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Count one symop</p></div></div><div class="spec val" id="val-reset_total"><a href="#val-reset_total" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>reset_total : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the total number of symop's</p></div></div><div class="spec val" id="val-restore_state"><a href="#val-restore_state" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>restore_state : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Restore the old state.</p></div></div><div class="spec val" id="val-save_state"><a href="#val-save_state" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>save_state : keep_symop_total:bool <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"><p>Return the old state, and revert the current state to the initial one.
If keep_symop_total is true, share the total counter.</p></div></div><div class="spec val" id="val-set_alarm"><a href="#val-set_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Reset the counter and activate the alarm</p></div></div><div class="spec val" id="val-set_wallclock_alarm"><a href="#val-set_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_wallclock_alarm : float <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Set the wallclock alarm checked at every pay()</p></div></div><div class="spec val" id="val-set_wallclock_timeout_handler"><a href="#val-set_wallclock_timeout_handler" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>set_wallclock_timeout_handler : (unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>set the handler for the wallclock timeout</p></div></div><div class="spec val" id="val-unset_alarm"><a href="#val-unset_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unset_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>De-activate the alarm</p></div></div><div class="spec val" id="val-unset_wallclock_alarm"><a href="#val-unset_wallclock_alarm" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unset_wallclock_alarm : unit <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Unset the wallclock alarm checked at every pay()</p></div></div><div class="spec type" id="type-failure_kind"><a href="#type-failure_kind" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>failure_kind</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-failure_kind.FKtimeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKtimeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKtimeout</span></code></td><td class="doc"><p>(** max time exceeded *)</p></td></tr><tr id="type-failure_kind.FKsymops_timeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKsymops_timeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKsymops_timeout</span><span class="keyword"> of </span>int</code></td><td class="doc"><p>(** max symop's exceeded *)</p></td></tr><tr id="type-failure_kind.FKrecursion_timeout" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKrecursion_timeout" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKrecursion_timeout</span><span class="keyword"> of </span>int</code></td><td class="doc"><p>(** max recursion level exceeded *)</p></td></tr><tr id="type-failure_kind.FKcrash" class="anchored"><td class="def constructor"><a href="#type-failure_kind.FKcrash" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">FKcrash</span><span class="keyword"> of </span>string</code></td><td class="doc"><p>(** uncaught exception or failed assertion *)</p></td></tr></table><code></code></div><div class="doc"></div></div><div class="spec exception" id="exception-Analysis_failure_exe"><a href="#exception-Analysis_failure_exe" class="anchor"></a><div class="def exception"><code><span class="keyword">exception </span></code><code><span class="exception">Analysis_failure_exe</span><span class="keyword"> of </span><a href="index.html#type-failure_kind">failure_kind</a></code></div><div class="doc"><p>Timeout exception</p></div></div><div class="spec val" id="val-exn_not_failure"><a href="#val-exn_not_failure" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>exn_not_failure : exn <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"><p>check that the exception is not a timeout exception</p></div></div><div class="spec val" id="val-try_finally"><a href="#val-try_finally" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>try_finally : f:(unit <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span>) <span class="keyword">&#8209;&gt;</span> finally:(unit <span class="keyword">&#8209;&gt;</span> unit) <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span></code></div><div class="doc"><p><code class="code">try_finally ~f ~finally</code> executes <code class="code">f</code> and then <code class="code">finally</code> even if <code class="code">f</code> raises an exception.
Assuming that <code class="code">finally ()</code> terminates quickly <code class="code">Analysis_failure_exe</code> exceptions are handled correctly.
In particular, an exception raised by <code class="code">f ()</code> is delayed until <code class="code">finally ()</code> finishes, so <code class="code">finally ()</code> should
return reasonably quickly.</p></div></div><div class="spec val" id="val-pp_failure_kind"><a href="#val-pp_failure_kind" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>pp_failure_kind : Format.formatter <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-failure_kind">failure_kind</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"></div></div><div class="spec val" id="val-failure_kind_to_string"><a href="#val-failure_kind_to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>failure_kind_to_string : <a href="index.html#type-failure_kind">failure_kind</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__Version (InferBase.InferBase__Version)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__Version</span></h1></header><div class="spec val" id="val-major"><a href="#val-major" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>major : int</code></div><div class="doc"></div></div><div class="spec val" id="val-minor"><a href="#val-minor" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>minor : int</code></div><div class="doc"></div></div><div class="spec val" id="val-patch"><a href="#val-patch" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>patch : int</code></div><div class="doc"></div></div><div class="spec val" id="val-commit"><a href="#val-commit" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>commit : string</code></div><div class="doc"></div></div><div class="spec val" id="val-versionString"><a href="#val-versionString" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>versionString : string</code></div><div class="doc"></div></div><div class="spec val" id="val-versionJson"><a href="#val-versionJson" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>versionJson : string</code></div><div class="doc"></div></div><div class="spec val" id="val-clang_enabled"><a href="#val-clang_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>clang_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-java_enabled"><a href="#val-java_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>java_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-python_enabled"><a href="#val-python_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>python_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-xcode_enabled"><a href="#val-xcode_enabled" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>xcode_enabled : bool</code></div><div class="doc"></div></div><div class="spec val" id="val-man_pages_last_modify_date"><a href="#val-man_pages_last_modify_date" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>man_pages_last_modify_date : string</code></div><div class="doc"></div></div></body></html>

@ -1,4 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__ZipLib (InferBase.InferBase__ZipLib)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../index.html">InferBase</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferBase__ZipLib</span></h1></header><div class="spec val" id="val-load"><a href="#val-load" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>load : <span class="type-var">'a</span> <a href="../InferBase/Serialization/index.html#type-serializer">InferBase.Serialization.serializer</a> <span class="keyword">&#8209;&gt;</span> string <span class="keyword">&#8209;&gt;</span> <span class="type-var">'a</span> option</code></div><div class="doc"><p><code class="code">load serializer path</code> searches for the file at the given path in the zip libraries.
If Config.infer_cache is set, already deserialized data will be saved there and <code class="code">path</code>
will be searched from the cache first.</p></div></div></body></html>

@ -1,5 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (InferBase.index)</title><link rel="stylesheet" href="../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="index.html">InferBase</a></span></nav><header></header><h2>Library InferBase</h2><p>
Utility modules that are somewhat specific to infer, usually because
they depend on Config.ml.</p><p>The entry point of this library is the module:
<a href="InferBase/index.html">InferBase</a>.</p></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>TypePtr (InferGenerated.InferGenerated.Clang_ast_types.TypePtr)</title><link rel="stylesheet" href="../../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../../index.html">InferGenerated</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferGenerated.Clang_ast_types.TypePtr</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><code><span class="keyword">..</span></code><code></code></div><div class="doc"></div></div><div class="spec extension"><div class="def extension"><code><span class="keyword">type </span><a href="index.html#type-t">t</a><span class="keyword"> += </span></code><code><span class="extension">Ptr</span><span class="keyword"> of </span>int</code></div><div class="doc"></div></div><div class="spec val" id="val-wrap"><a href="#val-wrap" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>wrap : int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-unwrap"><a href="#val-unwrap" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>unwrap : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Clang_ast_types (InferGenerated.InferGenerated.Clang_ast_types)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferGenerated</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferGenerated.Clang_ast_types</span></h1></header><div class="spec module" id="module-TypePtr"><a href="#module-TypePtr" class="anchor"></a><div class="def module"><code><span class="keyword">module </span><a href="TypePtr/index.html">TypePtr</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span></code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,4 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferCommand (InferGenerated.InferGenerated.InferCommand)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferGenerated</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferGenerated.InferCommand</span></h1></header><div class="spec type" id="type-t"><a href="#type-t" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>t</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-t.Analyze" class="anchored"><td class="def constructor"><a href="#type-t.Analyze" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Analyze</span></code></td><td class="doc"><p>(** analyze previously captured source files *)</p></td></tr><tr id="type-t.Capture" class="anchored"><td class="def constructor"><a href="#type-t.Capture" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Capture</span></code></td><td class="doc"><p>(** capture compilation commands and translate source files into infer's intermediate
language *)</p></td></tr><tr id="type-t.Compile" class="anchored"><td class="def constructor"><a href="#type-t.Compile" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Compile</span></code></td><td class="doc"><p>(** set up the infer environment then run the compilation commands without capturing the
source files *)</p></td></tr><tr id="type-t.Diff" class="anchored"><td class="def constructor"><a href="#type-t.Diff" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Diff</span></code></td><td class="doc"><p>(** orchestrate a diff analysis *)</p></td></tr><tr id="type-t.Events" class="anchored"><td class="def constructor"><a href="#type-t.Events" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Events</span></code></td><td class="doc"><p>(** dump logged events into stdout *)</p></td></tr><tr id="type-t.Explore" class="anchored"><td class="def constructor"><a href="#type-t.Explore" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Explore</span></code></td><td class="doc"><p>(** explore infer reports *)</p></td></tr><tr id="type-t.Report" class="anchored"><td class="def constructor"><a href="#type-t.Report" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Report</span></code></td><td class="doc"><p>(** post-process infer results and reports *)</p></td></tr><tr id="type-t.ReportDiff" class="anchored"><td class="def constructor"><a href="#type-t.ReportDiff" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ReportDiff</span></code></td><td class="doc"><p>(** compute the difference of two infer reports *)</p></td></tr><tr id="type-t.Run" class="anchored"><td class="def constructor"><a href="#type-t.Run" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Run</span></code></td><td class="doc"><p>(** orchestrate the capture, analysis, and reporting of a compilation command *)</p></td></tr></table><code></code></div><div class="doc"><p>Main modes of operation for infer</p></div></div><div class="spec include"><div class="doc"></div><details open="open"><summary><span class="def"><code><span class="keyword">include </span><span class="keyword">sig</span> ... <span class="keyword">end</span></code></span></summary><div class="spec val" id="val-compare"><a href="#val-compare" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-of_string"><a href="#val-of_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a></code></div><div class="doc"></div></div><div class="spec val" id="val-to_string"><a href="#val-to_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_string : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-equal"><a href="#val-equal" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-all_commands"><a href="#val-all_commands" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>all_commands : <a href="index.html#type-t">t</a> list</code></div><div class="doc"></div></div><div class="spec val" id="val-infer_exe_name"><a href="#val-infer_exe_name" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>infer_exe_name : string</code></div><div class="doc"></div></div><div class="spec val" id="val-to_exe_name"><a href="#val-to_exe_name" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>to_exe_name : <a href="index.html#type-t">t</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"></div></div><div class="spec val" id="val-of_exe_name"><a href="#val-of_exe_name" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>of_exe_name : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-t">t</a> option</code></div><div class="doc"></div></div></body></html>

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Java_method_decl_j (InferGenerated.InferGenerated.Java_method_decl_j)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferGenerated</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferGenerated.Java_method_decl_j</span></h1></header><div class="spec type" id="type-java_method_decl"><a href="#type-java_method_decl" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>java_method_decl</code><code><span class="keyword"> = </span><a href="../Java_method_decl_t/index.html#type-java_method_decl">Java_method_decl_t.java_method_decl</a></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-java_method_decl.signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.signature" class="anchor"></a><code>signature : string option;</code></td></tr><tr id="type-java_method_decl.unresolved_signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.unresolved_signature" class="anchor"></a><code>unresolved_signature : bool;</code></td></tr><tr id="type-java_method_decl.method_name" class="anchored"><td class="def field"><a href="#type-java_method_decl.method_name" class="anchor"></a><code>method_name : string;</code></td></tr><tr id="type-java_method_decl.source_file" class="anchored"><td class="def field"><a href="#type-java_method_decl.source_file" class="anchor"></a><code>source_file : string;</code></td></tr><tr id="type-java_method_decl.start_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.start_line" class="anchor"></a><code>start_line : int;</code></td></tr><tr id="type-java_method_decl.end_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.end_line" class="anchor"></a><code>end_line : int;</code></td></tr></table><code>}</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-java_method_decls"><a href="#type-java_method_decls" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>java_method_decls</code><code><span class="keyword"> = </span><a href="../Java_method_decl_t/index.html#type-java_method_decls">Java_method_decl_t.java_method_decls</a></code><code></code></div><div class="doc"></div></div><div class="spec val" id="val-write_java_method_decl"><a href="#val-write_java_method_decl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write_java_method_decl : Bi_outbuf.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decl">java_method_decl</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Output a JSON value of type <a href="index.html#type-java_method_decl">java_method_decl</a>.</p></div></div><div class="spec val" id="val-string_of_java_method_decl"><a href="#val-string_of_java_method_decl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>string_of_java_method_decl : ?&#8288;len:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decl">java_method_decl</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Serialize a value of type <a href="index.html#type-java_method_decl">java_method_decl</a>
into a JSON string.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">len</span>: specifies the initial length
of the buffer used internally.
Default: 1024.</li></ul></div></div><div class="spec val" id="val-read_java_method_decl"><a href="#val-read_java_method_decl" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_java_method_decl : Yojson.Safe.lexer_state <span class="keyword">&#8209;&gt;</span> Lexing.lexbuf <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decl">java_method_decl</a></code></div><div class="doc"><p>Input JSON data of type <a href="index.html#type-java_method_decl">java_method_decl</a>.</p></div></div><div class="spec val" id="val-java_method_decl_of_string"><a href="#val-java_method_decl_of_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>java_method_decl_of_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decl">java_method_decl</a></code></div><div class="doc"><p>Deserialize JSON data of type <a href="index.html#type-java_method_decl">java_method_decl</a>.</p></div></div><div class="spec val" id="val-write_java_method_decls"><a href="#val-write_java_method_decls" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>write_java_method_decls : Bi_outbuf.t <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decls">java_method_decls</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>Output a JSON value of type <a href="index.html#type-java_method_decls">java_method_decls</a>.</p></div></div><div class="spec val" id="val-string_of_java_method_decls"><a href="#val-string_of_java_method_decls" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>string_of_java_method_decls : ?&#8288;len:int <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decls">java_method_decls</a> <span class="keyword">&#8209;&gt;</span> string</code></div><div class="doc"><p>Serialize a value of type <a href="index.html#type-java_method_decls">java_method_decls</a>
into a JSON string.</p><ul class="at-tag"><li><span class="at-tag parameter">Parameter</span> <span class="module-path">len</span>: specifies the initial length
of the buffer used internally.
Default: 1024.</li></ul></div></div><div class="spec val" id="val-read_java_method_decls"><a href="#val-read_java_method_decls" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_java_method_decls : Yojson.Safe.lexer_state <span class="keyword">&#8209;&gt;</span> Lexing.lexbuf <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decls">java_method_decls</a></code></div><div class="doc"><p>Input JSON data of type <a href="index.html#type-java_method_decls">java_method_decls</a>.</p></div></div><div class="spec val" id="val-java_method_decls_of_string"><a href="#val-java_method_decls_of_string" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>java_method_decls_of_string : string <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-java_method_decls">java_method_decls</a></code></div><div class="doc"><p>Deserialize JSON data of type <a href="index.html#type-java_method_decls">java_method_decls</a>.</p></div></div></body></html>

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Java_method_decl_t (InferGenerated.InferGenerated.Java_method_decl_t)</title><link rel="stylesheet" href="../../../odoc.css"/><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><meta name="generator" content="doc-ock-html v1.0.0-1-g1fc9bf0"/></head><body><nav id="top"><a href="../index.html">Up</a> &mdash; <span class="package">package <a href="../../index.html">InferGenerated</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferGenerated.Java_method_decl_t</span></h1></header><div class="spec type" id="type-java_method_decl"><a href="#type-java_method_decl" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>java_method_decl</code><code></code><code><span class="keyword"> = </span></code><code>{</code><table class="record"><tr id="type-java_method_decl.signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.signature" class="anchor"></a><code>signature : string option;</code></td></tr><tr id="type-java_method_decl.unresolved_signature" class="anchored"><td class="def field"><a href="#type-java_method_decl.unresolved_signature" class="anchor"></a><code>unresolved_signature : bool;</code></td></tr><tr id="type-java_method_decl.method_name" class="anchored"><td class="def field"><a href="#type-java_method_decl.method_name" class="anchor"></a><code>method_name : string;</code></td></tr><tr id="type-java_method_decl.source_file" class="anchored"><td class="def field"><a href="#type-java_method_decl.source_file" class="anchor"></a><code>source_file : string;</code></td></tr><tr id="type-java_method_decl.start_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.start_line" class="anchor"></a><code>start_line : int;</code></td></tr><tr id="type-java_method_decl.end_line" class="anchored"><td class="def field"><a href="#type-java_method_decl.end_line" class="anchor"></a><code>end_line : int;</code></td></tr></table><code>}</code><code></code></div><div class="doc"></div></div><div class="spec type" id="type-java_method_decls"><a href="#type-java_method_decls" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>java_method_decls</code><code><span class="keyword"> = </span><a href="index.html#type-java_method_decl">java_method_decl</a> list</code><code></code></div><div class="doc"></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save