Module CamlinternalOO


module CamlinternalOO: sig  end
Run-time support for objects and classes. All functions in this module are for system use only, not for the casual user.



Methods


type label 
val new_method : string -> label
val public_method_label : string -> label


Classes


type table 
type meth 
type t 
type obj 
val new_variable : table -> string -> int
val get_variable : table -> string -> int
val get_method_label : table -> string -> label
val get_method : table -> label -> meth
val set_method : table -> label -> meth -> unit
val narrow : table -> string list -> string list -> string list -> unit
val widen : table -> unit
val add_initializer : table -> (obj -> unit) -> unit
val dummy_table : table
val create_table : string list -> table
val init_class : table -> unit


Objects


val copy : (< .. > as 'a) -> 'a
val create_object : table -> obj
val create_object_opt : obj -> table -> obj
val run_initializers : obj -> table -> unit
val run_initializers_opt : obj ->
obj -> table -> obj
val create_object_and_run_initializers : obj -> table -> obj
val send : obj -> label -> t


Parameters



type params = {
   mutable compact_table : bool;
   mutable copy_parent : bool;
   mutable clean_when_copying : bool;
   mutable retry_count : int;
   mutable bucket_small_size : int;
}
val params : params


Statistics



type stats = {
   classes : int;
   labels : int;
   methods : int;
   inst_vars : int;
   buckets : int;
   distrib : int array;
   small_bucket_count : int;
   small_bucket_max : int;
}
val stats : unit -> stats
val show_buckets : unit -> unit