Changes between Version 4 and Version 5 of FreezeThawTasklist

03/24/10 22:22:32 (4 years ago)

update to reflect current status


  • FreezeThawTasklist

    v4 v5  
    1 With Parrot 2.0, we deprecated much of the current freeze/thaw system in order to replace the current system with a more pluggable one. 
     1With Parrot 2.0, we deprecated much of the current freeze/thaw system in order to replace the old system with a more pluggable, PMC-based one. Using PMCs to do freeze/thaw gives a couple opportunities. 
    3 == Done == 
    4  * Replace visit_info with  PMCs (named ImageIO) which: 
    5     * satisfy the interface visit_info provides PMCs being frozen/thawed. 
    6     * provide an interface (preferably vtable) for src/pmc_freeze.c to use. 
     3== Potential Improvements == 
     4 * make freeze/thaw aware of surrounding packfile to avoid generating useless headers. 
     5 * make freeze/thaw aware of surrounding packfile in order to use strings from the constant table 
     6 * create a deep cloning visitor 
     7 * create a text format serializer/deserializer 
    8 == The Plan == 
    9  * Convert src/pmc_freeze.c into a driver around these PMCs. All encoding/decoding logic should be in the PMCs. If possible make this driver implementable in PIR, to make explanations easier to end users and allow for creating clones of the driver with slight modifications from PIR. 
    10  * Create alternate reader/writer/visitor PMCs to eg: provide a simple text representation (which might allow PASM to contain all information in PBC); provide a size accumulator (TT #362) 
    12 == Longer Term == 
    13  * Add bytecode management to the freeze/thaw PMC interface somehow (TT #1359) 
    14  * Eliminate freeze, thaw, and other vtable interfaces in preference of a generic visit vtable, which changes behaviour based on flags (eg: mark becomes: visit pushing PMCs and strings, no order information required; thaw becomes: visit shifting ints, strings, and nums, ordering information required) 
     9== Remaining Short-commings == 
     10 * Parrot_visit_loop_{visit,thawfinish} should use iterator interface (get_bool, shift_pmc) in stead of array interface (elements, get_pmc_keyed_int) 
     11 * freeze/thaw and sub's (and similar objects) are still shaky. Sane handling of bytecode is yet to be achieved.