On Sun, Dec 06, 2009 at 12:53:51PM +0000, Tim Bunce wrote:
> On Fri, Dec 04, 2009 at 08:28:15PM +0000, Tim Bunce wrote:
> > I'm suspecting PUSHSTACKi(PERLSI_MAGIC) at the moment.
> 
> That was a Red Herring, I think.
> 
> It seems tied to a recent change in perl:

I don't think that it is actually.
What seems to be key is that assertions are enabled.

>       ok:  5.8.8 /usr/local/perl588-64/bin 
>       ok:  5.8.8 /usr/local/perl588-thr/bin 
>       ok:  5.8.9 /usr/local/perl589-i/bin 
>       ok: 5.10.0 /usr/local/perl510-pure/bin 
>       ok: 5.10.0 /usr/local/perl510-thr64/bin 
>       ok: 5.10.0 /usr/local/perl510/bin 
>       ok: 5.10.1 /usr/local/perl5101-64d/bin 
>   FAILED: 5.11.1 /usr/local/perl511-i/bin 
>   FAILED: 5.11.2 /usr/local/perl5-blead-deb-thr/bin v5.11.2-81-g162177c
> 
> I've released Devel-NYTProf-2.11_931 to cpan for cpan-testers to chew on.
> 
> I'd appreciate it if someone familar with git could run a bisect on perl using
>     perl t/test81-swash.t
> (I'll get there eventually if noone else does, but it won't be soon.)

I had problems running that *outside* of make test. So I used this test script:

$_ = "N\x{100}";
chop $_;
s/
    (?: [A-Z] | [\d] )+
    (?= [\s] )
//x;


this shell script with git bisect run:

#!/bin/sh
git clean -dxf
./Configure -Dusedevel -Dcc=ccache\ cc -Dld=cc -Dprefix=`echo ~/blead` 
-Doptimize=-g -Uversiononly -des
test -f config.sh || exit 125
# Correct makefile for newer GNU gcc
perl -ni -we 'print unless /<(?:built-in|command)/' makefile x2p/makefile
# if you just need miniperl, replace test_prep with miniperl
make -j3 test_prep
[ -x ./perl ] || exit 125
./installperl || exit 125
cd ~/Perl/perl-devel-nytprof
~/blead/bin/perl Makefile.PL || exit 125
make all || exit 125
~/blead/bin/perl -Iblib/lib -d:NYTProf swash.pl
ret=$?
[ $ret -gt 127 ] && ret=127
cd ~/Perl/perl
# git clean -dxf
exit $ret



this patch to NYTProf.xs to allow it to build with later 5.9.x's:

Index: NYTProf.xs
===================================================================
--- NYTProf.xs  (revision 928)
+++ NYTProf.xs  (working copy)
@@ -1567,7 +1567,7 @@
             break;
 #ifdef CXt_LOOP
         case CXt_LOOP:
-#  if (PERL_VERSION < 10)
+#  if (PERL_VERSION < 9) || (PERL_VERSION == 9 && !defined(CX_LOOP_NEXTOP_GET))
             start_op = cx->blk_loop.redo_op;
 #  else
             start_op = cx->blk_loop.my_op->op_redoop;


and it comes up with this answer:

commit 68ba3a3fdba75589a9e65167c7caeb83c4231690
Author: Yves Orton <[email protected]>
Date:   Sun Jan 21 19:53:38 2007 +0100

    Disable positive lookaround optimisations
    Message-ID: <[email protected]>
    Date: Sun, 21 Jan 2007 18:53:38 +0100
    
    p4raw-id: //depot/p...@29923


which is here with gitweb:

http://perl5.git.perl.org/perl.git/commit/68ba3a3fdba75589a9e65167


Which I checked - the commit before passes. This commit fails. But I suspect
that it only exposes the problem by changing whether the SWASH loading code
is triggered (I didn't check this)

So, actually, I'm not convinced that there ever was a version of perl where
it passed, once assertions are enabled.

Nicholas Clark

-- 
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]

Reply via email to