NAME¶
CamlinternalOO - Run-time support for objects and classes.
Module¶
Module CamlinternalOO
Documentation¶
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.
=== Classes ===
type tag
type label
type table
type meth
type t
type obj
type closure
val public_method_label :
string -> tag
val new_method :
table -> label
val new_variable :
table -> string -> int
val new_methods_variables :
table -> string array ->
string array -> label array
val get_variable :
table -> string -> int
val get_variables :
table -> string array -> int array
val get_method_label :
table -> string -> label
val get_method_labels :
table -> string array -> label array
val get_method :
table -> label -> meth
val set_method :
table -> label -> meth -> unit
val set_methods :
table -> label array -> unit
val narrow :
table -> string array -> string array -> string
array -> unit
val widen :
table -> unit
val add_initializer :
table -> (obj -> unit) -> unit
val dummy_table :
table
val create_table :
string array -> table
val init_class :
table -> unit
val inherits :
table -> string array -> string
array -> string array -> t * (table -> obj -> Obj.t)
* t * obj -> bool -> Obj.t array
val make_class :
string array -> (table -> Obj.t -> t)
-> t * (table -> Obj.t -> t) * (Obj.t -> t) *
Obj.t
type init_table
val make_class_store :
string array -> (table -> t)
-> init_table -> unit
val dummy_class :
string * int * int -> t * (table ->
Obj.t -> t) * (Obj.t -> t) * Obj.t
=== 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 -> tag -> t
val sendcache :
obj -> tag -> t -> int -> t
val sendself :
obj -> label -> t
val get_public_method :
obj -> tag -> closure
=== Table cache ===
type tables
val lookup_tables :
tables -> closure array -> tables
=== Builtins to reduce code size ===
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 closure
=== 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 ;
methods :
int ;
inst_vars :
int ;
}
val stats :
unit -> stats