This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
<!DOCTYPE html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>InferBase__SymOp (InferBase.InferBase__SymOp)</title><linkrel="stylesheet"href="../../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc %%VERSION%%"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="../index.html">Up</a>–<ahref="../index.html">InferBase</a>» InferBase__SymOp</nav><h1>Module <code>InferBase__SymOp</code></h1><p>Symbolic Operations and Failures: the units in which analysis work is measured</p></header><dl><dtclass="spec type"id="type-t"><ahref="#type-t"class="anchor"></a><code><spanclass="keyword">type</span> t</code></dt><dd><p>Internal state of the module</p></dd></dl><dl><dtclass="spec value"id="val-check_wallclock_alarm"><ahref="#val-check_wallclock_alarm"class="anchor"></a><code><spanclass="keyword">val</span> check_wallclock_alarm : unit <span>-></span> unit</code></dt><dd><p>if the wallclock alarm has expired, raise a timeout exception</p></dd></dl><dl><dtclass="spec value"id="val-get_remaining_wallclock_time"><ahref="#val-get_remaining_wallclock_time"class="anchor"></a><code><spanclass="keyword">val</span> get_remaining_wallclock_time : unit <span>-></span> float</code></dt><dd><p>Return the time remaining before the wallclock alarm expires</p></dd></dl><dl><dtclass="spec value"id="val-get_timeout_seconds"><ahref="#val-get_timeout_seconds"class="anchor"></a><code><spanclass="keyword">val</span> get_timeout_seconds : unit <span>-></span><span>float option</span></code></dt><dd><p>Timeout in seconds for each function</p></dd></dl><dl><dtclass="spec value"id="val-get_total"><ahref="#val-get_total"class="anchor"></a><code><spanclass="keyword">val</span> get_total : unit <span>-></span> int</code></dt><dd><p>Return the total number of symop's since the beginning</p></dd></dl><dl><dtclass="spec value"id="val-pay"><ahref="#val-pay"class="anchor"></a><code><spanclass="keyword">val</span> pay : unit <span>-></span> unit</code></dt><dd><p>Count one symop</p></dd></dl><dl><dtclass="spec value"id="val-reset_total"><ahref="#val-reset_total"class="anchor"></a><code><spanclass="keyword">val</span> reset_total : unit <span>-></span> unit</code></dt><dd><p>Reset the total number of symop's</p></dd></dl><dl><dtclass="spec value"id="val-restore_state"><ahref="#val-restore_state"class="anchor"></a><code><spanclass="keyword">val</span> restore_state : <ahref="index.html#type-t">t</a><span>-></span> unit</code></dt><dd><p>Restore the old state.</p></dd></dl><dl><dtclass="spec value"id="val-save_state"><ahref="#val-save_state"class="anchor"></a><code><spanclass="keyword">val</span> save_state : <span>keep_symop_total:bool</span><span>-></span><ahref="index.html#type-t">t</a></code></dt><dd><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></dd></dl><dl><dtclass="spec value"id="val-set_alarm"><ahref="#val-set_alarm"class="anchor"></a><code><spanclass="keyword">val</span> set_alarm : unit <span>-></span> unit</code></dt><dd><p>Reset the counter and activate the alarm</p></dd></dl><dl><dtclass="spec value"id="val-set_wallclock_alarm"><ahref="#val-set_wallclock_alarm"class="anchor"></a><code><spanclass="keyword">val</span> set_wallclock_alarm : float <span>-></span> unit</code></dt><dd><p>Set the wallclock alarm checked at every pay()</p></dd></dl><dl><dtclass="spec value"id="val-set_wallclock_timeout_handler"><ahref="#val-set_wallclock_timeout_handler"class="anchor"></a><code><spanclass="keyword">val</span> set_wallclock_timeout_handler : <span>(unit <span>-></span> unit)</span><span>-></span> unit</code></dt><dd><p>set the handler for the wallclock timeout</p></dd></dl><dl><dtclass="spec value"id="val-unset_alarm"><ahref="#val-unset_alarm"class="anchor"></a><code><spanclass="keyword">val</span> unset_alarm : unit <span>-></span> unit</code></dt><dd><p>De-activate the alarm</p></dd></dl><dl><dtclass="spec value"id="val-unset_wallclock_alarm"><ahref="#val-unset_wallclock_alarm"class="anchor"></a><code><spanclass="keyword">val</span> unset_wallclock_alarm : unit <span>-></span> unit</code></dt><dd><p>Unset the wallclock alarm checked at every pay()</p></dd></dl><dl><dtclass="spec type"id="type-failure_kind"><ahref="#type-failure_kind"class="anchor"></a><code><spanclass="keyword">type</span> failure_kind</code><code> = </code><tableclass="variant"><trid="type-failure_kind.FKtimeout"class="anchored"><tdclass="def constructor"><ahref="#type-failure_kind.FKtimeout"class="anchor"></a><code>| </code><code><spanclass="constructor">FKtimeout</span></code></td><tdclass="doc"><p>max time exceeded</p></td></tr><trid="type-failure_kind.FKsymops_timeout"class="anchored"><tdclass="def constructor"><ahref="#type-failure_kind.FKsymops_timeout"class="anchor"></a><code>| </code><code><spanclass="constructor">FKsymops_timeout</span><spanclass="keyword">of</span> int</code></td><tdclass="doc"><p>max symop's exceeded</p></td></tr><trid="type-failure_kind.FKrecursion_timeout"class="anchored"><tdclass="def constructor"><ahref="#type-failure_kind.FKrecursion_timeout"class="anchor"></a><code>| </code><code><spanclass="constructor">FKrecursion_timeout</span><spanclass="keyword">of</span> int</code></td><tdclass="doc"><p>max recursion level exceeded</p></td></tr><trid="type-failure_kind.FKcrash"class="anchored"><tdclass="def constructor"><ahref="#type-failure_kind.FKcrash"class="anchor"></a><code>| </code><code><spanclass="constructor">FKcrash</span><spanclass="keyword">of</span> string</code></td><tdclass="doc"><p>uncaught exception or failed assertion</p></td></tr></table></dt></dl><dl><dtclass="spec exception"id="exception-Analysis_failure_exe"><ahref="#exception-Analysis_failure_exe"class="anchor"></a><code><spanclass="keyword">exception</span></code><code><spanclass="exception">Analysis_failure_exe</span><spanclass="keyword">of</span><ahref="index.html#type-failure_kind">failure_kind</a></code></dt><dd><p>Timeout exception</p></dd></dl><dl><dtclass="spec value"id="val-exn_not_failure"><ahref="#val-exn_not_failure"class="anchor"></a><code><spanclass="keyword">val</span> exn_not_failure : exn <span>-></span> bool</code></dt><dd><p>check that the exception is not a timeout exception</p></dd></dl><dl><dtclass="spec value"id="val-try_finally"><ahref="#val-try_finally"class="anchor"></a><code><spanclass="keyword">val</span> try_finally : <span>f:<span>(unit <span>-></span><spanclass="type-var">'a</span>)</span></span><span>-></span><span>finally:<span>(unit <span>-></span> unit)</span></span><span>-></span><spanclass="type-var">'a</span></code></dt><dd><p><code>try_finally ~f ~finally</code> executes <code>f</code> and then <code>finally</code> even if <code>f</code> raises an exception. Assuming that <code>finally ()</code> terminates quickly <code>Analysis_failure_exe</code> exceptions are handled correctly. In particular, an exception raised by <code>f ()</code> is delayed until <code>finally ()</code> finishes, so <code>finally ()</code> should return reasonably quickly.</p></dd></dl><dl><dtclass="spec value"id="val-pp_failure_kind"><ahref="#val-pp_failure_kind"class="anchor"></a><code><spanclass="keyword">val</span> pp_failure_kind : Stdlib.Format.formatter <span>-></span><ahref="index.html#type-failure_kind">failure_kind</a><span>-></span> unit</code></dt><dtclass="spec value"id="val-failure_kind_to_string"><ahref="#val-failure_kind_to_string"class="anchor"></a><code><spanclass="keyword">val</span> failure_kind_to_string : <ahref="index.html#type-failure_kind">failure_kind</a><span>-></span> string</code></dt></dl></div></body></html>