Changes between Version 2 and Version 3 of MakeEveryPMCAnObject
- Timestamp:
- 10/28/09 18:24:34 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MakeEveryPMCAnObject
v2 v3 1 1 This page is a direct copy/paste of proposal of jesse van dam from TT #1020. 2 2 3 ---- 3 4 == Comments == 5 4 6 The status as it is on 28 okt 2009. See branch tt_1020 for more details. [[BR]] 5 7 (broken at the moment will be fixed tomorrow I hope,small svn problem) [[BR]] … … 8 10 Any comments are welcome. [[BR]] 9 11 [[BR]] 12 13 14 == All pmc become an object and attribute indexing system == 15 10 16 The functionality in object.pmc will move to default.pmc. With this action everything will 11 17 become an object. (default.pmc will get renamed back to object.pmc). [[BR]] … … 47 53 See code oo.c "get_attrib_type_from_desc", "cache_class_attribs","build_attrib_index" for extra detail. [[BR]] 48 54 [[BR]] 55 56 == Core pmcs with fully defined class definition == 57 49 58 All core pmcs get a full describing pmcclass object as a 50 59 pir created class does have, instead of the vtable struct information. See the code in lib/Parrot/Pmc2c.[[BR]] … … 84 93 attributes. Which can be one of the following items "String","Void*","Integer","Float","PMC". [[BR]] 85 94 [[BR]] 86 Since all pmc will become an object, there is will be a field pointing to the pmcclass. 95 96 == Replace vtable ref by ref to class == 97 98 Since all pmc will become an object, there will be a field pointing to the pmcclass object. 87 99 The pmcclass object will contain the full describtion of the pmc/object. 88 100 The pointer to the vtable struct will get removed since all information is stored in the … … 97 109 The pmc will have no more pointer to the vtable struct, all needed information is stored in the pmcclass object. [[BR]] 98 110 [[BR]] 111 112 == Class description in separate gc pool, no deletion during runtime == 113 99 114 Because a pmcclass object, which describes a class has got a more central role and the information is used 100 115 for the removal of an object, are they stored in a seperate gc small object arena. Class object will … … 105 120 which describes the class itself will get removed as the last one. See code src/gc/*.c. [[BR]] 106 121 [[BR]] 122 123 == Get/set attribute == 124 107 125 The "get_attr_str","get_attr_keyed","set_attr_str","set_attr_keyed" are the function which are 108 126 used by pir code to access the attributes. These function do lookup via a hash, as it was before … … 132 150 }}} 133 151 152 == Work done == 153 134 154 The following work has already been done. [[BR]] 135 155 [[BR]] … … 148 168 --The mark,clone,thaw,freeze,visit and finishthaw has still to be done. [[BR]] 149 169 [[BR]] 150 Work to do and thing not yet build[[BR]] 151 [[BR]] 170 171 == Work still to done/planned == 172 152 173 This is the work that has still to be done, to complete this change. [[BR]] 153 174 [[BR]] … … 194 215 -fixup the documentation [[BR]] 195 216 [[BR]] 196 Discussion on Performance [[BR]] 217 218 == Discussion on Performance == 219 197 220 Take in mind that the above described int_subclass_test test is not working at the moment and fixing that is going to cost 198 221 some performance.[[BR]]