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]

Reply via email to