<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Arg" rel="Chapter" href="Arg.html"> <link title="Arith_status" rel="Chapter" href="Arith_status.html"> <link title="Array" rel="Chapter" href="Array.html"> <link title="ArrayLabels" rel="Chapter" href="ArrayLabels.html"> <link title="Big_int" rel="Chapter" href="Big_int.html"> <link title="Bigarray" rel="Chapter" href="Bigarray.html"> <link title="Buffer" rel="Chapter" href="Buffer.html"> <link title="Callback" rel="Chapter" href="Callback.html"> <link title="CamlinternalLazy" rel="Chapter" href="CamlinternalLazy.html"> <link title="CamlinternalMod" rel="Chapter" href="CamlinternalMod.html"> <link title="CamlinternalOO" rel="Chapter" href="CamlinternalOO.html"> <link title="Char" rel="Chapter" href="Char.html"> <link title="Complex" rel="Chapter" href="Complex.html"> <link title="Condition" rel="Chapter" href="Condition.html"> <link title="Digest" rel="Chapter" href="Digest.html"> <link title="Dynlink" rel="Chapter" href="Dynlink.html"> <link title="Event" rel="Chapter" href="Event.html"> <link title="Filename" rel="Chapter" href="Filename.html"> <link title="Format" rel="Chapter" href="Format.html"> <link title="Gc" rel="Chapter" href="Gc.html"> <link title="Genlex" rel="Chapter" href="Genlex.html"> <link title="Graphics" rel="Chapter" href="Graphics.html"> <link title="GraphicsX11" rel="Chapter" href="GraphicsX11.html"> <link title="Hashtbl" rel="Chapter" href="Hashtbl.html"> <link title="Int32" rel="Chapter" href="Int32.html"> <link title="Int64" rel="Chapter" href="Int64.html"> <link title="Lazy" rel="Chapter" href="Lazy.html"> <link title="Lexing" rel="Chapter" href="Lexing.html"> <link title="List" rel="Chapter" href="List.html"> <link title="ListLabels" rel="Chapter" href="ListLabels.html"> <link title="Map" rel="Chapter" href="Map.html"> <link title="Marshal" rel="Chapter" href="Marshal.html"> <link title="MoreLabels" rel="Chapter" href="MoreLabels.html"> <link title="Mutex" rel="Chapter" href="Mutex.html"> <link title="Nativeint" rel="Chapter" href="Nativeint.html"> <link title="Num" rel="Chapter" href="Num.html"> <link title="Obj" rel="Chapter" href="Obj.html"> <link title="Oo" rel="Chapter" href="Oo.html"> <link title="Parsing" rel="Chapter" href="Parsing.html"> <link title="Pervasives" rel="Chapter" href="Pervasives.html"> <link title="Printexc" rel="Chapter" href="Printexc.html"> <link title="Printf" rel="Chapter" href="Printf.html"> <link title="Queue" rel="Chapter" href="Queue.html"> <link title="Random" rel="Chapter" href="Random.html"> <link title="Ratio" rel="Chapter" href="Ratio.html"> <link title="Scanf" rel="Chapter" href="Scanf.html"> <link title="Set" rel="Chapter" href="Set.html"> <link title="Sort" rel="Chapter" href="Sort.html"> <link title="Stack" rel="Chapter" href="Stack.html"> <link title="StdLabels" rel="Chapter" href="StdLabels.html"> <link title="Str" rel="Chapter" href="Str.html"> <link title="Stream" rel="Chapter" href="Stream.html"> <link title="String" rel="Chapter" href="String.html"> <link title="StringLabels" rel="Chapter" href="StringLabels.html"> <link title="Sys" rel="Chapter" href="Sys.html"> <link title="Thread" rel="Chapter" href="Thread.html"> <link title="ThreadUnix" rel="Chapter" href="ThreadUnix.html"> <link title="Tk" rel="Chapter" href="Tk.html"> <link title="Unix" rel="Chapter" href="Unix.html"> <link title="UnixLabels" rel="Chapter" href="UnixLabels.html"> <link title="Weak" rel="Chapter" href="Weak.html"><title>CamlinternalOO</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">type</span> tag<br> <span class="keyword">type</span> label<br> <span class="keyword">type</span> table<br> <span class="keyword">type</span> meth<br> <span class="keyword">type</span> t<br> <span class="keyword">type</span> obj<br> <span class="keyword">type</span> closure<br> <span class="keyword">val</span> public_method_label : string <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.tag<br> <span class="keyword">val</span> new_method : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label<br> <span class="keyword">val</span> new_variable : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> string <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> new_methods_variables :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span><br> string array <span class="keywordsign">-></span> string array <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label array<br> <span class="keyword">val</span> get_variable : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> string <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> get_variables : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> string array <span class="keywordsign">-></span> int array<br> <span class="keyword">val</span> get_method_label :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label<br> <span class="keyword">val</span> get_method_labels :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> string array <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label array<br> <span class="keyword">val</span> get_method :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.meth<br> <span class="keyword">val</span> set_method :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.label <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.meth <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> set_methods :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> narrow :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span><br> string array <span class="keywordsign">-></span> string array <span class="keywordsign">-></span> string array <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> widen : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> add_initializer :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> (<span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> dummy_table : <span class="constructor">CamlinternalOO</span>.table<br> <span class="keyword">val</span> create_table : string array <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.table<br> <span class="keyword">val</span> init_class : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> inherits :<br> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span><br> string array <span class="keywordsign">-></span><br> string array <span class="keywordsign">-></span><br> string array <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.t *<br> (<span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">Obj</span>.t) *<br> <span class="constructor">CamlinternalOO</span>.t * <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> bool <span class="keywordsign">-></span> <span class="constructor">Obj</span>.t array<br> <span class="keyword">val</span> make_class :<br> string array <span class="keywordsign">-></span><br> (<span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">Obj</span>.t <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.t * (<span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">Obj</span>.t <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) *<br> (<span class="constructor">Obj</span>.t <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) * <span class="constructor">Obj</span>.t<br> <span class="keyword">type</span> init_table<br> <span class="keyword">val</span> make_class_store :<br> string array <span class="keywordsign">-></span><br> (<span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.init_table <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> dummy_class :<br> string * int * int <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.t * (<span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">Obj</span>.t <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) *<br> (<span class="constructor">Obj</span>.t <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t) * <span class="constructor">Obj</span>.t<br> <span class="keyword">val</span> copy : (< .. > <span class="keyword">as</span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> create_object : <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.obj<br> <span class="keyword">val</span> create_object_opt :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.obj<br> <span class="keyword">val</span> run_initializers : <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> run_initializers_opt :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.obj<br> <span class="keyword">val</span> create_object_and_run_initializers :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.table <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.obj<br> <span class="keyword">external</span> send :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.tag <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t = <span class="string">"%send"</span><br> <span class="keyword">external</span> sendcache :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.tag <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t<br> = <span class="string">"%sendcache"</span><br> <span class="keyword">external</span> sendself :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.label <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.t<br> = <span class="string">"%sendself"</span><br> <span class="keyword">external</span> get_public_method :<br> <span class="constructor">CamlinternalOO</span>.obj <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.tag <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.closure<br> = <span class="string">"caml_get_public_method"</span> <span class="string">"noalloc"</span><br> <span class="keyword">type</span> tables<br> <span class="keyword">val</span> lookup_tables :<br> <span class="constructor">CamlinternalOO</span>.tables <span class="keywordsign">-></span><br> <span class="constructor">CamlinternalOO</span>.closure array <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.tables<br> <span class="keyword">type</span> impl =<br> <span class="constructor">GetConst</span><br> <span class="keywordsign">|</span> <span class="constructor">GetVar</span><br> <span class="keywordsign">|</span> <span class="constructor">GetEnv</span><br> <span class="keywordsign">|</span> <span class="constructor">GetMeth</span><br> <span class="keywordsign">|</span> <span class="constructor">SetVar</span><br> <span class="keywordsign">|</span> <span class="constructor">AppConst</span><br> <span class="keywordsign">|</span> <span class="constructor">AppVar</span><br> <span class="keywordsign">|</span> <span class="constructor">AppEnv</span><br> <span class="keywordsign">|</span> <span class="constructor">AppMeth</span><br> <span class="keywordsign">|</span> <span class="constructor">AppConstConst</span><br> <span class="keywordsign">|</span> <span class="constructor">AppConstVar</span><br> <span class="keywordsign">|</span> <span class="constructor">AppConstEnv</span><br> <span class="keywordsign">|</span> <span class="constructor">AppConstMeth</span><br> <span class="keywordsign">|</span> <span class="constructor">AppVarConst</span><br> <span class="keywordsign">|</span> <span class="constructor">AppEnvConst</span><br> <span class="keywordsign">|</span> <span class="constructor">AppMethConst</span><br> <span class="keywordsign">|</span> <span class="constructor">MethAppConst</span><br> <span class="keywordsign">|</span> <span class="constructor">MethAppVar</span><br> <span class="keywordsign">|</span> <span class="constructor">MethAppEnv</span><br> <span class="keywordsign">|</span> <span class="constructor">MethAppMeth</span><br> <span class="keywordsign">|</span> <span class="constructor">SendConst</span><br> <span class="keywordsign">|</span> <span class="constructor">SendVar</span><br> <span class="keywordsign">|</span> <span class="constructor">SendEnv</span><br> <span class="keywordsign">|</span> <span class="constructor">SendMeth</span><br> <span class="keywordsign">|</span> <span class="constructor">Closure</span> <span class="keyword">of</span> <span class="constructor">CamlinternalOO</span>.closure<br> <span class="keyword">type</span> params = {<br> <span class="keyword">mutable</span> compact_table : bool;<br> <span class="keyword">mutable</span> copy_parent : bool;<br> <span class="keyword">mutable</span> clean_when_copying : bool;<br> <span class="keyword">mutable</span> retry_count : int;<br> <span class="keyword">mutable</span> bucket_small_size : int;<br> }<br> <span class="keyword">val</span> params : <span class="constructor">CamlinternalOO</span>.params<br> <span class="keyword">type</span> stats = { classes : int; methods : int; inst_vars : int; }<br> <span class="keyword">val</span> stats : unit <span class="keywordsign">-></span> <span class="constructor">CamlinternalOO</span>.stats<br> <span class="keyword">end</span></code></body></html>