Changes between Version 2 and Version 3 of MakeEveryPMCAnObject

Show
Ignore:
Timestamp:
10/28/09 18:24:34 (5 years ago)
Author:
jessevdam
Comment:

add headings

Legend:

Unmodified
Added
Removed
Modified
  • MakeEveryPMCAnObject

    v2 v3  
    11This page is a direct copy/paste of proposal of jesse van dam from TT #1020. 
    22 
    3 ---- 
     3 
     4== Comments == 
     5 
    46The status as it is on 28 okt 2009. See branch tt_1020 for more details. [[BR]] 
    57(broken at the moment will be fixed tomorrow I hope,small svn problem) [[BR]] 
     
    810Any comments are welcome. [[BR]] 
    911[[BR]] 
     12 
     13 
     14== All pmc become an object and attribute indexing system == 
     15 
    1016The functionality in object.pmc will move to default.pmc. With this action everything will 
    1117become an object. (default.pmc will get renamed back to object.pmc). [[BR]] 
     
    4753See code oo.c "get_attrib_type_from_desc", "cache_class_attribs","build_attrib_index" for extra detail. [[BR]] 
    4854[[BR]] 
     55 
     56== Core pmcs with fully defined class definition == 
     57 
    4958All core pmcs get a full describing pmcclass object as a  
    5059pir created class does have, instead of the vtable struct information. See the code in lib/Parrot/Pmc2c.[[BR]] 
     
    8493attributes. Which can be one of the following items "String","Void*","Integer","Float","PMC". [[BR]] 
    8594[[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 
     98Since all pmc will become an object, there will be a field pointing to the pmcclass object. 
    8799The pmcclass object will contain the full describtion of the pmc/object.  
    88100The pointer to the vtable struct will get removed since all information is stored in the 
     
    97109The pmc will have no more pointer to the vtable struct, all needed information is stored in the pmcclass object. [[BR]] 
    98110[[BR]] 
     111 
     112== Class description in separate gc pool, no deletion during runtime == 
     113 
    99114Because a pmcclass object, which describes a class has got a more central role and the information is used 
    100115for the removal of an object, are they stored in a seperate gc small object arena. Class object will 
     
    105120which describes the class itself will get removed as the last one. See code src/gc/*.c. [[BR]] 
    106121[[BR]] 
     122 
     123== Get/set attribute == 
     124 
    107125The "get_attr_str","get_attr_keyed","set_attr_str","set_attr_keyed" are the function which are 
    108126used by pir code to access the attributes. These function do lookup via a hash, as it was before 
     
    132150}}} 
    133151 
     152== Work done == 
     153 
    134154The following work has already been done. [[BR]] 
    135155[[BR]] 
     
    148168--The mark,clone,thaw,freeze,visit and finishthaw has still to be done. [[BR]] 
    149169[[BR]] 
    150 Work to do and thing not yet build[[BR]] 
    151 [[BR]] 
     170 
     171== Work still to done/planned == 
     172 
    152173This is the work that has still to be done, to complete this change. [[BR]] 
    153174[[BR]] 
     
    194215-fixup the documentation [[BR]] 
    195216[[BR]] 
    196 Discussion on Performance [[BR]] 
     217 
     218== Discussion on Performance == 
     219 
    197220Take in mind that the above described int_subclass_test test is not working at the moment and fixing that is going to cost 
    198221some performance.[[BR]]