I have checked in the final changes for putting the ->data member of the PMC into the PMC_EXT structure.
This reduces the size of PerlScalars by another sizeof(void *).


- created a new ParrotIO class (only init and destroy yet)
- remove newinterp: use "new Px, .ParrotInterpreter" instead
- fixed a missing end in comp.t
- minor changes to make it run

This feature can be toggled in include/parrot/pobj.h
#define PMC_DATA_IN_EXT 1
(Its turned on currently)

Now we could create custom PMC_EXT structures depending on the class:
Now we have e.g. for an Array or Hash:
  pmc->pmc_ext->list   pmc->pmc_ext->hash

Better would be:
  pmc->pmc_ext_for_list or pmc->pmc_ext_for_hash

This would need (instead of the current pmc_ext_pool) a new unmanaged sized pool allocator, which should be quite simple by extending the current sized pool functions.

Comments welcome,
leo



Reply via email to