module CamlinternalOO: sig
.. end
对象和类的运行时支持。此模块中的所有函数仅供系统使用,而非普通用户。
类
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
对象
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
表缓存
type
tables
val lookup_tables : tables ->
closure array -> tables
用于减少代码大小的内置函数
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(闭包) |
参数
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
统计信息
type
stats = {
|
classes(类) : int(整数) ; |
|
methods(方法) : int(整数) ; |
|
inst_vars(实例变量) : int(整数) ; |
}
val stats : unit -> stats