Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CamlinternalOO(3)		 OCaml library		     CamlinternalOO(3)

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

OCamldoc			  2017-04-30		     CamlinternalOO(3)

NAME | Module | Documentation

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CamlinternalOO&sektion=3o&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help