develooper Front page | perl.perl6.internals | Postings from December 2008

Re: [perl #61242] [FTBFS] build fails with --optimize on 64bit linux

Thread Previous
From:
Nicholas Clark
Date:
December 11, 2008 08:14
Subject:
Re: [perl #61242] [FTBFS] build fails with --optimize on 64bit linux
Message ID:
20081211161400.GF89929@plum.flirble.org
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

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About