package batteries

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Run-time support for objects and classes. All functions in this module are for system use only, not for the casual user.

@documents CamlinternalOO

Classes

Internal representation of the vtable, i.e. the table of virtual methods.

Internal representation of the vtable, i.e. the table of virtual methods.

Internal representation of an object.

type closure = CamlinternalOO.closure

Internal representation of an object.

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 =
  1. | GetConst
  2. | GetVar
  3. | GetEnv
  4. | GetMeth
  5. | SetVar
  6. | AppConst
  7. | AppVar
  8. | AppEnv
  9. | AppMeth
  10. | AppConstConst
  11. | AppConstVar
  12. | AppConstEnv
  13. | AppConstMeth
  14. | AppVarConst
  15. | AppEnvConst
  16. | AppMethConst
  17. | MethAppConst
  18. | MethAppVar
  19. | MethAppEnv
  20. | MethAppMeth
  21. | SendConst
  22. | SendVar
  23. | SendEnv
  24. | SendMeth
  25. | Closure of closure
Parameters
type params = CamlinternalOO.params = {
  1. mutable compact_table : bool;
  2. mutable copy_parent : bool;
  3. mutable clean_when_copying : bool;
  4. mutable retry_count : int;
  5. mutable bucket_small_size : int;
}

currently disabled

val params : params
Statistics
type stats = CamlinternalOO.stats = {
  1. classes : int;
  2. methods : int;
  3. inst_vars : int;
}
val stats : unit -> stats