mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-17 08:06:43 -05:00
2 lines
No EOL
15 KiB
HTML
2 lines
No EOL
15 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Obj (ocaml.Stdlib.Obj)</title><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.1"/><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> » <a href="../index.html">Stdlib</a> » Obj</nav><header class="odoc-preamble"><h1>Module <code><span>Stdlib.Obj</span></code></h1><p>Operations on internal representations of values.</p><p>Not for the casual user.</p></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><div class="odoc-spec"><div class="spec type anchored" id="type-raw_data"><a href="#type-raw_data" class="anchor"></a><code><span><span class="keyword">type</span> raw_data</span><span> = nativeint</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-repr"><a href="#val-repr" class="anchor"></a><code><span><span class="keyword">val</span> repr : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-obj"><a href="#val-obj" class="anchor"></a><code><span><span class="keyword">val</span> obj : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-magic"><a href="#val-magic" class="anchor"></a><code><span><span class="keyword">val</span> magic : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_block"><a href="#val-is_block" class="anchor"></a><code><span><span class="keyword">val</span> is_block : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-is_int"><a href="#val-is_int" class="anchor"></a><code><span><span class="keyword">val</span> is_int : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-tag"><a href="#val-tag" class="anchor"></a><code><span><span class="keyword">val</span> tag : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-size"><a href="#val-size" class="anchor"></a><code><span><span class="keyword">val</span> size : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-reachable_words"><a href="#val-reachable_words" class="anchor"></a><code><span><span class="keyword">val</span> reachable_words : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><p>Computes the total size (in words, including the headers) of all heap blocks accessible from the argument. Statically allocated blocks are excluded, unless the runtime system was configured with <code>--disable-naked-pointers</code>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.04</li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-field"><a href="#val-field" class="anchor"></a><code><span><span class="keyword">val</span> field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-set_field"><a href="#val-set_field" class="anchor"></a><code><span><span class="keyword">val</span> set_field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>When using flambda:</p><p><code>set_field</code> MUST NOT be called on immutable blocks. (Blocks allocated in C stubs, or with <code>new_block</code> below, are always considered mutable.)</p><p>The same goes for <code>set_double_field</code> and <code>set_tag</code>. However, for <code>set_tag</code>, in the case of immutable blocks where the middle-end optimizers never see code that discriminates on their tag (for example records), the operation should be safe. Such uses are nonetheless discouraged.</p><p>For experts only: <code>set_field</code> et al can be made safe by first wrapping the block in <a href="../Sys/index.html#val-opaque_identity"><code>Sys.opaque_identity</code></a>, so any information about its contents will not be propagated.</p></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-set_tag"><a href="#val-set_tag" class="anchor"></a><code><span><span class="keyword">val</span> set_tag : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> Use with_tag instead.</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-double_field"><a href="#val-double_field" class="anchor"></a><code><span><span class="keyword">val</span> double_field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> float</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_double_field"><a href="#val-set_double_field" class="anchor"></a><code><span><span class="keyword">val</span> set_double_field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>float <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-raw_field"><a href="#val-raw_field" class="anchor"></a><code><span><span class="keyword">val</span> raw_field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-raw_data">raw_data</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-set_raw_field"><a href="#val-set_raw_field" class="anchor"></a><code><span><span class="keyword">val</span> set_raw_field : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><a href="#type-raw_data">raw_data</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-new_block"><a href="#val-new_block" class="anchor"></a><code><span><span class="keyword">val</span> new_block : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-dup"><a href="#val-dup" class="anchor"></a><code><span><span class="keyword">val</span> dup : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-truncate"><a href="#val-truncate" class="anchor"></a><code><span><span class="keyword">val</span> truncate : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> </li></ul></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-add_offset"><a href="#val-add_offset" class="anchor"></a><code><span><span class="keyword">val</span> add_offset : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="../Int32/index.html#type-t">Int32.t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-with_tag"><a href="#val-with_tag" class="anchor"></a><code><span><span class="keyword">val</span> with_tag : <span>int <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-first_non_constant_constructor_tag"><a href="#val-first_non_constant_constructor_tag" class="anchor"></a><code><span><span class="keyword">val</span> first_non_constant_constructor_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-last_non_constant_constructor_tag"><a href="#val-last_non_constant_constructor_tag" class="anchor"></a><code><span><span class="keyword">val</span> last_non_constant_constructor_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lazy_tag"><a href="#val-lazy_tag" class="anchor"></a><code><span><span class="keyword">val</span> lazy_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-closure_tag"><a href="#val-closure_tag" class="anchor"></a><code><span><span class="keyword">val</span> closure_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-object_tag"><a href="#val-object_tag" class="anchor"></a><code><span><span class="keyword">val</span> object_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-infix_tag"><a href="#val-infix_tag" class="anchor"></a><code><span><span class="keyword">val</span> infix_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-forward_tag"><a href="#val-forward_tag" class="anchor"></a><code><span><span class="keyword">val</span> forward_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-no_scan_tag"><a href="#val-no_scan_tag" class="anchor"></a><code><span><span class="keyword">val</span> no_scan_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abstract_tag"><a href="#val-abstract_tag" class="anchor"></a><code><span><span class="keyword">val</span> abstract_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_tag"><a href="#val-string_tag" class="anchor"></a><code><span><span class="keyword">val</span> string_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-double_tag"><a href="#val-double_tag" class="anchor"></a><code><span><span class="keyword">val</span> double_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-double_array_tag"><a href="#val-double_array_tag" class="anchor"></a><code><span><span class="keyword">val</span> double_array_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-custom_tag"><a href="#val-custom_tag" class="anchor"></a><code><span><span class="keyword">val</span> custom_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-final_tag"><a href="#val-final_tag" class="anchor"></a><code><span><span class="keyword">val</span> final_tag : int</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> Replaced by custom_tag.</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int_tag"><a href="#val-int_tag" class="anchor"></a><code><span><span class="keyword">val</span> int_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-out_of_heap_tag"><a href="#val-out_of_heap_tag" class="anchor"></a><code><span><span class="keyword">val</span> out_of_heap_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unaligned_tag"><a href="#val-unaligned_tag" class="anchor"></a><code><span><span class="keyword">val</span> unaligned_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Closure"><a href="#module-Closure" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Closure/index.html">Closure</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Extension_constructor"><a href="#module-Extension_constructor" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Extension_constructor/index.html">Extension_constructor</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-extension_constructor"><a href="#val-extension_constructor" class="anchor"></a><code><span><span class="keyword">val</span> extension_constructor : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> extension_constructor</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Obj.Extension_constructor.of_val</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-extension_name"><a href="#val-extension_name" class="anchor"></a><code><span><span class="keyword">val</span> extension_name : <span>extension_constructor <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Obj.Extension_constructor.name</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-extension_id"><a href="#val-extension_id" class="anchor"></a><code><span><span class="keyword">val</span> extension_id : <span>extension_constructor <span class="arrow">-></span></span> int</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> use Obj.Extension_constructor.id</li></ul></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Ephemeron"><a href="#module-Ephemeron" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Ephemeron/index.html">Ephemeron</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Ephemeron with arbitrary arity and untyped</p></div></div></div></body></html> |