Module BatOo.Oo.Internal


module Internal: 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 = CamlinternalOO.tag 
type label = CamlinternalOO.label 
type table = CamlinternalOO.table 
Internal representation of the vtable, i.e. the table of virtual methods.
type meth = CamlinternalOO.meth 
type t = CamlinternalOO.t 
type obj = CamlinternalOO.obj 
Internal representation of an object.
type closure = CamlinternalOO.closure 
Internal representation of a method.
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 = CamlinternalOO.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 = CamlinternalOO.tables 
val lookup_tables : tables ->
closure array -> tables

Builtins to reduce code size

type impl = CamlinternalOO.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 = CamlinternalOO.params = {
   mutable compact_table : bool;
   mutable copy_parent : bool;
   mutable clean_when_copying : bool;
   mutable retry_count : int;
   mutable bucket_small_size : int;
}
currently disabled
val params : params

Statistics

type stats = CamlinternalOO.stats = {
   classes : int;
   methods : int;
   inst_vars : int;
}
val stats : unit -> stats