[perl #56712] [BUG] --optimize causes perl6 to segfault during make

Nicholas Clark nick at ccl4.org
Tue Sep 22 18:37:56 UTC 2009


On Tue, Sep 22, 2009 at 02:22:17PM -0400, Andy Dougherty wrote:
> On Tue, 22 Sep 2009, Will Coleda via RT wrote:
> 
> > On Tue Jul 08 20:56:02 2008, s1n wrote:
> > > When trying to use the --optimize flag, building perl6 causes parrot 
> > to
> > > segfault. Attached is the Configure.pl script output. 
> > <SNIP>
> > 
> > s1n - this original report is over a year old; there have been a lot of 
> > changes to both parrot and rakudo in that time; we've also just 
> > committed something that should cause the optimized build to at least 
> > fail more cleanly if there's a problem (which we can then more easily 
> > identify and resolve.)
> 
> Actually, all those ASSERT_ARGS checks aren't used in the --optimize build 
> anyway.  Applying the following patch should enable them, assuming that's 
> what is actually intended.

I don't think that it's absolutely necessary.
The intent (at least in Perl 5 land) was to have the non-optimised build spot
all the places where the non-NULL annotations were wrong, on the assumption
that the code paths would be identical in the optimised and non-optimised
builds.

Of course, my opinion is that

a) the compiler should be capable of doing this
b) the compiler should provide analogous annotations for variables and struct
   members. Right now, it's like being able to declare function parameters
   as const pointers, but not being able to have const pointers as variables
   or in structs, and any assignments to pointers silently casting away const.

Nicholas Clark


More information about the parrot-dev mailing list