On Tue, 9 Jan 2007, Will Coleda via RT wrote: > The test file mentioned in the original report no longer exists: the > structure of punie has changed somewhat in the last 11 months. > > Can you please retest, and if you still have a problem, please open a > new ticket.
I have no problem with closing the ticket, as I doubt the problem was ever specific to punie anyway -- it's just punie and pge tended to trigger it. I'll pass along the results of my attempts to re-test, not because it helps much, but just because it illustrates the sorts of frustrations I kept running into whenever I tried to do anything with parrot. For starters, it no longer even builds for me. The build dies with perl5.6 tools/build/vtable_extend.pl "./include/parrot/parrot.h", line 150: missing operand "./include/parrot/parrot.h", line 168: missing operand "config/gen/platform/generic/math.h", line 11: missing operand "./include/parrot/platform_interface.h", line 17: missing operand "./include/parrot/exceptions.h", line 155: syntax error before or at: Parrot_jump_buff "./include/parrot/exceptions.h", line 155: cannot recover from previous errors cc: acomp failed for src/ops/core_ops.c src/ops/core_ops.c *** Error code 2 make: Fatal error: Command failed for target `src/ops/core_ops.o' After poking around quite a while, I think this is a perl-5.6 problem. Earlier in the process, Configure.pl reported: Determining whether make is installed... step inter::make died during execution: Unknown open() mode '>&' at lib/Parrot/Configure/Step.pm line 584. at Configure.pl line 540 Although Configure.pl happily kept chugging away, even though it should have detected that there was a fatal problem of some sort and bailed out. In similar situations, perl5's Configure script dies with a message I can't compile the test program. You have a BIG problem. Shall I abort Configure? [y] Without excessive looking through the 5.6.x, 5.8.x, and parrot ChangeLogs, it looks like Configure.pl is now using a form of the 3-arg open that doesn't work in 5.6. So I thought I'd clean up and retry with 5.8.8. $ make distclean mksh: Fatal error in reader: Loop detected when expanding macro value `$(PERL) -e 'chdir shift @ARGV; system q{$(MAKE)}, @ARGV; exit $$? >> 8;'' Sigh. I didn't even bother to try to fix this one. Time to remove the whole directory and unpack a fresh distribution. Retry with perl-5.8.8. Nope, that fails 10 minutes later with src/inter_call.c "./include/parrot/sub.h", line 90: warning: integer overflow detected: op "<<" "src/inter_call.c", line 255: void function cannot return value "src/inter_call.c", line 285: void function cannot return value "src/inter_call.c", line 1077: warning: statement not reached cc: acomp failed for src/inter_call.c *** Error code 2 make: Fatal error: Command failed for target `src/inter_call.o' Guessing that the following is probably what was intendend (though the "documentation" of all the relevant function calls makes this less than obvious): --- parrot-current/src/inter_call.c Mon Jan 8 19:15:19 2007 +++ parrot-andy/src/inter_call.c Tue Jan 9 11:06:05 2007 @@ -251,8 +251,10 @@ else UVal_pmc(st->val) = va_arg(*ap, PMC*); - if (st->src.sig & PARROT_ARG_FLATTEN) - return make_flattened(interp, st, UVal_pmc(st->val)); + if (st->src.sig & PARROT_ARG_FLATTEN) { + make_flattened(interp, st, UVal_pmc(st->val)); + return; + } break; } st->src.mode |= CALL_STATE_NEXT_ARG; @@ -281,8 +283,10 @@ UVal_pmc(st->val) = constant ? st->src.ctx->constants[idx]->u.key : CTX_REG_PMC(st->src.ctx, idx); - if (st->src.sig & PARROT_ARG_FLATTEN) - return make_flattened(interp, st, UVal_pmc(st->val)); + if (st->src.sig & PARROT_ARG_FLATTEN) { + make_flattened(interp, st, UVal_pmc(st->val)); + return; + } break; } st->src.mode |= CALL_STATE_NEXT_ARG; I then proceed to type 'make' again. Eventually, it dies with ../../parrot pgc.pir --output=PGE/builtins_gen.pir PGE/builtins.pg set_string_keyed() not implemented in class 'Integer' current instr.: 'parrot;PGE::P6Regex;parse_subrule' pc 8442 (compilers/pge/PGE/P6Regex.pir:678) called from Sub 'parrot;PGE::OPTable;parse' pc 2252 (compilers/pge/PGE/OPTable.pir:519) called from Sub 'parrot;PGE::Grammar;regex' pc 6554 (compilers/pge/PGE/P6Regex.pir:143) called from Sub 'parrot;PGE::P6Regex;compile_p6regex' pc 6463 (compilers/pge/PGE/P6Regex.pir:95) called from Sub 'parrot;PGE::P6Grammar::Compiler;__onload' pc 45 (runtime/parrot/library/PGE/P6Grammar.pir:80) called from Sub 'main' pc 3 (pgc.pir:48) *** Error code 1 make: Fatal error: Command failed for target `PGE.pbc' Current working directory /home/doughera/src/parrot/parrot-andy/compilers/pge *** Error code 1 make: Fatal error: Command failed for target `compilers.dummy' Not surprisingly, punie doesn't work: $ cd languages/punie; make ../../parrot ../../compilers/pge/pgc.pir --output=lib/punie_grammar_gen.pir lib/punie.pg Couldn't find file 'PGE.pbc' current instr.: 'parrot;PGE::P6Grammar::Compiler;__onload' pc 22 (runtime/parrot/library/PGE/P6Grammar.pir:71) called from Sub 'main' pc 3 (../../compilers/pge/pgc.pir:48) *** Error code 1 make: Fatal error: Command failed for target `lib/PunieGrammar.pbc' All of which looks vaguely similar to the last time I tried to get anywhere with parrot, though I could have guessed wrong in the patch above. So anyway, go ahead and close the ticket. -- Andy Dougherty [EMAIL PROTECTED]