Provided by: ocaml-nox_3.12.1-2ubuntu2_amd64 bug

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