moonpool/dev/ocaml/Stdlib/Obj/index.html
2023-08-29 18:39:53 +00:00

2 lines
No EOL
14 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>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> &#x00BB; <a href="../index.html">Stdlib</a> &#x00BB; 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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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">&#45;&gt;</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 included.</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</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>.</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-compare_and_swap_field"><a href="#val-compare_and_swap_field" class="anchor"></a><code><span><span class="keyword">val</span> compare_and_swap_field : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value external anchored" id="val-is_shared"><a href="#val-is_shared" class="anchor"></a><code><span><span class="keyword">val</span> is_shared : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span>float <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-raw_data">raw_data</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span>int <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></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">&#45;&gt;</span></span> <span><a href="../Int32/index.html#type-t">Int32.t</a> <span class="arrow">&#45;&gt;</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">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</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-forcing_tag"><a href="#val-forcing_tag" class="anchor"></a><code><span><span class="keyword">val</span> forcing_tag : int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-cont_tag"><a href="#val-cont_tag" class="anchor"></a><code><span><span class="keyword">val</span> cont_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-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 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>