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

Reply via email to