On Thu Dec 11 08:14:45 2008, nicholas wrote:
> On Tue, Dec 09, 2008 at 03:43:59PM -0800, Moritz Lenz wrote:
> 
> > After a 'make realclean' I ran 'perl Configure --optimize && make'.
> It
> > dies like this:
> >
> > ../../parrot -o PGE.pbc --output-pbc PGE.pir
> > ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pir
> > --output=PGE/bui
> > ltins_gen.pir PGE/builtins.pg
> > FixedIntegerArray: Can't resize!
> > current instr.: 'parrot;P6metaclass;new_class' pc 95
> > (runtime/parrot/library/P6o
> > bject.pir:126)
> > make[1]: *** [PGE.pbc] Error 1
> > make[1]: Leaving directory `/home/moritz/src/parrot/compilers/pge'
> > make: *** [compilers.dummy] Error 2
> 
> > This is a 64bit Debian Lenny install with gcc 4.3.2. Building
> without
> > --optimize is no problem.
> 
> I believe that Parrot will continue to have obscure problems such as
> this,
> much as Perl 5 used to do, until it implements the equivalent of
> 
> http://public.activestate.com/cgi-bin/perlbrowse/p/33291
> 
> and fixes the problems that it shows up.
> 
> (Yes, it's big. Search for the section starting
> ==== //depot/perl/embed.pl#366 (xtext) ====
> for the Perl code that generates the assertion macros from embed.fnc.
> This
> is the equivalent to Parrot's headerizer)
> 
> 
> Summary - I infer that some "not null" annotations in Parrot are not
> correct.
> 
> Perl 5's experience was that these are like landmines, and lay dormant
> until
> someone tries with a newer compiler, that happens to add a bit more
> optimisation. Of course, this can happen months after you release
> code, code
> that "works" and is thought to be stable. IIRC we had 3 separate end
> user bugs
> found with this as the cause, before I realised that we were never
> going to
> find them by hand, so made the above changes to make the compiler find
> them.
> 
> What you don't see in *that* change was the half dozen or so that it
> found
> and I fixed, that I committed before I was able to add that. See here:
> http://public.activestate.com/cgi-
> bin/perlbrowse?top=33291&show_recent=Show+Change+Log
> 
> 
> Nicholas Clark
> 

While we've had PARROT_ASSERT_ARGS to catch the assertions here for some 
time, I just found and fixed a bug that ran the check on the args as

ARG1 || ARG2 

instead of

ARG1 && ARG2

which no doubt missed many the issues this was intended to catch.

I'm hoping that with this fix, the optimized builds will be better 
behaved.

If anyone experiences this issue going forward, please open a new ticket 
at https://trac.parrot.org/

Thanks.

-- 
Will "Coke" Coleda
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to