mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-18 08:36:43 -05:00
37 lines
No EOL
34 KiB
HTML
37 lines
No EOL
34 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Misc (ocaml.Misc)</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> » Misc</nav><header class="odoc-preamble"><h1>Module <code><span>Misc</span></code></h1><p>Miscellaneous useful types and functions</p><p><b>Warning:</b> this module is unstable and part of <span class="xref-unresolved">compiler-libs</span>.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-fatal_error"><a href="#val-fatal_error" class="anchor"></a><code><span><span class="keyword">val</span> fatal_error : <span>string <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fatal_errorf"><a href="#val-fatal_errorf" class="anchor"></a><code><span><span class="keyword">val</span> fatal_errorf : <span><span><span>(<span class="type-var">'a</span>, <a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'b</span>)</span> <a href="../Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Fatal_error"><a href="#exception-Fatal_error" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Fatal_error</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-try_finally"><a href="#val-try_finally" class="anchor"></a><code><span><span class="keyword">val</span> try_finally :
|
||
<span>?always:<span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span>?exceptionally:<span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>try_finally work ~always ~exceptionally</code> is designed to run code in <code>work</code> that may fail with an exception, and has two kind of cleanup routines: <code>always</code>, that must be run after any execution of the function (typically, freeing system resources), and <code>exceptionally</code>, that should be run only if <code>work</code> or <code>always</code> failed with an exception (typically, undoing user-visible state changes that would only make sense if the function completes correctly). For example:</p><pre class="language-ocaml"><code>let objfile = outputprefix ^ ".cmo" in
|
||
let oc = open_out_bin objfile in
|
||
Misc.try_finally
|
||
(fun () ->
|
||
bytecode
|
||
++ Timings.(accumulate_time (Generate sourcefile))
|
||
(Emitcode.to_file oc modulename objfile);
|
||
Warnings.check_fatal ())
|
||
~always:(fun () -> close_out oc)
|
||
~exceptionally:(fun _exn -> remove_file objfile);</code></pre><p>If <code>exceptionally</code> fail with an exception, it is propagated as usual.</p><p>If <code>always</code> or <code>exceptionally</code> use exceptions internally for control-flow but do not raise, then <code>try_finally</code> is careful to preserve any exception backtrace coming from <code>work</code> or <code>always</code> for easier debugging.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-reraise_preserving_backtrace"><a href="#val-reraise_preserving_backtrace" class="anchor"></a><code><span><span class="keyword">val</span> reraise_preserving_backtrace : <span>exn <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>reraise_preserving_backtrace e f</code> is (f (); raise e) except that the current backtrace is preserved, even if <code>f</code> uses exceptions internally.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_end"><a href="#val-map_end" class="anchor"></a><code><span><span class="keyword">val</span> map_end : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'b</span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_left_right"><a href="#val-map_left_right" class="anchor"></a><code><span><span class="keyword">val</span> map_left_right : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-for_all2"><a href="#val-for_all2" class="anchor"></a><code><span><span class="keyword">val</span> for_all2 : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'b</span> list</span> <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-replicate_list"><a href="#val-replicate_list" class="anchor"></a><code><span><span class="keyword">val</span> replicate_list : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-list_remove"><a href="#val-list_remove" class="anchor"></a><code><span><span class="keyword">val</span> list_remove : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-split_last"><a href="#val-split_last" class="anchor"></a><code><span><span class="keyword">val</span> split_last : <span><span><span class="type-var">'a</span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span> * <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-ref_and_value"><a href="#type-ref_and_value" class="anchor"></a><code><span><span class="keyword">type</span> ref_and_value</span><span> = </span></code><ol><li id="type-ref_and_value.R" class="def variant constructor anchored"><a href="#type-ref_and_value.R" class="anchor"></a><code><span>| </span><span><span class="constructor">R</span> : <span><span class="type-var">'a</span> <a href="../Stdlib/index.html#type-ref">ref</a></span> * <span class="type-var">'a</span> <span class="arrow">-></span> <a href="#type-ref_and_value">ref_and_value</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-protect_refs"><a href="#val-protect_refs" class="anchor"></a><code><span><span class="keyword">val</span> protect_refs : <span><span><a href="#type-ref_and_value">ref_and_value</a> list</span> <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>protect_refs l f</code> temporarily sets <code>r</code> to <code>v</code> for each <code>R (r, v)</code> in <code>l</code> while executing <code>f</code>. The previous contents of the references is restored even if <code>f</code> raises an exception, without altering the exception backtrace.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Stdlib"><a href="#module-Stdlib" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Stdlib/index.html">Stdlib</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-find_in_path"><a href="#val-find_in_path" class="anchor"></a><code><span><span class="keyword">val</span> find_in_path : <span><span>string list</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_in_path_rel"><a href="#val-find_in_path_rel" class="anchor"></a><code><span><span class="keyword">val</span> find_in_path_rel : <span><span>string list</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-find_in_path_uncap"><a href="#val-find_in_path_uncap" class="anchor"></a><code><span><span class="keyword">val</span> find_in_path_uncap : <span><span>string list</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-remove_file"><a href="#val-remove_file" class="anchor"></a><code><span><span class="keyword">val</span> remove_file : <span>string <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-expand_directory"><a href="#val-expand_directory" class="anchor"></a><code><span><span class="keyword">val</span> expand_directory : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-split_path_contents"><a href="#val-split_path_contents" class="anchor"></a><code><span><span class="keyword">val</span> split_path_contents : <span>?sep:char <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_hashtable"><a href="#val-create_hashtable" class="anchor"></a><code><span><span class="keyword">val</span> create_hashtable : <span>int <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> list</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../Stdlib/Hashtbl/index.html#type-t">Stdlib.Hashtbl.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-copy_file"><a href="#val-copy_file" class="anchor"></a><code><span><span class="keyword">val</span> copy_file : <span><a href="../Stdlib/index.html#type-in_channel">in_channel</a> <span class="arrow">-></span></span> <span><a href="../Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-copy_file_chunk"><a href="#val-copy_file_chunk" class="anchor"></a><code><span><span class="keyword">val</span> copy_file_chunk : <span><a href="../Stdlib/index.html#type-in_channel">in_channel</a> <span class="arrow">-></span></span> <span><a href="../Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_of_file"><a href="#val-string_of_file" class="anchor"></a><code><span><span class="keyword">val</span> string_of_file : <span><a href="../Stdlib/index.html#type-in_channel">in_channel</a> <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-output_to_file_via_temporary"><a href="#val-output_to_file_via_temporary" class="anchor"></a><code><span><span class="keyword">val</span> output_to_file_via_temporary :
|
||
<span>?mode:<span><a href="../Stdlib/index.html#type-open_flag">open_flag</a> list</span> <span class="arrow">-></span></span>
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><span>(<span>string <span class="arrow">-></span></span> <span><a href="../Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-protect_writing_to_file"><a href="#val-protect_writing_to_file" class="anchor"></a><code><span><span class="keyword">val</span> protect_writing_to_file : <span>filename:string <span class="arrow">-></span></span> <span>f:<span>(<span><a href="../Stdlib/index.html#type-out_channel">out_channel</a> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Open the given <code>filename</code> for writing (in binary mode), pass the <code>out_channel</code> to the given function, then close the channel. If the function raises an exception then <code>filename</code> will be removed.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-log2"><a href="#val-log2" class="anchor"></a><code><span><span class="keyword">val</span> log2 : <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-align"><a href="#val-align" class="anchor"></a><code><span><span class="keyword">val</span> align : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-no_overflow_add"><a href="#val-no_overflow_add" class="anchor"></a><code><span><span class="keyword">val</span> no_overflow_add : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-no_overflow_sub"><a href="#val-no_overflow_sub" class="anchor"></a><code><span><span class="keyword">val</span> no_overflow_sub : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-no_overflow_mul"><a href="#val-no_overflow_mul" class="anchor"></a><code><span><span class="keyword">val</span> no_overflow_mul : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-no_overflow_lsl"><a href="#val-no_overflow_lsl" class="anchor"></a><code><span><span class="keyword">val</span> no_overflow_lsl : <span>int <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> bool</span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Int_literal_converter"><a href="#module-Int_literal_converter" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Int_literal_converter/index.html">Int_literal_converter</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-chop_extensions"><a href="#val-chop_extensions" class="anchor"></a><code><span><span class="keyword">val</span> chop_extensions : <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-search_substring"><a href="#val-search_substring" class="anchor"></a><code><span><span class="keyword">val</span> search_substring : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-replace_substring"><a href="#val-replace_substring" class="anchor"></a><code><span><span class="keyword">val</span> replace_substring : <span>before:string <span class="arrow">-></span></span> <span>after:string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> string</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-rev_split_words"><a href="#val-rev_split_words" class="anchor"></a><code><span><span class="keyword">val</span> rev_split_words : <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_ref"><a href="#val-get_ref" class="anchor"></a><code><span><span class="keyword">val</span> get_ref : <span><span><span><span class="type-var">'a</span> list</span> <a href="../Stdlib/index.html#type-ref">ref</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_or_ignore"><a href="#val-set_or_ignore" class="anchor"></a><code><span><span class="keyword">val</span> set_or_ignore : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> option</span>)</span> <span class="arrow">-></span></span> <span><span><span><span class="type-var">'b</span> option</span> <a href="../Stdlib/index.html#type-ref">ref</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fst3"><a href="#val-fst3" class="anchor"></a><code><span><span class="keyword">val</span> fst3 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-snd3"><a href="#val-snd3" class="anchor"></a><code><span><span class="keyword">val</span> snd3 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span>)</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-thd3"><a href="#val-thd3" class="anchor"></a><code><span><span class="keyword">val</span> thd3 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'c</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fst4"><a href="#val-fst4" class="anchor"></a><code><span><span class="keyword">val</span> fst4 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span> * <span class="type-var">'d</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-snd4"><a href="#val-snd4" class="anchor"></a><code><span><span class="keyword">val</span> snd4 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span> * <span class="type-var">'d</span>)</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-thd4"><a href="#val-thd4" class="anchor"></a><code><span><span class="keyword">val</span> thd4 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span> * <span class="type-var">'d</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'c</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-for4"><a href="#val-for4" class="anchor"></a><code><span><span class="keyword">val</span> for4 : <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span> * <span class="type-var">'c</span> * <span class="type-var">'d</span>)</span> <span class="arrow">-></span></span> <span class="type-var">'d</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-LongString"><a href="#module-LongString" class="anchor"></a><code><span><span class="keyword">module</span> <a href="LongString/index.html">LongString</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-edit_distance"><a href="#val-edit_distance" class="anchor"></a><code><span><span class="keyword">val</span> edit_distance : <span>string <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int <span class="arrow">-></span></span> <span>int option</span></span></code></div><div class="spec-doc"><p><code>edit_distance a b cutoff</code> computes the edit distance between strings <code>a</code> and <code>b</code>. To help efficiency, it uses a cutoff: if the distance <code>d</code> is smaller than <code>cutoff</code>, it returns <code>Some d</code>, else <code>None</code>.</p><p>The distance algorithm currently used is Damerau-Levenshtein: it computes the number of insertion, deletion, substitution of letters, or swapping of adjacent letters to go from one word to the other. The particular algorithm may change in the future.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-spellcheck"><a href="#val-spellcheck" class="anchor"></a><code><span><span class="keyword">val</span> spellcheck : <span><span>string list</span> <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p><code>spellcheck env name</code> takes a list of names <code>env</code> that exist in the current environment and an erroneous <code>name</code>, and returns a list of suggestions taken from <code>env</code>, that are close enough to <code>name</code> that it may be a typo for one of them.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-did_you_mean"><a href="#val-did_you_mean" class="anchor"></a><code><span><span class="keyword">val</span> did_you_mean : <span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><span>(<span>unit <span class="arrow">-></span></span> <span>string list</span>)</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>did_you_mean ppf get_choices</code> hints that the user may have meant one of the option returned by calling <code>get_choices</code>. It does nothing if the returned list is empty.</p><p>The <code>unit -> ...</code> thunking is meant to delay any potentially-slow computation (typically computing edit-distance with many things from the current environment) to when the hint message is to be printed. You should print an understandable error message before calling <code>did_you_mean</code>, so that users get a clear notification of the failure even if producing the hint is slow.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-cut_at"><a href="#val-cut_at" class="anchor"></a><code><span><span class="keyword">val</span> cut_at : <span>string <span class="arrow">-></span></span> <span>char <span class="arrow">-></span></span> string * string</span></code></div><div class="spec-doc"><p><code>String.cut_at s c</code> returns a pair containing the sub-string before the first occurrence of <code>c</code> in <code>s</code>, and the sub-string after the first occurrence of <code>c</code> in <code>s</code>. <code>let (before, after) = String.cut_at s c in
|
||
before ^ String.make 1 c ^ after</code> is the identity if <code>s</code> contains <code>c</code>.</p><p>Raise <code>Not_found</code> if the character does not appear in the string</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 4.01</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ordinal_suffix"><a href="#val-ordinal_suffix" class="anchor"></a><code><span><span class="keyword">val</span> ordinal_suffix : <span>int <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>ordinal_suffix n</code> is the appropriate suffix to append to the numeral <code>n</code> as an ordinal number: <code>1</code> -> <code>"st"</code>, <code>2</code> -> <code>"nd"</code>, <code>3</code> -> <code>"rd"</code>, <code>4</code> -> <code>"th"</code>, and so on. Handles larger numbers (e.g., <code>42</code> -> <code>"nd"</code>) and the numbers 11--13 (which all get <code>"th"</code>) correctly.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Color"><a href="#module-Color" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Color/index.html">Color</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-Error_style"><a href="#module-Error_style" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Error_style/index.html">Error_style</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-normalise_eol"><a href="#val-normalise_eol" class="anchor"></a><code><span><span class="keyword">val</span> normalise_eol : <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>normalise_eol s</code> returns a fresh copy of <code>s</code> with any '\r' characters removed. Intended for pre-processing text which will subsequently be printed on a channel which performs EOL transformations (i.e. Windows)</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-delete_eol_spaces"><a href="#val-delete_eol_spaces" class="anchor"></a><code><span><span class="keyword">val</span> delete_eol_spaces : <span>string <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>delete_eol_spaces s</code> returns a fresh copy of <code>s</code> with any end of line spaces removed. Intended to normalize the output of the toplevel for tests.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_two_columns"><a href="#val-pp_two_columns" class="anchor"></a><code><span><span class="keyword">val</span> pp_two_columns :
|
||
<span>?sep:string <span class="arrow">-></span></span>
|
||
<span>?max_lines:int <span class="arrow">-></span></span>
|
||
<span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(string * string)</span> list</span> <span class="arrow">-></span></span>
|
||
unit</span></code></div><div class="spec-doc"><p><code>pp_two_columns ?sep ?max_lines ppf l</code> prints the lines in <code>l</code> as two columns separated by <code>sep</code> ("|" by default). <code>max_lines</code> can be used to indicate a maximum number of lines to print -- an ellipsis gets inserted at the middle if the input has too many lines.</p><p>Example:</p><pre>pp_two_columns ~max_lines:3 Format.std_formatter [
|
||
"abc", "hello";
|
||
"def", "zzz";
|
||
"a" , "bllbl";
|
||
"bb" , "dddddd";
|
||
]</pre><p>prints</p><pre> abc | hello
|
||
...
|
||
bb | dddddd</pre></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-show_config_and_exit"><a href="#val-show_config_and_exit" class="anchor"></a><code><span><span class="keyword">val</span> show_config_and_exit : <span>unit <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>configuration variables</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-show_config_variable_and_exit"><a href="#val-show_config_variable_and_exit" class="anchor"></a><code><span><span class="keyword">val</span> show_config_variable_and_exit : <span>string <span class="arrow">-></span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_build_path_prefix_map"><a href="#val-get_build_path_prefix_map" class="anchor"></a><code><span><span class="keyword">val</span> get_build_path_prefix_map : <span>unit <span class="arrow">-></span></span> <span><a href="../Build_path_prefix_map/index.html#type-map">Build_path_prefix_map.map</a> option</span></span></code></div><div class="spec-doc"><p>Returns the map encoded in the <code>BUILD_PATH_PREFIX_MAP</code> environment variable.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-debug_prefix_map_flags"><a href="#val-debug_prefix_map_flags" class="anchor"></a><code><span><span class="keyword">val</span> debug_prefix_map_flags : <span>unit <span class="arrow">-></span></span> <span>string list</span></span></code></div><div class="spec-doc"><p>Returns the list of <code>--debug-prefix-map</code> flags to be passed to the assembler, built from the <code>BUILD_PATH_PREFIX_MAP</code> environment variable.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-print_if"><a href="#val-print_if" class="anchor"></a><code><span><span class="keyword">val</span> print_if :
|
||
<span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span>bool <a href="../Stdlib/index.html#type-ref">ref</a></span> <span class="arrow">-></span></span>
|
||
<span><span>(<span><a href="../Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span><span class="type-var">'a</span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>print_if ppf flag fmt x</code> prints <code>x</code> with <code>fmt</code> on <code>ppf</code> if <code>b</code> is true.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-filepath"><a href="#type-filepath" class="anchor"></a><code><span><span class="keyword">type</span> filepath</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-modname"><a href="#type-modname" class="anchor"></a><code><span><span class="keyword">type</span> modname</span><span> = string</span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-crcs"><a href="#type-crcs" class="anchor"></a><code><span><span class="keyword">type</span> crcs</span><span> = <span><span>(<a href="#type-modname">modname</a> * <span><a href="../Stdlib/Digest/index.html#type-t">Stdlib.Digest.t</a> option</span>)</span> list</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-alerts"><a href="#type-alerts" class="anchor"></a><code><span><span class="keyword">type</span> alerts</span><span> = <span>string <a href="Stdlib/String/Map/index.html#type-t">Stdlib.String.Map.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Magic_number"><a href="#module-Magic_number" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Magic_number/index.html">Magic_number</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>a typical magic number is "Caml1999I011"; it is formed of an alphanumeric prefix, here Caml1990I, followed by a version, here 011. The prefix identifies the kind of the versioned data: here the I indicates that it is the magic number for .cmi files.</p></div></div></div></body></html> |