Hi,
some days ago near #parrot:
17:13 <particle> if you get a chance, allison has modified pdd17 (pmc). i'm
reviewing it, but i think you'd be a better judge of its implications on gc,
etc.
17:14 <leo> I'll have a look at it - thx
Well, xx days after, I had a very brief look at it:
- it's mostly a summary of current state
- some new good things (roles) are defined, which aren't yet in src/role/
- the old "bugs", which IMHO, a rigid PMC structure and morph are, are still
present:
...
IMPLEMENTATION
Internal structure
All PMCs have the form:
...
morph
void morph(INTERP, PMC* self, INTVAL type)
Turn the PMC into a PMC of type type. If the morphing can't be done
in any reasonable way -- for instance if an integer is
asked to turn into an Array -- then the PMC is first destroyed,
then recreated as an empty PMC of the new type.
This implies (for me), that whatever silly morph requests like above would be
issued, a PMC always has the needs of 'one size fits all'. This will preclude
any optimzations of creating smaller spezialised PMCs as well as it seems to
going the "PMC_data indirection hell" forever, with all the negative impacts
on internal code readability and visible performance.
I'm sorry if I've misunterstood this document,
leo