> 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.
init_world_once calls init_world supposedly when appropiate. init_world says in his pod description: C<interp> should be the root interpreter created in C<Parrot_new(NULL)>. Adding this assertion: PARROT_ASSERT(interp->parent_interpreter == NULL); at the beginning of init_world, shows that the assumption is not very exact. init_world_once checks and sets a flag in the interpreter structure, but does not check if the interpreter has parents or no. -- Salu2 _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
