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]