On Tue, 22 Sep 2009, Nicholas Clark wrote:
> 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.
I would tend to agree, but Coke seemed to be implying that the intent was
otherwise.
> 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.
(One of the strange things about this report is that the failure only
happens with --optimize. And not just this report -- this has been an
issue on and off for years. But that probably doesn't really have
anything to do with ASSERT_ARGS.)
More generally, whatever the default setting, it might be nice to have a
way to change it. I could easily imagine
perl Configure.pl --optimize=-O --debugging=1
turning on the optimizer while still enabling all the -DNDEBUG checks, and
perl Configure.pl --optimize=-O --debugging=0
turning on the optimizer and leaving out all the -DNDEBUG checks.
Right now, that --optimize unconditionally leaves out the -DNDEBUG checks,
and the -debugging ends up doing nothing useful at all in those two
cases.
--
Andy Dougherty [email protected]