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

[email protected] (Nicholas Clark)
Newsgroups perl.perl6.internals
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.