man-pages/man3/CamlinternalOO.3o.html
2021-03-31 01:06:50 +01:00

612 lines
6.5 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of CamlinternalOO</TITLE>
</HEAD><BODY>
<H1>CamlinternalOO</H1>
Section: OCaml library (3o)<BR>Updated: 2020-01-30<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
CamlinternalOO - Run-time support for objects and classes.
<A NAME="lbAC">&nbsp;</A>
<H2>Module</H2>
Module CamlinternalOO
<A NAME="lbAD">&nbsp;</A>
<H2>Documentation</H2>
<P>
Module
<B>CamlinternalOO</B>
<BR>&nbsp;:&nbsp;
<B>sig end</B>
<P>
<P>
Run-time support for objects and classes.
All functions in this module are for system use only, not for the
casual user.
<P>
<P>
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAE">&nbsp;</A>
<H3>Classes</H3>
<P>
<P>
<I>type tag </I>
<P>
<P>
<P>
<P>
<I>type label </I>
<P>
<P>
<P>
<P>
<I>type table </I>
<P>
<P>
<P>
<P>
<I>type meth </I>
<P>
<P>
<P>
<P>
<I>type t </I>
<P>
<P>
<P>
<P>
<I>type obj </I>
<P>
<P>
<P>
<P>
<I>type closure </I>
<P>
<P>
<P>
<P>
<P>
<I>val public_method_label </I>
:
<B>string -&gt; tag</B>
<P>
<P>
<P>
<P>
<I>val new_method </I>
:
<B>table -&gt; label</B>
<P>
<P>
<P>
<P>
<I>val new_variable </I>
:
<B>table -&gt; string -&gt; int</B>
<P>
<P>
<P>
<P>
<I>val new_methods_variables </I>
:
<B>table -&gt;</B>
<B>string array -&gt; string array -&gt; label array</B>
<P>
<P>
<P>
<P>
<I>val get_variable </I>
:
<B>table -&gt; string -&gt; int</B>
<P>
<P>
<P>
<P>
<I>val get_variables </I>
:
<B>table -&gt; string array -&gt; int array</B>
<P>
<P>
<P>
<P>
<I>val get_method_label </I>
:
<B>table -&gt; string -&gt; label</B>
<P>
<P>
<P>
<P>
<I>val get_method_labels </I>
:
<B>table -&gt; string array -&gt; label array</B>
<P>
<P>
<P>
<P>
<I>val get_method </I>
:
<B>table -&gt; label -&gt; meth</B>
<P>
<P>
<P>
<P>
<I>val set_method </I>
:
<B>table -&gt; label -&gt; meth -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val set_methods </I>
:
<B>table -&gt; label array -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val narrow </I>
:
<B>table -&gt; string array -&gt; string array -&gt; string array -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val widen </I>
:
<B>table -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val add_initializer </I>
:
<B>table -&gt; (obj -&gt; unit) -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val dummy_table </I>
:
<B>table</B>
<P>
<P>
<P>
<P>
<I>val create_table </I>
:
<B>string array -&gt; table</B>
<P>
<P>
<P>
<P>
<I>val init_class </I>
:
<B>table -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val inherits </I>
:
<B>table -&gt;</B>
<B>string array -&gt;</B>
<B>string array -&gt;</B>
<B>string array -&gt;</B>
<B>t *</B>
<B>(table -&gt; obj -&gt; Obj.t) *</B>
<B>t * obj -&gt; bool -&gt; Obj.t array</B>
<P>
<P>
<P>
<P>
<I>val make_class </I>
:
<B>string array -&gt;</B>
<B>(table -&gt; Obj.t -&gt; t) -&gt;</B>
<B>t *</B>
<B>(table -&gt; Obj.t -&gt; t) *</B>
<B>(Obj.t -&gt; t) * Obj.t</B>
<P>
<P>
<P>
<I>type init_table </I>
<P>
<P>
<P>
<P>
<P>
<I>val make_class_store </I>
:
<B>string array -&gt;</B>
<B>(table -&gt; t) -&gt;</B>
<B>init_table -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val dummy_class </I>
:
<B>string * int * int -&gt;</B>
<B>t *</B>
<B>(table -&gt; Obj.t -&gt; t) *</B>
<B>(Obj.t -&gt; t) * Obj.t</B>
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAF">&nbsp;</A>
<H3>Objects</H3>
<P>
<P>
<P>
<I>val copy </I>
:
<B>(&lt; .. &gt; as 'a) -&gt; 'a</B>
<P>
<P>
<P>
<P>
<I>val create_object </I>
:
<B>table -&gt; obj</B>
<P>
<P>
<P>
<P>
<I>val create_object_opt </I>
:
<B>obj -&gt; table -&gt; obj</B>
<P>
<P>
<P>
<P>
<I>val run_initializers </I>
:
<B>obj -&gt; table -&gt; unit</B>
<P>
<P>
<P>
<P>
<I>val run_initializers_opt </I>
:
<B>obj -&gt;</B>
<B>obj -&gt; table -&gt; obj</B>
<P>
<P>
<P>
<P>
<I>val create_object_and_run_initializers </I>
:
<B>obj -&gt; table -&gt; obj</B>
<P>
<P>
<P>
<P>
<I>val send </I>
:
<B>obj -&gt; tag -&gt; t</B>
<P>
<P>
<P>
<P>
<I>val sendcache </I>
:
<B>obj -&gt;</B>
<B>tag -&gt; t -&gt; int -&gt; t</B>
<P>
<P>
<P>
<P>
<I>val sendself </I>
:
<B>obj -&gt; label -&gt; t</B>
<P>
<P>
<P>
<P>
<I>val get_public_method </I>
:
<B>obj -&gt; tag -&gt; closure</B>
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAG">&nbsp;</A>
<H3>Table cache</H3>
<P>
<P>
<I>type tables </I>
<P>
<P>
<P>
<P>
<P>
<I>val lookup_tables </I>
:
<B>tables -&gt;</B>
<B>closure array -&gt; tables</B>
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAH">&nbsp;</A>
<H3>Builtins to reduce code size</H3>
<P>
<P>
<I>type impl </I>
=
<BR>&nbsp;|&nbsp;GetConst
<BR>&nbsp;|&nbsp;GetVar
<BR>&nbsp;|&nbsp;GetEnv
<BR>&nbsp;|&nbsp;GetMeth
<BR>&nbsp;|&nbsp;SetVar
<BR>&nbsp;|&nbsp;AppConst
<BR>&nbsp;|&nbsp;AppVar
<BR>&nbsp;|&nbsp;AppEnv
<BR>&nbsp;|&nbsp;AppMeth
<BR>&nbsp;|&nbsp;AppConstConst
<BR>&nbsp;|&nbsp;AppConstVar
<BR>&nbsp;|&nbsp;AppConstEnv
<BR>&nbsp;|&nbsp;AppConstMeth
<BR>&nbsp;|&nbsp;AppVarConst
<BR>&nbsp;|&nbsp;AppEnvConst
<BR>&nbsp;|&nbsp;AppMethConst
<BR>&nbsp;|&nbsp;MethAppConst
<BR>&nbsp;|&nbsp;MethAppVar
<BR>&nbsp;|&nbsp;MethAppEnv
<BR>&nbsp;|&nbsp;MethAppMeth
<BR>&nbsp;|&nbsp;SendConst
<BR>&nbsp;|&nbsp;SendVar
<BR>&nbsp;|&nbsp;SendEnv
<BR>&nbsp;|&nbsp;SendMeth
<BR>&nbsp;|&nbsp;Closure
<B>of </B>
<B>closure</B>
<BR>&nbsp;
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAI">&nbsp;</A>
<H3>Parameters</H3>
<P>
<P>
<I>type params </I>
= {
<P>
<B>mutable </B>
compact_table :
<B>bool</B>
;
<P>
<B>mutable </B>
copy_parent :
<B>bool</B>
;
<P>
<B>mutable </B>
clean_when_copying :
<B>bool</B>
;
<P>
<B>mutable </B>
retry_count :
<B>int</B>
;
<P>
<B>mutable </B>
bucket_small_size :
<B>int</B>
;
<BR>&nbsp;}
<P>
<P>
<P>
<P>
<P>
<I>val params </I>
:
<B>params</B>
<P>
<P>
<P>
<P>
<P>
<A NAME="lbAJ">&nbsp;</A>
<H3>Statistics</H3>
<P>
<P>
<I>type stats </I>
= {
<BR>&nbsp;classes&nbsp;:&nbsp;
<B>int</B>
;
<BR>&nbsp;methods&nbsp;:&nbsp;
<B>int</B>
;
<BR>&nbsp;inst_vars&nbsp;:&nbsp;
<B>int</B>
;
<BR>&nbsp;}
<P>
<P>
<P>
<P>
<P>
<I>val stats </I>
:
<B>unit -&gt; stats</B>
<P>
<P>
<P>
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="1"><A HREF="#lbAB">NAME</A><DD>
<DT id="2"><A HREF="#lbAC">Module</A><DD>
<DT id="3"><A HREF="#lbAD">Documentation</A><DD>
<DL>
<DT id="4"><A HREF="#lbAE">Classes</A><DD>
<DT id="5"><A HREF="#lbAF">Objects</A><DD>
<DT id="6"><A HREF="#lbAG">Table cache</A><DD>
<DT id="7"><A HREF="#lbAH">Builtins to reduce code size</A><DD>
<DT id="8"><A HREF="#lbAI">Parameters</A><DD>
<DT id="9"><A HREF="#lbAJ">Statistics</A><DD>
</DL>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:37 GMT, March 31, 2021
</BODY>
</HTML>