.TH "CamlinternalOO" 3o 2023-09-18 OCamldoc "OCaml library" .SH NAME CamlinternalOO \- Run-time support for objects and classes. .SH Module Module CamlinternalOO .SH Documentation .sp Module .BI "CamlinternalOO" : .B sig end .sp Run\-time support for objects and classes\&. All functions in this module are for system use only, not for the casual user\&. .sp .sp .sp .PP .SS Classes .PP .I type tag .sp .sp .I type label .sp .sp .I type table .sp .sp .I type meth .sp .sp .I type t .sp .sp .I type obj .sp .sp .I type closure .sp .sp .I val public_method_label : .B string -> tag .sp .sp .I val new_method : .B table -> label .sp .sp .I val new_variable : .B table -> string -> int .sp .sp .I val new_methods_variables : .B table -> .B string array -> string array -> label array .sp .sp .I val get_variable : .B table -> string -> int .sp .sp .I val get_variables : .B table -> string array -> int array .sp .sp .I val get_method_label : .B table -> string -> label .sp .sp .I val get_method_labels : .B table -> string array -> label array .sp .sp .I val get_method : .B table -> label -> meth .sp .sp .I val set_method : .B table -> label -> meth -> unit .sp .sp .I val set_methods : .B table -> label array -> unit .sp .sp .I val narrow : .B table -> string array -> string array -> string array -> unit .sp .sp .I val widen : .B table -> unit .sp .sp .I val add_initializer : .B table -> (obj -> unit) -> unit .sp .sp .I val dummy_table : .B table .sp .sp .I val create_table : .B string array -> table .sp .sp .I val init_class : .B table -> unit .sp .sp .I val inherits : .B table -> .B string array -> .B string array -> .B string array -> .B t * .B (table -> obj -> Obj.t) * .B t * obj -> bool -> Obj.t array .sp .sp .I val make_class : .B string array -> .B (table -> Obj.t -> t) -> .B t * .B (table -> Obj.t -> t) * .B (Obj.t -> t) * Obj.t .sp .sp .I type init_table .sp .sp .I val make_class_store : .B string array -> .B (table -> t) -> .B init_table -> unit .sp .sp .I val dummy_class : .B string * int * int -> .B t * .B (table -> Obj.t -> t) * .B (Obj.t -> t) * Obj.t .sp .sp .PP .SS Objects .PP .I val copy : .B (< .. > as 'a) -> 'a .sp .sp .I val create_object : .B table -> obj .sp .sp .I val create_object_opt : .B obj -> table -> obj .sp .sp .I val run_initializers : .B obj -> table -> unit .sp .sp .I val run_initializers_opt : .B obj -> .B obj -> table -> obj .sp .sp .I val create_object_and_run_initializers : .B obj -> table -> obj .sp .sp .I val send : .B obj -> tag -> t .sp .sp .I val sendcache : .B obj -> .B tag -> t -> int -> t .sp .sp .I val sendself : .B obj -> label -> t .sp .sp .I val get_public_method : .B obj -> tag -> closure .sp .sp .PP .SS Table cache .PP .I type tables .sp .sp .I val lookup_tables : .B tables -> .B closure array -> tables .sp .sp .PP .SS Builtins to reduce code size .PP .I 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 .B of .B closure .sp .sp .PP .SS Parameters .PP .I type params = { .B mutable compact_table : .B bool ; .B mutable copy_parent : .B bool ; .B mutable clean_when_copying : .B bool ; .B mutable retry_count : .B int ; .B mutable bucket_small_size : .B int ; } .sp .sp .I val params : .B params .sp .sp .PP .SS Statistics .PP .I type stats = { classes : .B int ; methods : .B int ; inst_vars : .B int ; } .sp .sp .I val stats : .B unit -> stats .sp .sp