`sig
type tag
type label
type table
type meth
type t
type obj
type closure
val public_method_label : string -> CamlinternalOO.tag
val new_method : CamlinternalOO.table -> CamlinternalOO.label
val new_variable : CamlinternalOO.table -> string -> int
val new_methods_variables :
CamlinternalOO.table ->
string array -> string array -> CamlinternalOO.label array
val get_variable : CamlinternalOO.table -> string -> int
val get_variables : CamlinternalOO.table -> string array -> int array
val get_method_label :
CamlinternalOO.table -> string -> CamlinternalOO.label
val get_method_labels :
CamlinternalOO.table -> string array -> CamlinternalOO.label array
val get_method :
CamlinternalOO.table -> CamlinternalOO.label -> CamlinternalOO.meth
val set_method :
CamlinternalOO.table ->
CamlinternalOO.label -> CamlinternalOO.meth -> unit
val set_methods :
CamlinternalOO.table -> CamlinternalOO.label array -> unit
val narrow :
CamlinternalOO.table ->
string array -> string array -> string array -> unit
val widen : CamlinternalOO.table -> unit
val add_initializer :
CamlinternalOO.table -> (CamlinternalOO.obj -> unit) -> unit
val dummy_table : CamlinternalOO.table
val create_table : string array -> CamlinternalOO.table
val init_class : CamlinternalOO.table -> unit
val inherits :
CamlinternalOO.table ->
string array ->
string array ->
string array ->
CamlinternalOO.t *
(CamlinternalOO.table -> CamlinternalOO.obj -> Obj.t) *
CamlinternalOO.t * CamlinternalOO.obj -> bool -> Obj.t array
val make_class :
string array ->
(CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) ->
CamlinternalOO.t * (CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) *
(Obj.t -> CamlinternalOO.t) * Obj.t
type init_table
val make_class_store :
string array ->
(CamlinternalOO.table -> CamlinternalOO.t) ->
CamlinternalOO.init_table -> unit
val dummy_class :
string * int * int ->
CamlinternalOO.t * (CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) *
(Obj.t -> CamlinternalOO.t) * Obj.t
val copy : (< .. > as 'a) -> 'a
val create_object : CamlinternalOO.table -> CamlinternalOO.obj
val create_object_opt :
CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
val run_initializers : CamlinternalOO.obj -> CamlinternalOO.table -> unit
val run_initializers_opt :
CamlinternalOO.obj ->
CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
val create_object_and_run_initializers :
CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
external send :
CamlinternalOO.obj -> CamlinternalOO.tag -> CamlinternalOO.t = "%send"
external sendcache :
CamlinternalOO.obj ->
CamlinternalOO.tag -> CamlinternalOO.t -> int -> CamlinternalOO.t
= "%sendcache"
external sendself :
CamlinternalOO.obj -> CamlinternalOO.label -> CamlinternalOO.t
= "%sendself"
external get_public_method :
CamlinternalOO.obj -> CamlinternalOO.tag -> CamlinternalOO.closure
= "caml_get_public_method" "noalloc"
type tables
val lookup_tables :
CamlinternalOO.tables ->
CamlinternalOO.closure array -> CamlinternalOO.tables
type impl =
GetConst
| GetVar
| GetEnv
| GetMeth
| SetVar
| AppConst
| AppVar
| AppEnv
| AppMeth
| AppConstConst
| AppConstVar
| AppConstEnv
| AppConstMeth
| AppVarConst
| AppEnvConst
| AppMethConst
| MethAppConst
| MethAppVar
| MethAppEnv
| MethAppMeth
| SendConst
| SendVar
| SendEnv
| SendMeth
| Closure of CamlinternalOO.closure
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 : CamlinternalOO.params
type stats = { classes : int; methods : int; inst_vars : int; }
val stats : unit -> CamlinternalOO.stats
end`