|Version 1 (modified by plobsing, 5 years ago)|
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.
- Replace visit_info with PMCs (tentatively named ImageIOFreeze and ImageIOThaw) which:
- satisfy the interface visit_info provides PMCs being frozen/thawed.
- provide an interface (preferably vtable) for src/pmc_freeze.c to use.
- Convert src/pmc_freeze.c into a driver around these PMCs. All encoding/decoding logic should be in the PMCs
- 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)
- Add bytecode management to the freeze/thaw PMC interface somehow (TT #1359)
- 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)