| 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. |
| 2 | |
| 3 | == The Plan == |
| 4 | * Replace visit_info with PMCs (tentatively named ImageIOFreeze and ImageIOThaw) 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. |
| 7 | * Convert src/pmc_freeze.c into a driver around these PMCs. All encoding/decoding logic should be in the PMCs |
| 8 | * 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) |
| 9 | |
| 10 | == Longer Term == |
| 11 | * Add bytecode management to the freeze/thaw PMC interface somehow (TT #1359) |
| 12 | * 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) |
| 13 | |