On Sat, 18 Sep 2010 19:09:26 +0200, Nick Wellnhofer <[email protected]> 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 _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
