On Fri, Feb 15, 2008 at 11:59 AM, via RT chromatic <[EMAIL PROTECTED]> wrote:
> $ ./parrot -O t/compilers/imcc/syn/const_24.pir > Null PMC access in get_string() > > $ ./parrot t/compilers/imcc/syn/const_24.pir > Null PMC access in get_string() > current instr.: 'main' pc 5 (t/compilers/imcc/syn/const_24.pir:11) > > The difference lies somewhere in Parrot_Context_get_info(), I believe. Looks like the problem is that e_pbc_emit in compilers/imcc/pbc does not initialize the debug segment, because of this condition: /* add debug if necessary */ if (!IMCC_INFO(interp)->optimizer_level || IMCC_INFO(interp)->optimizer_level == OPT_PASM) { And Parrot_context_get_info does this before setting file and line: PackFile_Debug * const debug = sub->seg->debugs; if (!debug) return 0; Because it uses the debug segment to obtain that data. Unconditionally ceating the debug segment solves the issue but I don't know if that will be an adequate solution. -- Salu2