> 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

Reply via email to