Deprecations for 3.0

Luben Karavelov karavelov at spnet.net
Sat Sep 18 21:41:15 UTC 2010


On Sat, 18 Sep 2010 19:09:26 +0200, Nick Wellnhofer
<wellnhofer at aevum.de> wrote:
> 
> So you propose to replace every vtable function that does an
> assignment to a PMC or STRING with a second version?
> 

Yes, that's the idea. For generational GC we replace original 
vtable with the modified vtable  when we move an object from 
new to old generation. In the new vtable we install trampoline
functions only on vtable slots that could change a pointer (PMC
or STRING) that mark the object as dirty then it passes control
to the original function.

Everything plobsing said about downsides of this approach is 
true: 

- we will mark as dirty all modified object in the old 
generation, not only those that install pointer to new 
generation objects - so the dirty object list will be 
not so precise.

- there are places (not in PMCs) that manually change PMC 
attributes, not through vtable calls.

It's an option to consider


-- 
Luben Karavelov



More information about the parrot-dev mailing list