Commit 3abdd42
committed
Turn
This behave almost exactly as a T_OBJECT, the layout is entirely
compatible.
This aims to solve two problems.
First, it solves the problem of namspaced classes having
a single `shape_id`. Now each namespaced classext
has an object that can hold the namespace specific
shape.
Second, it open the door to later make class instance variable
writes atomics, hence be able to read class variables
without locking the VM.
In the future, in multi-ractor mode, we can do the write
on a copy of the `fields_obj` and then atomically swap it.
Considerations:
- Right now the `RClass` shape_id is always synchronized,
but with namespace we should likely mark classes that have
multiple namespace with a specific shape flag.rb_classext_t.fields into a T_IMEMO/class_fields1 parent 166ff18 commit 3abdd42
File tree
14 files changed
+436
-219
lines changed- ext/objspace
- internal
- yjit/src
- zjit/src
14 files changed
+436
-219
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
297 | 297 | | |
298 | 298 | | |
299 | 299 | | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
| 300 | + | |
| 301 | + | |
310 | 302 | | |
311 | 303 | | |
312 | 304 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8117 | 8117 | | |
8118 | 8118 | | |
8119 | 8119 | | |
| 8120 | + | |
8120 | 8121 | | |
8121 | 8122 | | |
8122 | 8123 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
| 318 | + | |
318 | 319 | | |
319 | 320 | | |
320 | 321 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
504 | 504 | | |
505 | 505 | | |
506 | 506 | | |
| 507 | + | |
507 | 508 | | |
508 | 509 | | |
509 | 510 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1201 | 1201 | | |
1202 | 1202 | | |
1203 | 1203 | | |
1204 | | - | |
1205 | 1204 | | |
1206 | 1205 | | |
1207 | 1206 | | |
| |||
1213 | 1212 | | |
1214 | 1213 | | |
1215 | 1214 | | |
1216 | | - | |
1217 | | - | |
1218 | | - | |
1219 | | - | |
1220 | | - | |
1221 | | - | |
1222 | 1215 | | |
1223 | 1216 | | |
1224 | 1217 | | |
| |||
1292 | 1285 | | |
1293 | 1286 | | |
1294 | 1287 | | |
1295 | | - | |
1296 | | - | |
1297 | 1288 | | |
1298 | 1289 | | |
1299 | 1290 | | |
| |||
2305 | 2296 | | |
2306 | 2297 | | |
2307 | 2298 | | |
2308 | | - | |
2309 | | - | |
2310 | | - | |
2311 | | - | |
2312 | | - | |
2313 | | - | |
2314 | | - | |
2315 | | - | |
2316 | | - | |
2317 | | - | |
2318 | | - | |
2319 | | - | |
2320 | 2299 | | |
2321 | 2300 | | |
2322 | 2301 | | |
| |||
2354 | 2333 | | |
2355 | 2334 | | |
2356 | 2335 | | |
2357 | | - | |
2358 | | - | |
2359 | | - | |
2360 | | - | |
2361 | | - | |
2362 | | - | |
2363 | | - | |
2364 | | - | |
2365 | | - | |
2366 | 2336 | | |
2367 | 2337 | | |
2368 | 2338 | | |
| |||
3135 | 3105 | | |
3136 | 3106 | | |
3137 | 3107 | | |
3138 | | - | |
3139 | | - | |
3140 | | - | |
3141 | | - | |
| 3108 | + | |
3142 | 3109 | | |
3143 | 3110 | | |
3144 | 3111 | | |
| |||
3218 | 3185 | | |
3219 | 3186 | | |
3220 | 3187 | | |
3221 | | - | |
3222 | | - | |
3223 | | - | |
3224 | | - | |
3225 | | - | |
3226 | | - | |
3227 | 3188 | | |
3228 | 3189 | | |
3229 | 3190 | | |
| |||
3849 | 3810 | | |
3850 | 3811 | | |
3851 | 3812 | | |
3852 | | - | |
3853 | 3813 | | |
3854 | 3814 | | |
3855 | 3815 | | |
| |||
3858 | 3818 | | |
3859 | 3819 | | |
3860 | 3820 | | |
3861 | | - | |
3862 | | - | |
3863 | | - | |
3864 | | - | |
3865 | | - | |
3866 | | - | |
3867 | | - | |
3868 | | - | |
3869 | | - | |
3870 | | - | |
| 3821 | + | |
3871 | 3822 | | |
3872 | 3823 | | |
3873 | 3824 | | |
| |||
4255 | 4206 | | |
4256 | 4207 | | |
4257 | 4208 | | |
4258 | | - | |
4259 | 4209 | | |
4260 | 4210 | | |
4261 | 4211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| 33 | + | |
32 | 34 | | |
33 | | - | |
34 | | - | |
35 | 35 | | |
| 36 | + | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| |||
109 | 110 | | |
110 | 111 | | |
111 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
112 | 169 | | |
113 | 170 | | |
114 | 171 | | |
| |||
155 | 212 | | |
156 | 213 | | |
157 | 214 | | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
158 | 223 | | |
159 | 224 | | |
160 | 225 | | |
| |||
420 | 485 | | |
421 | 486 | | |
422 | 487 | | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
423 | 509 | | |
424 | 510 | | |
425 | 511 | | |
| |||
513 | 599 | | |
514 | 600 | | |
515 | 601 | | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
516 | 613 | | |
517 | 614 | | |
518 | 615 | | |
| |||
576 | 673 | | |
577 | 674 | | |
578 | 675 | | |
| 676 | + | |
579 | 677 | | |
580 | 678 | | |
581 | 679 | | |
| |||
585 | 683 | | |
586 | 684 | | |
587 | 685 | | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
588 | 690 | | |
589 | 691 | | |
590 | 692 | | |
| |||
0 commit comments