Front page | perl.perl6.internals |
Postings from April 2006
Variable-length PMC - level of need
Thread Previous
|
Thread Next
From:
Chip Salzenberg
Date:
April 16, 2006 16:35
Subject:
Variable-length PMC - level of need
Message ID:
20060416233441.GF5099@tytlal.topaz.cx
On Thu, Apr 13, 2006 at 01:55:28AM +0200, Leopold Toetsch wrote:
> On Apr 11, 2006, at 19:03, Chip Salzenberg wrote:
> >2. "Reference Model" for value objects
> > In Parrot, this mostly amounts to unique read-only PMCs.
> > We'll have the read-only part, but the "unique" part, probably not.
>
> Can I/we read this as: "morphing for Parrot core PMCs is history"? - Or
> in other words: differently sized PMCs (with a common (PObj) header) is
> the way to go?
Heh. When I want to say that, I think I know how to be clear. :-)
But on the subject of PMC restructuring:
* Your description of the status quo is that every access to the class-
specific data in a PMC, e.g. to the array elements of a PMC array,
require three indirections: One to the PMC, one to the PMC_EXT, and then
one more to the user-defined data.
But: I see extensive use of PMC_(struct|pmc|int|num|str)_val() in *.pmc.
So triple indirection is hardly universal. Granted it is necessary for
some cases, but the situation isn't as unliveable as I understood you to
say earlier.
+ BTW, I don't see any use of PObj_buf(start|len) in *.pmc, and I find
this odd. Surely there must be PMCs that would find it helpful to
have both a pointer and a length without additional indirections...?
* A consequence of variable-length PMCs would be a merging of PMC_EXT into
PMC.
Why wait for variable-length PMCs to get rid of PMC_EXT? Doing so now
would eliminate an indirection and a pointer, which should help according
to your theory.
I'm told that PMC_EXT was introduced to help cache line behavior, but if
I read the tea leaves^W^Wsource code correctly, sizeof(PMC) is right now
five words on a 32-bit machine, an odd choice -- it should be possible to
hit eight words instead, which ought to be cache-friendlier.
--
Chip Salzenberg <chip@pobox.com>
Thread Previous
|
Thread Next