Scroll to navigation

CamlinternalOO(3o) OCaml library CamlinternalOO(3o)

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
 
 
 
2012-06-26 OCamldoc