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:
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.)
Tim.
> Chunks of NYTProf guts need a rethink. [Sigh.]
>
> Meanwhile, try NYTPROF=slowops=0 or the current release version.
>
> Tim.
>
> On Fri, Dec 04, 2009 at 05:52:10PM +0000, Nicholas Clark wrote:
> > On Fri, Dec 04, 2009 at 05:30:28PM +0000, Tim Bunce wrote:
> > > Thanks for the reports Nick. I'll aim to work on them tonight.
> >
> > I tried to trigger the assertion via call_sv() or call_method(), but this
> > XS code doesn't fail:
> >
> > #include "EXTERN.h"
> > #include "perl.h"
> > #include "XSUB.h"
> >
> > MODULE = Call PACKAGE = Call
> >
> > I32
> > call_sv(sub_name, flags = 0)
> > SV *sub_name
> > I32 flags
> >
> > I32
> > call_method(package, method)
> > SV *package
> > char *method
> > CODE:
> > PUSHMARK(SP);
> > XPUSHs(package);
> > PUTBACK;
> >
> > call_method(method, G_SCALAR);
> >
> >
> > even with (guesswork) contortions to try to get it to fire within a subst at
> > the same point as SWASH loading:
> >
> > /home/nclark/Sandpit/snap5.9.x-v5.11.2-111-gdcae3e3/bin/perl5.11.2
> > -d:NYTProf -Mblib -MCall -wle '; sub foo {warn "Bing"}; $_ = "N";
> > m/.(?{Call::call_method("main", "foo")})/'
> >
> >
> > I really don't know XS, or perl stack manipulation - it's probably possible
> > to re-write that call_method without a PUSHMARK/PUTBACK, and pass arguments,
> > by copying package ST(0) to ST(1) and then moving something.
> >
> > 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]
>
> --
> 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]
--
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]