1CamlinternalOO(3) OCaml library CamlinternalOO(3)
2
3
4
6 CamlinternalOO - Run-time support for objects and classes.
7
9 Module CamlinternalOO
10
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
331OCamldoc 2019-02-02 CamlinternalOO(3)