Skip Menu |

This queue is for tickets about the Devel-FindRef CPAN distribution.

Report information
The Basics
Id: 101077
Status: rejected
Priority: 0/
Queue: Devel-FindRef

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc: gregoa [...] cpan.org
AdminCc:

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



Subject: Compilation error with perl 5.21.7 (xpadn_ourstash)
Compilation fails with perl 5.21.7: ccache cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_FORTIFY_SOURCE=2 -O -DVERSION=\"1.44\" -DXS_VERSION=\"1.44\" -DPIC -fPIC "-I/usr/perl5.21.7/lib/5.21.7/amd64-freebsd/CORE" FindRef.c FindRef.xs: In function 'XS_Devel__FindRef_find_': FindRef.xs:106: error: 'SV' has no member named 'xpadn_ourstash' *** [FindRef.o] Error code 1
On 2014-12-22 02:49:27, SREZIC wrote: Show quoted text
> Compilation fails with perl 5.21.7: > > ccache cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > aliasing -pipe -fstack-protector -I/usr/local/include > -D_FORTIFY_SOURCE=2 -O -DVERSION=\"1.44\" -DXS_VERSION=\"1.44\" > -DPIC -fPIC "-I/usr/perl5.21.7/lib/5.21.7/amd64-freebsd/CORE" > FindRef.c > FindRef.xs: In function 'XS_Devel__FindRef_find_': > FindRef.xs:106: error: 'SV' has no member named 'xpadn_ourstash' > *** [FindRef.o] Error code 1
Additionally, with perl 5.21.6 there was a test error: t/01_padarray.t (Wstat: 11 Tests: 0 Failed: 0) Non-zero wait status: 11 With perl 5.21.5 there were no problems.
Subject: Re: [rt.cpan.org #101077] Compilation error with perl 5.21.7 (xpadn_ourstash)
Date: Mon, 22 Dec 2014 09:22:24 +0100
To: Slaven_Rezic via RT <bug-Devel-FindRef [...] rt.cpan.org>
From: Marc Lehmann <schmorp [...] schmorp.de>
Hi! Please send your bug report to the official contact/author address for the module in question (or send it to rt.cpan.org@schmorp.de, that's fine as well). What follows is the rationale for this request, you don't have to read it if you don't care. Why is this necessary? rt.cpan.org has many deficiencies which makes it tedious and hard to use, increasing the workload on the people who provide all the perl modules you probably appreciate (and that is really to be avoided - module authors should be able to invest all their time into improving their modules and not fighting with rt.cpan.org's bugs). Still, for some people, rt.cpan.org is useful to have, and some people even like it and really want to use it. That is fine, too. Unfortunately, the designers of rt.cpan.org didn't make their "service" optional - you can neither opt-in nor opt-out of rt.cpan.org as a module author. Just like a spammer, rt.cpan.org forces its "service" (whether wanted or unwanted) on everybody. Just like a spammer, they don't care for the people they actively hurt. Just like a spammer, they don't don't care to fix these issues and make their "service" ethically acceptable. You cannot even configure it to redirect tickets to somewhere else. Unfortunately, ignoring rt.cpan.org is not an option either: for people reporting possible bugs there is no indication that their report will be ignored, and for module authors it means they miss potentially vital bug reports such as yours (and of course it's a great impression if rt.cpan.org has lots of bug reports that are unanswered, making a module look unmaintained when in fact the opposite might be true). I am sorry that this wasted a bit of your time, but please understand that I am just as much a victim as you are - the problem is the unethical stance of the rt.cpan.org providers who force their "service" on everybody. Please redirect your bug report as stated in the beginning of this mail, and please consider petitioning the rt.cpan.org providers to stop their unethical behaviour and allow opt-in, opt-out, or some redirect option. One last issue: many people mail me that this can be "fixed" by including the bugtracker element in my module meta file. This is not true: 1. This field only affects search.cpan.org and maybe similar services. (Many people confuse rt.cpan.org with search.cpan.org for some reason). 2. It doesn't even work (there are still links to rt.cpan.org displayed). 3. Even if search.cpan.org does no longer display the link, it doesn't actually affect rt.cpan.org (and tests have shown that people go to rt.cpan.org regardless) Even *iff* rt.cpan.org would start listening on the bugtracker field, however, it's still wrong. I have a lot of modules, and each time a service like rt.cpan.org comes out, I would have to make dummy releases for all my modules. This not only creates a lot of extra work for me (I take releases very seriously) but also users, who would wonder why there is a new release. Thanks a lot, Marc Lehmann <rt.cpan.org@schmorp.de> Last updated: 2012-04-22
On 2014-12-22 02:49:27, SREZIC wrote: Show quoted text
> Compilation fails with perl 5.21.7: > > ccache cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > aliasing -pipe -fstack-protector -I/usr/local/include > -D_FORTIFY_SOURCE=2 -O -DVERSION=\"1.44\" -DXS_VERSION=\"1.44\" > -DPIC -fPIC "-I/usr/perl5.21.7/lib/5.21.7/amd64-freebsd/CORE" > FindRef.c > FindRef.xs: In function 'XS_Devel__FindRef_find_': > FindRef.xs:106: error: 'SV' has no member named 'xpadn_ourstash' > *** [FindRef.o] Error code 1
Compilation also fails with latest bleadperl 5.21.10.
Subject: Re: [rt.cpan.org #101077] Compilation error with perl 5.21.7 (xpadn_ourstash)
Date: Mon, 6 Apr 2015 11:51:35 +0200
To: Slaven_Rezic via RT <bug-Devel-FindRef [...] rt.cpan.org>
From: Marc Lehmann <schmorp [...] schmorp.de>
Hi! Please send your bug report to the official contact/author address for the module in question (or send it to rt.cpan.org@schmorp.de, that's fine as well). What follows is the rationale for this request, you don't have to read it if you don't care. Why is this necessary? rt.cpan.org has many deficiencies which makes it tedious and hard to use, increasing the workload on the people who provide all the perl modules you probably appreciate (and that is really to be avoided - module authors should be able to invest all their time into improving their modules and not fighting with rt.cpan.org's bugs). Still, for some people, rt.cpan.org is useful to have, and some people even like it and really want to use it. That is fine, too. Unfortunately, the designers of rt.cpan.org didn't make their "service" optional - you can neither opt-in nor opt-out of rt.cpan.org as a module author. Just like a spammer, rt.cpan.org forces its "service" (whether wanted or unwanted) on everybody. Just like a spammer, they don't care for the people they actively hurt. Just like a spammer, they don't don't care to fix these issues and make their "service" ethically acceptable. You cannot even configure it to redirect tickets to somewhere else. Unfortunately, ignoring rt.cpan.org is not an option either: for people reporting possible bugs there is no indication that their report will be ignored, and for module authors it means they miss potentially vital bug reports such as yours (and of course it's a great impression if rt.cpan.org has lots of bug reports that are unanswered, making a module look unmaintained when in fact the opposite might be true). I am sorry that this wasted a bit of your time, but please understand that I am just as much a victim as you are - the problem is the unethical stance of the rt.cpan.org providers who force their "service" on everybody. Please redirect your bug report as stated in the beginning of this mail, and please consider petitioning the rt.cpan.org providers to stop their unethical behaviour and allow opt-in, opt-out, or some redirect option. One last issue: many people mail me that this can be "fixed" by including the bugtracker element in my module meta file. This is not true: 1. This field only affects search.cpan.org and maybe similar services. (Many people confuse rt.cpan.org with search.cpan.org for some reason). 2. It doesn't even work (there are still links to rt.cpan.org displayed). 3. Even if search.cpan.org does no longer display the link, it doesn't actually affect rt.cpan.org (and tests have shown that people go to rt.cpan.org regardless) Even *iff* rt.cpan.org would start listening on the bugtracker field, however, it's still wrong. I have a lot of modules, and each time a service like rt.cpan.org comes out, I would have to make dummy releases for all my modules. This not only creates a lot of extra work for me (I take releases very seriously) but also users, who would wonder why there is a new release. Thanks a lot, Marc Lehmann <rt.cpan.org@schmorp.de> Last updated: 2012-04-22
From: ppisar [...] redhat.com
Dne Po 22.pro.2014 02:49:27, SREZIC napsal(a): Show quoted text
> Compilation fails with perl 5.21.7: > > ccache cc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict- > aliasing -pipe -fstack-protector -I/usr/local/include > -D_FORTIFY_SOURCE=2 -O -DVERSION=\"1.44\" -DXS_VERSION=\"1.44\" > -DPIC -fPIC "-I/usr/perl5.21.7/lib/5.21.7/amd64-freebsd/CORE" > FindRef.c > FindRef.xs: In function 'XS_Devel__FindRef_find_': > FindRef.xs:106: error: 'SV' has no member named 'xpadn_ourstash' > *** [FindRef.o] Error code 1
This looks like a bug introduced by perl commit: commit 0f94cb1fe27e58a59d3391214dab34037ab184db Author: Father Chrysostomos <sprout@cpan.org> Date: Thu Nov 27 22:30:54 2014 -0800 [perl #123223] Make PADNAME a separate type distinct from SV. This should fix the CPAN modules that were failing when the PadnameLVALUE flag was added, because it shared the same bit as SVs_OBJECT and pad names were going through code paths not designed to handle pad names. Unfortunately, it will probably break other CPAN modules, but I think this change is for the better, as it makes both pad names and SVs sim- pler and makes pad names take less memory. According to the changed code: if (type >= SVt_PVMG) { - if (type == SVt_PVMG && SvPAD_OUR(sv)) { - HV * const ost = SvOURSTASH(sv); - if (ost) - do_hv_dump(level, file, " OURSTASH", ost); - } else { - if (SvMAGIC(sv)) + if (SvMAGIC(sv)) do_magic_dump(level, file, SvMAGIC(sv), nest+1, maxnest, dumpops, pvlim); - } if (SvSTASH(sv)) do_hv_dump(level, file, " STASH", SvSTASH(sv)); it looks like the FindRef.xs code copies the branching: if (SvTYPE (sv) >= SVt_PVMG) { if (SvTYPE (sv) == SVt_PVMG && SvPAD_OUR (sv)) { /* I have no clue what this is */ /* maybe some placeholder for our variables for eval? */ /* it doesn't seem to reference anything, so we should be able to ignore it */ } else if (SvMAGICAL (sv)) /* name-pads use SvMAGIC for other purposes */ and the hole (SvTYPE (sv) == SVt_PVMG && SvPAD_OUR (sv)) branch can be removed.
Anything new here? We are about to upload Perl 5.22 to Debian/unstable soon, which means this module will have to be removed from testing first, and later from the archive completely. Any help welcome! Cheers, gregor, Debian Perl Group
On 2015-10-02 09:24:19, GREGOA wrote: Show quoted text
> Anything new here? > > We are about to upload Perl 5.22 to Debian/unstable soon, > which means this module will have to be removed from testing first, > and later from the archive completely.
Implementing Father Chrysostomos' suggestion makes the compilation work again (see below for the patch), but unfortunately the test suite again fails with a SEGV, just like with perl 5.21.6. diff --git i/FindRef.xs w/FindRef.xs index ac4c991..e64ffc1 100644 --- i/FindRef.xs +++ w/FindRef.xs @@ -6,13 +6,13 @@ (PERL_REVISION > (a) \ || (PERL_REVISION == (a) \ && (PERL_VERSION > (b) \ - || (PERL_VERSION == (b) && PERLSUBVERSION >= (c))))) + || (PERL_VERSION == (b) && PERL_SUBVERSION >= (c))))) #if !PERL_VERSION_ATLEAST (5,8,9) # define SVt_LAST 16 #endif -#if !PERL_VERSION_ATLEAST (5,10,0) +#if !PERL_VERSION_ATLEAST (5,10,0) || PERL_VERSION_ATLEAST (5,21,7) # define SvPAD_OUR(dummy) 0 #endif
RT-Send-CC: ppisar [...] redhat.com
On 2015-10-05 13:58:03, SREZIC wrote: Show quoted text
> On 2015-10-02 09:24:19, GREGOA wrote:
> > Anything new here? > > > > We are about to upload Perl 5.22 to Debian/unstable soon, > > which means this module will have to be removed from testing first, > > and later from the archive completely.
> > Implementing Father Chrysostomos' suggestion
Petr's, of course.
With patches above I got 'Segmentation fault' perl 5.24.0