You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3 lines
8.6 KiB

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Driver (infer.InferModules.Driver)</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">infer</a></span></nav><header><h1><span class="keyword">Module</span> <span class="module-path">InferModules.Driver</span></h1></header><p>entry points for top-level functionalities such as capture under various build systems,
analysis, and reporting</p><div class="spec type" id="type-mode"><a href="#type-mode" class="anchor"></a><div class="def type"><code><span class="keyword">type </span>mode</code><code></code><code><span class="keyword"> = </span></code><table class="variant"><tr id="type-mode.Analyze" class="anchored"><td class="def constructor"><a href="#type-mode.Analyze" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Analyze</span></code></td></tr><tr id="type-mode.BuckGenrule" class="anchored"><td class="def constructor"><a href="#type-mode.BuckGenrule" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">BuckGenrule</span><span class="keyword"> of </span>string</code></td></tr><tr id="type-mode.BuckCompilationDB" class="anchored"><td class="def constructor"><a href="#type-mode.BuckCompilationDB" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">BuckCompilationDB</span><span class="keyword"> of </span>string<span class="keyword"> * </span>string list</code></td></tr><tr id="type-mode.Clang" class="anchored"><td class="def constructor"><a href="#type-mode.Clang" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Clang</span><span class="keyword"> of </span><a href="../Clang/index.html#type-compiler">Clang.compiler</a><span class="keyword"> * </span>string<span class="keyword"> * </span>string list</code></td></tr><tr id="type-mode.ClangCompilationDB" class="anchored"><td class="def constructor"><a href="#type-mode.ClangCompilationDB" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">ClangCompilationDB</span><span class="keyword"> of </span>[ `Escaped of string | `Raw of string ] list</code></td></tr><tr id="type-mode.Javac" class="anchored"><td class="def constructor"><a href="#type-mode.Javac" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Javac</span><span class="keyword"> of </span><a href="../Javac/index.html#type-compiler">Javac.compiler</a><span class="keyword"> * </span>string<span class="keyword"> * </span>string list</code></td></tr><tr id="type-mode.Maven" class="anchored"><td class="def constructor"><a href="#type-mode.Maven" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Maven</span><span class="keyword"> of </span>string<span class="keyword"> * </span>string list</code></td></tr><tr id="type-mode.Python" class="anchored"><td class="def constructor"><a href="#type-mode.Python" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">Python</span><span class="keyword"> of </span>string list</code></td></tr><tr id="type-mode.PythonCapture" class="anchored"><td class="def constructor"><a href="#type-mode.PythonCapture" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">PythonCapture</span><span class="keyword"> of </span><a href="../../../InferBase/InferBase/Config/index.html#type-build_system">InferBase.Config.build_system</a><span class="keyword"> * </span>string list</code></td></tr><tr id="type-mode.XcodeXcpretty" class="anchored"><td class="def constructor"><a href="#type-mode.XcodeXcpretty" class="anchor"></a><code><span class="keyword">| </span></code><code><span class="constructor">XcodeXcpretty</span><span class="keyword"> of </span>string<span class="keyword"> * </span>string list</code></td></tr></table><code></code></div><div class="doc"><p>based on the build_system and options passed to infer, we run in different driver modes</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_mode"><a href="#val-compare_mode" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>compare_mode : <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> int</code></div><div class="doc"></div></div></details></div><div class="spec val" id="val-equal_mode"><a href="#val-equal_mode" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>equal_mode : <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> bool</code></div><div class="doc"></div></div><div class="spec val" id="val-mode_from_command_line"><a href="#val-mode_from_command_line" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mode_from_command_line : <a href="index.html#type-mode">mode</a> <a href="../../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Lazy.t</code></div><div class="doc"><p>driver mode computed from the command-line arguments and settings in Config</p></div></div><div class="spec val" id="val-mode_of_build_command"><a href="#val-mode_of_build_command" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>mode_of_build_command : string list <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-mode">mode</a></code></div><div class="doc"><p>driver mode computed from the build command alone, eg <code class="code">[&quot;buck&quot;; &quot;build&quot;; ...]</code> gives <code class="code">PythonCapture (BBuck, [&quot;buck&quot;; &quot;build&quot;; ...])</code></p></div></div><div class="spec val" id="val-run_prologue"><a href="#val-run_prologue" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>run_prologue : <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>prepare the environment for running the given mode</p></div></div><div class="spec val" id="val-capture"><a href="#val-capture" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>capture : changed_files:<a href="../../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>run the capture for the given mode</p></div></div><div class="spec val" id="val-analyze_and_report"><a href="#val-analyze_and_report" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>analyze_and_report : ?&#8288;suppress_console_report:bool <span class="keyword">&#8209;&gt;</span> changed_files:<a href="../../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option <span class="keyword">&#8209;&gt;</span> <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>run the analysis for the given mode</p></div></div><div class="spec val" id="val-run_epilogue"><a href="#val-run_epilogue" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>run_epilogue : <a href="index.html#type-mode">mode</a> <span class="keyword">&#8209;&gt;</span> unit</code></div><div class="doc"><p>cleanup infer-out/ for Buck, generate stats, and generally post-process the results of a run</p></div></div><div class="spec val" id="val-read_config_changed_files"><a href="#val-read_config_changed_files" class="anchor"></a><div class="def val"><code><span class="keyword">val </span>read_config_changed_files : unit <span class="keyword">&#8209;&gt;</span> <a href="../../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option</code></div><div class="doc"><p>return the list of changed files as read from Config.changed_files_index and passed to SourceFile.changed_sources_from_changed_files</p></div></div></body></html>