Creating a ParrotInterpreter is Too Expensive

chromatic chromatic at wgz.org
Wed May 6 19:19:13 UTC 2009


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?

-- c


More information about the parrot-dev mailing list