tiny_httpd/ocaml/Linkdeps/index.html
2025-01-30 03:35:54 +00:00

12 lines
7.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linkdeps (ocaml.Linkdeps)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.4"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">ocaml</a> &#x00BB; Linkdeps</nav><header class="odoc-preamble"><h1>Module <code><span>Linkdeps</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>The state of the linking check. It keeps track of compilation units provided and required so far.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-compunit"><a href="#type-compunit" class="anchor"></a><code><span><span class="keyword">type</span> compunit</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-filename"><a href="#type-filename" class="anchor"></a><code><span><span class="keyword">type</span> filename</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span class="label">complete</span>:bool <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>create ~complete</code> returns an empty state. If <code>complete</code> is <code>true</code>, missing compilation units will be treated as errors.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">filename</span>:<a href="#type-filename">filename</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">compunit</span>:<a href="#type-compunit">compunit</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">provides</span>:<span><a href="#type-compunit">compunit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">requires</span>:<span><a href="#type-compunit">compunit</a> list</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p><code>add t ~filename ~compunit ~provides ~requires</code> registers the compilation unit <code>compunit</code> found in <code>filename</code> to <code>t</code>.</p><ul><li><code>provides</code> are units and sub-units provided by <code>compunit</code></li><li><code>requires</code> are units required by <code>compunit</code></li></ul><p><code>add</code> should be called in reverse topological order.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-required"><a href="#val-required" class="anchor"></a><code><span><span class="keyword">val</span> required : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-compunit">compunit</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>required t compunit</code> returns <code>true</code> if <code>compunit</code> is a dependency of previously added compilation units.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-compunit_and_source"><a href="#type-compunit_and_source" class="anchor"></a><code><span><span class="keyword">type</span> compunit_and_source</span><span> = </span><span>{</span></code><ol><li id="type-compunit_and_source.compunit" class="def record field anchored"><a href="#type-compunit_and_source.compunit" class="anchor"></a><code><span>compunit : <a href="#type-compunit">compunit</a>;</span></code></li><li id="type-compunit_and_source.filename" class="def record field anchored"><a href="#type-compunit_and_source.filename" class="anchor"></a><code><span>filename : <a href="#type-filename">filename</a>;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-error"><a href="#type-error" class="anchor"></a><code><span><span class="keyword">type</span> error</span><span> = </span></code><ol><li id="type-error.Missing_implementations" class="def variant constructor anchored"><a href="#type-error.Missing_implementations" class="anchor"></a><code><span>| </span><span><span class="constructor">Missing_implementations</span> <span class="keyword">of</span> <span><span>(<a href="#type-compunit">compunit</a> * <span><a href="#type-compunit_and_source">compunit_and_source</a> list</span>)</span> list</span></span></code></li><li id="type-error.Wrong_link_order" class="def variant constructor anchored"><a href="#type-error.Wrong_link_order" class="anchor"></a><code><span>| </span><span><span class="constructor">Wrong_link_order</span> <span class="keyword">of</span> <span><span>(<a href="#type-compunit_and_source">compunit_and_source</a> * <span><a href="#type-compunit_and_source">compunit_and_source</a> list</span>)</span> list</span></span></code></li><li id="type-error.Multiple_definitions" class="def variant constructor anchored"><a href="#type-error.Multiple_definitions" class="anchor"></a><code><span>| </span><span><span class="constructor">Multiple_definitions</span> <span class="keyword">of</span> <span><span>(<a href="#type-compunit">compunit</a> * <span><a href="#type-filename">filename</a> list</span>)</span> list</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-check"><a href="#val-check" class="anchor"></a><code><span><span class="keyword">val</span> check : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-error">error</a> option</span></span></code></div><div class="spec-doc"><p><code>check t</code> should be called once all the compilation units to be linked have been added. It returns some error if:</p><ul><li>There are some missing implementations and <code>complete</code> is <code>true</code></li><li>Some implementation appear before their dependencies</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-report_error"><a href="#val-report_error" class="anchor"></a><code><span><span class="keyword">val</span> report_error :
<span><span class="label">print_filename</span>:<span>string <a href="../Format_doc/index.html#type-printer">Format_doc.printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-error">error</a> <a href="../Format_doc/index.html#type-format_printer">Format_doc.format_printer</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-report_error_doc"><a href="#val-report_error_doc" class="anchor"></a><code><span><span class="keyword">val</span> report_error_doc :
<span><span class="label">print_filename</span>:<span>string <a href="../Format_doc/index.html#type-printer">Format_doc.printer</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="#type-error">error</a> <a href="../Format_doc/index.html#type-printer">Format_doc.printer</a></span></span></code></div></div></div></body></html>