1CamlinternalOO(3)                OCaml library               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
26       === Classes ===
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 * int array *
153       closure array
154
155
156
157
158       val make_class : string array -> (table -> Obj.t -> t) -> t * (table ->
159       Obj.t -> t) * (Obj.t -> t) * Obj.t
160
161
162
163       type init_table
164
165
166
167
168
169       val  make_class_store  :  string array -> (table -> t) -> init_table ->
170       unit
171
172
173
174
175       val dummy_class : string * int * int -> t * (table ->  Obj.t  ->  t)  *
176       (Obj.t -> t) * Obj.t
177
178
179
180
181
182       === Objects ===
183
184
185       val copy : (< .. > as 'a) -> 'a
186
187
188
189
190       val create_object : table -> obj
191
192
193
194
195       val create_object_opt : obj -> table -> obj
196
197
198
199
200       val run_initializers : obj -> table -> unit
201
202
203
204
205       val run_initializers_opt : obj -> obj -> table -> obj
206
207
208
209
210       val create_object_and_run_initializers : obj -> table -> obj
211
212
213
214
215       val send : obj -> tag -> t
216
217
218
219
220       val sendcache : obj -> tag -> t -> int -> t
221
222
223
224
225       val sendself : obj -> label -> t
226
227
228
229
230       val get_public_method : obj -> tag -> closure
231
232
233
234
235
236       === Table cache ===
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       val get_const : t -> closure
254
255
256
257
258       val get_var : int -> closure
259
260
261
262
263       val get_env : int -> int -> closure
264
265
266
267
268       val get_meth : label -> closure
269
270
271
272
273       val set_var : int -> closure
274
275
276
277
278       val app_const : (t -> t) -> t -> closure
279
280
281
282
283       val app_var : (t -> t) -> int -> closure
284
285
286
287
288       val app_env : (t -> t) -> int -> int -> closure
289
290
291
292
293       val app_meth : (t -> t) -> label -> closure
294
295
296
297
298       val app_const_const : (t -> t -> t) -> t -> t -> closure
299
300
301
302
303       val app_const_var : (t -> t -> t) -> t -> int -> closure
304
305
306
307
308       val app_const_env : (t -> t -> t) -> t -> int -> int -> closure
309
310
311
312
313       val app_const_meth : (t -> t -> t) -> t -> label -> closure
314
315
316
317
318       val app_var_const : (t -> t -> t) -> int -> t -> closure
319
320
321
322
323       val app_env_const : (t -> t -> t) -> int -> int -> t -> closure
324
325
326
327
328       val app_meth_const : (t -> t -> t) -> label -> t -> closure
329
330
331
332
333       val meth_app_const : label -> t -> closure
334
335
336
337
338       val meth_app_var : label -> int -> closure
339
340
341
342
343       val meth_app_env : label -> int -> int -> closure
344
345
346
347
348       val meth_app_meth : label -> label -> closure
349
350
351
352
353       val send_const : tag -> obj -> int -> closure
354
355
356
357
358       val send_var : tag -> int -> int -> closure
359
360
361
362
363       val send_env : tag -> int -> int -> int -> closure
364
365
366
367
368       val send_meth : tag -> label -> int -> closure
369
370
371
372       type impl =
373        | GetConst
374        | GetVar
375        | GetEnv
376        | GetMeth
377        | SetVar
378        | AppConst
379        | AppVar
380        | AppEnv
381        | AppMeth
382        | AppConstConst
383        | AppConstVar
384        | AppConstEnv
385        | AppConstMeth
386        | AppVarConst
387        | AppEnvConst
388        | AppMethConst
389        | MethAppConst
390        | MethAppVar
391        | MethAppEnv
392        | MethAppMeth
393        | SendConst
394        | SendVar
395        | SendEnv
396        | SendMeth
397        | Closure of closure
398
399
400
401
402
403
404       === Parameters ===
405
406       type params = {
407
408       mutable compact_table : bool ;
409
410       mutable copy_parent : bool ;
411
412       mutable clean_when_copying : bool ;
413
414       mutable retry_count : int ;
415
416       mutable bucket_small_size : int ;
417        }
418
419
420
421
422
423       val params : params
424
425
426
427
428
429       === Statistics ===
430
431       type stats = {
432        classes : int ;
433        methods : int ;
434        inst_vars : int ;
435        }
436
437
438
439
440
441       val stats : unit -> stats
442
443
444
445
446
447
448OCamldoc                          2007-05-24                 CamlinternalOO(3)
Impressum