> 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 doug...@lafayette.edu
Is there a way we could get one of our Cage Cleaners access to the box
you're testing on? Or duplicate the configuration? I'll check with
Robert to see if we can get you access to the loaner Sun box (if we
still have it).
Allison