With 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.
Potential Improvements
- make freeze/thaw aware of surrounding packfile to avoid generating useless headers.
- make freeze/thaw aware of surrounding packfile in order to use strings from the constant table
- create a deep cloning visitor
- create a text format serializer/deserializer
Remaining Short-commings
- Parrot_visit_loop_{visit,thawfinish} should use iterator interface (get_bool, shift_pmc) in stead of array interface (elements, get_pmc_keyed_int)
- freeze/thaw and sub's (and similar objects) are still shaky. Sane handling of bytecode is yet to be achieved.