When generating a stub PMC with F<tools/dev/gen_class.pl>, the generated
stub terminates the compile process the first time miniparrot is run.
This is because the freshly generated stub overrides the C<namespace>
method to return a null PMC.
Simply commenting out the overridden C<namespace> method resolves the
problem (because the default C<namespace> works correctly). But, the
first experience when creating a new PMC should not be hunting down
obscure compile errors. So, fix F<tools/dev/gen_class.pl> so it either
doesn't generate a stub method for C<namespace>, or so it generates the
method commented out.
------
The error during compile:
Invoking Parrot to generate runtime/parrot/include/config.fpmc --cross
your fingers
./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmcmake:
*** [runtime/parrot/include/config.fpmc] Error 138
gdb reports:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x000000100x000b3214 in
find_method_direct_1 (interp=0x1900330, class=0x20345d0,
method_name=0x1a0b518) at src/objects.c:13571357 method =
VTABLE_get_pmc_keyed_str(interp, ns, method_name);
and:
(gdb) p ns
$1 = (PMC *) 0x0
------
Allison
> When generating a stub PMC with F<tools/dev/gen_class.pl>, the generated
> stub terminates the compile process the first time miniparrot is run.
> This is because the freshly generated stub overrides the C<namespace>
> method to return a null PMC.
I can't reproduce this now; the generated stub doesn't seem to have a
namespace method.
There's a C<pmc_namespace> method.
-- c