1CamlinternalOO(3)                  OCamldoc                  CamlinternalOO(3)
2
3
4

NAME

6       CamlinternalOO - Run-time support for objects and classes.
7

Module

9       Module   CamlinternalOO
10

Documentation

12       Module CamlinternalOO
13        : sig end
14
15
16       Run-time support for objects and classes.  All functions in this module
17       are for system use only, not for the casual user.
18
19
20
21
22
23
24
25       === Classes ===
26
27
28       type tag
29
30
31
32
33       type label
34
35
36
37
38       type table
39
40
41
42
43       type meth
44
45
46
47
48       type t
49
50
51
52
53       type obj
54
55
56
57
58       type closure
59
60
61
62
63
64       val public_method_label : string -> tag
65
66
67
68
69       val new_method : table -> label
70
71
72
73
74       val new_variable : table -> string -> int
75
76
77
78
79       val new_methods_variables : table -> string array ->  string  array  ->
80       label array
81
82
83
84
85       val get_variable : table -> string -> int
86
87
88
89
90       val get_variables : table -> string array -> int array
91
92
93
94
95       val get_method_label : table -> string -> label
96
97
98
99
100       val get_method_labels : table -> string array -> label array
101
102
103
104
105       val get_method : table -> label -> meth
106
107
108
109
110       val set_method : table -> label -> meth -> unit
111
112
113
114
115       val set_methods : table -> label array -> unit
116
117
118
119
120       val  narrow  : table -> string array -> string array -> string array ->
121       unit
122
123
124
125
126       val widen : table -> unit
127
128
129
130
131       val add_initializer : table -> (obj -> unit) -> unit
132
133
134
135
136       val dummy_table : table
137
138
139
140
141       val create_table : string array -> table
142
143
144
145
146       val init_class : table -> unit
147
148
149
150
151       val inherits : table -> string array -> string array -> string array ->
152       t * (table -> obj -> Obj.t) * t * obj -> bool -> Obj.t array
153
154
155
156
157       val make_class : string array -> (table -> Obj.t -> t) -> t * (table ->
158       Obj.t -> t) * (Obj.t -> t) * Obj.t
159
160
161
162       type init_table
163
164
165
166
167
168       val make_class_store : string array -> (table -> t)  ->  init_table  ->
169       unit
170
171
172
173
174       val  dummy_class  :  string  * int * int -> t * (table -> Obj.t -> t) *
175       (Obj.t -> t) * Obj.t
176
177
178
179
180
181       === Objects ===
182
183
184       val copy : (< .. > as 'a) -> 'a
185
186
187
188
189       val create_object : table -> obj
190
191
192
193
194       val create_object_opt : obj -> table -> obj
195
196
197
198
199       val run_initializers : obj -> table -> unit
200
201
202
203
204       val run_initializers_opt : obj -> obj -> table -> obj
205
206
207
208
209       val create_object_and_run_initializers : obj -> table -> obj
210
211
212
213
214       val send : obj -> tag -> t
215
216
217
218
219       val sendcache : obj -> tag -> t -> int -> t
220
221
222
223
224       val sendself : obj -> label -> t
225
226
227
228
229       val get_public_method : obj -> tag -> closure
230
231
232
233
234
235       === Table cache ===
236
237
238       type tables
239
240
241
242
243
244       val lookup_tables : tables -> closure array -> tables
245
246
247
248
249
250       === Builtins to reduce code size ===
251
252
253       type impl =
254        | GetConst
255        | GetVar
256        | GetEnv
257        | GetMeth
258        | SetVar
259        | AppConst
260        | AppVar
261        | AppEnv
262        | AppMeth
263        | AppConstConst
264        | AppConstVar
265        | AppConstEnv
266        | AppConstMeth
267        | AppVarConst
268        | AppEnvConst
269        | AppMethConst
270        | MethAppConst
271        | MethAppVar
272        | MethAppEnv
273        | MethAppMeth
274        | SendConst
275        | SendVar
276        | SendEnv
277        | SendMeth
278        | Closure of closure
279
280
281
282
283
284
285       === Parameters ===
286
287
288       type params = {
289
290       mutable compact_table : bool ;
291
292       mutable copy_parent : bool ;
293
294       mutable clean_when_copying : bool ;
295
296       mutable retry_count : int ;
297
298       mutable bucket_small_size : int ;
299        }
300
301
302
303
304
305       val params : params
306
307
308
309
310
311       === Statistics ===
312
313
314       type stats = {
315        classes : int ;
316        methods : int ;
317        inst_vars : int ;
318        }
319
320
321
322
323
324       val stats : unit -> stats
325
326
327
328
329
330
3312018-04-14                          source:                  CamlinternalOO(3)
Impressum