chromatic wrote:
ParrotInterpreter's init() entry calls create_interp(), which calls
make_interpreter(), which calls init_world_once().
init_world_once() ends up initializing all of the core PMCs *for every
ParrotInterpreter* created. This data is reasonably static; it sets up all of
the core PMC vtables as well as any MMD data.
Rebuilding this data for every ParrotInterpreter created slows down Rakudo.
As far as I can tell, we can share most of this data between interpreters.
Does anyone know any reason why that's not possible?
Many places that Rakudo uses this we could maybe replace it with uses of
interpinfo instead.
Is there a way to get the ParrotInterpreter PMC for the current
interpreter? Because that's what Rakudo wants. (So I expect Rakudo is
mis-using ParrotInterpreter...I didn't realize it was doing so much
stuff for sure.)
Jonathan
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev