Index: src/dynext.c =================================================================== --- src/dynext.c (revision 41107) +++ src/dynext.c (working copy) @@ -428,6 +428,13 @@ void (*init_func)(PARROT_INTERP, PMC *); PMC *lib_pmc; + INTVAL regs_used[] = { 2, 2, 2, 2 }; /* Arbitrary values */ + const int parrot_hll_id = 0; + PMC * context = Parrot_push_context(interp, regs_used); + Parrot_pcc_set_HLL(interp, context, parrot_hll_id); + Parrot_pcc_set_namespace(interp, context, + Parrot_get_HLL_namespace(interp, parrot_hll_id)); + /* * work around gcc 3.3.3 and other problem with dynpmcs * something during library loading doesn't stand a GC run @@ -475,6 +482,8 @@ /* UNLOCK */ Parrot_unblock_GC_mark(interp); + Parrot_pop_context(interp); + return lib_pmc; } Index: src/packfile.c =================================================================== --- src/packfile.c (revision 41107) +++ src/packfile.c (working copy) @@ -4711,6 +4711,13 @@ ASSERT_ARGS(compile_or_load_file) char * const filename = Parrot_str_to_cstring(interp, path); + INTVAL regs_used[] = { 2, 2, 2, 2 }; /* Arbitrary values */ + const int parrot_hll_id = 0; + PMC * context = Parrot_push_context(interp, regs_used); + Parrot_pcc_set_HLL(interp, context, parrot_hll_id); + Parrot_pcc_set_namespace(interp, context, + Parrot_get_HLL_namespace(interp, parrot_hll_id)); + if (file_type == PARROT_RUNTIME_FT_PBC) { PackFile * const pf = PackFile_append_pbc(interp, filename); Parrot_str_free_cstring(filename); @@ -4738,6 +4745,8 @@ Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR, "compiler returned NULL ByteCode '%Ss' - %Ss", path, err); } + + Parrot_pop_context(interp); } /*