Skip Menu |

This queue is for tickets about the B-Generate CPAN distribution.

Report information
The Basics
Id: 70398
Status: resolved
Priority: 0/
Queue: B-Generate

People
Owner: Nobody in particular
Requestors: zefram [...] fysh.org
Cc:
AdminCc: GRUBER [...] cpan.org

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: B::SVOP->sv broken by B::Generate
Date: Sun, 21 Aug 2011 17:47:29 +0100
To: bug-B-Generate [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
B::Generate breaks dumping of const ops on threaded perls: $ perl -MO=Concise -lwe 'print 123' | grep const -e syntax OK 4 <$> const[IV 123] s ->5 $ perl -MB::Generate -MO=Concise -lwe 'print 123' | grep const -e syntax OK 4 <$> const(IV \143490328)[t1] s ->5 Empirically, it can be avoided by squashing B::Generate's replacement of B::SVOP->sv: $ perl -MO=Concise -lwe 'BEGIN { require B; my $sv = \&B::SVOP::sv; require B::Generate; *B::SVOP::sv = $sv; } print 123' | grep const Subroutine B::SVOP::sv redefined at -e line 1. -e syntax OK 4 <$> const[IV 123] s ->5 I haven't determined exactly what's wrong with the replacement method. -zefram
From: rurban [...] x-ray.at
Am So 21. Aug 2011, 12:47:40, zefram@fysh.org schrieb: Show quoted text
> B::Generate breaks dumping of const ops on threaded perls: > > $ perl -MO=Concise -lwe 'print 123' | grep const > -e syntax OK > 4 <$> const[IV 123] s ->5 > $ perl -MB::Generate -MO=Concise -lwe 'print 123' | grep const > -e syntax OK > 4 <$> const(IV \143490328)[t1] s ->5 > > Empirically, it can be avoided by squashing B::Generate's replacement > of B::SVOP->sv: > > $ perl -MO=Concise -lwe 'BEGIN { require B; my $sv = \&B::SVOP::sv; > require B::Generate; *B::SVOP::sv = $sv; } print 123' | grep const > Subroutine B::SVOP::sv redefined at -e line 1. > -e syntax OK > 4 <$> const[IV 123] s ->5 > > I haven't determined exactly what's wrong with the replacement method.
Thanks. I already found that out in July: https://plus.google.com/u/0/111311295401970784165/posts/T4dHXuHhLMB but thought it is related to Windows only. I created a testcase for it and try to fix it for the next release. It's a bit annoying. The SVOP accessor threaded probably mixed up with the PADOP accessor.
Thanks Fixed in the upcoming 1.41 in commit 2a9a287 -- Reini Urban