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_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_labels : table -> string array -> label array
val narrow : table -> string array -> string array -> string array -> unit
val widen : table -> unit
val add_initializer : table -> (obj -> unit) -> unit
val create_table : string array -> table
val init_class : table -> unit
type init_table
Objects
val copy : (< .. > as 'a) -> 'a
val run_initializers : obj -> table -> unit
val create_object_and_run_initializers : obj -> table -> obj
val sendcache : obj ->
tag -> t -> int -> t
Table cache
type 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; |
}
Statistics
type stats = {
|
classes : int; |
|
methods : int; |
|
inst_vars : int; |
}
val stats : unit -> stats