Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: [perl #38584] [BUG] Punie test failures in set_node method on Solaris/SPARC

12 views
Skip to first unread message

Andy Dougherty

unread,
Jan 9, 2007, 11:37:12 AM1/9/07
to Will Coleda via RT, all...@perl.org
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 doug...@lafayette.edu

Allison Randal

unread,
Jan 9, 2007, 1:49:18 PM1/9/07
to Andy Dougherty, Perl 6 Internals
Ah, this explains why I wasn't able to duplicate the bug on the SPARC
box Sun loaned to us. It's a brand-new box, with the latest Perl, etc.

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

0 new messages