jon.recoil.org

Module CamlinternalOOSource

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

Classes

Sourcetype tag
Sourcetype label
Sourcetype table
Sourcetype meth
Sourcetype t
Sourcetype obj
Sourcetype closure
Sourceval public_method_label : string -> tag @@ portable
Sourceval new_method : table -> label @@ portable
Sourceval new_variable : table -> string -> int @@ portable
Sourceval new_methods_variables : table -> string array -> string array -> label array @@ portable
Sourceval get_variable : table -> string -> int @@ portable
Sourceval get_variables : table -> string array -> int array @@ portable
Sourceval get_method_label : table -> string -> label @@ portable
Sourceval get_method_labels : table -> string array -> label array @@ portable
Sourceval get_method : table -> label -> meth @@ portable
Sourceval set_method : table -> label -> meth -> unit @@ portable
Sourceval set_methods : table -> label array -> unit @@ portable
Sourceval narrow : table -> string array -> string array -> string array -> unit @@ portable
Sourceval widen : table -> unit @@ portable
Sourceval add_initializer : table -> (obj -> unit) -> unit @@ portable
Sourceval dummy_table : table
Sourceval create_table : string array -> table @@ portable
Sourceval init_class : table -> unit @@ portable
Sourceval inherits : table -> string array -> string array -> string array -> (t * (table -> obj -> Obj.t) * t * obj) -> bool -> Obj.t array @@ portable
Sourceval make_class : string array -> (table -> Obj.t -> t) -> t * (table -> Obj.t -> t) * (Obj.t -> t) * Obj.t @@ portable
Sourcetype init_table
Sourceval make_class_store : string array -> (table -> t) -> init_table -> unit @@ portable
Sourceval dummy_class : (string * int * int) -> t * (table -> Obj.t -> t) * (Obj.t -> t) * Obj.t @@ portable

Objects

Sourceval copy : (< .. > as 'a) -> 'a @@ portable
Sourceval create_object : table -> obj @@ portable
Sourceval create_object_opt : obj -> table -> obj @@ portable
Sourceval run_initializers : obj -> table -> unit @@ portable
Sourceval run_initializers_opt : obj -> obj -> table -> obj @@ portable
Sourceval create_object_and_run_initializers : obj -> table -> obj @@ portable
Sourceval send : obj -> tag -> t @@ portable
Sourceval sendcache : obj -> tag -> t -> int -> t @@ portable
Sourceval sendself : obj -> label -> t @@ portable
Sourceval get_public_method : obj -> tag -> closure @@ portable

Table cache

Sourcetype tables
Sourceval lookup_tables : tables -> closure array -> tables @@ portable

Builtins to reduce code size

Sourcetype 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

Sourcetype 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;
}
Sourceval params : params

Statistics

Sourcetype stats = {
  1. classes : int;
  2. methods : int;
  3. inst_vars : int;
}
Sourceval stats : unit -> stats @@ portable