Skip Menu |

This queue is for tickets about the Method-Destructor CPAN distribution.

Report information
The Basics
Id: 72184
Status: open
Priority: 0/
Queue: Method-Destructor

People
Owner: Nobody in particular
Requestors: 'spro^^*%*^6ut# [...] &$%*c
Cc: perl5-porters [...] perl.org
smueller [...] cpan.org
AdminCc:

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



CC: perl5-porters [...] perl.org, smueller [...] cpan.org
Subject: ExtUtils::ParseXS changes break Method::Destructor
I see this error message: Destructor.c:246: error: static declaration of ‘XS_Method__Destructor_DESTROY’ follows non-static declaration Destructor.xs:53: error: previous declaration of ‘XS_Method__Destructor_DESTROY’ was here Steffen Müller can explain this better than I, so I am forwarding this to him.
CC: perl5-porters [...] perl.org
Subject: Re: Fwd: [rt.cpan.org #72184] ExtUtils::ParseXS changes break Method::Destructor
Date: Thu, 05 Apr 2012 07:39:00 +0200
To: bug-Method-Destructor [...] rt.cpan.org
From: Steffen Mueller <mail [...] steffen-mueller.net>
On 04/04/2012 06:43 AM, bug-Method-Destructor@rt.cpan.org wrote: Show quoted text
> This is forward of transaction #996027 of a ticket #72184
Method::Destructor explicitly declares the DESTROY method with XS() in the C section of the XS. This is because the import method in the XS uses the generated name XS_Method__Destructor_DESTROY to refer to it. Later, it defines DESTROY as an ordinary XSUB. In recent ExtUtils::ParseXS, XSUBs are, by default, generated as static functions. Outside the realm of the generated code, XS() couldn't be redefined for compatibility. XS() thus does not declare an external XSUB. The major benefit of the static XSUBs is that you save potentially significant startup time on some platforms on libraries with A LOT of symbols such as Glib or Gtk2. There are a couple of ways to deal with this problem. The by far easiest is to influence how EU::ParseXS generates XSUBs: #define PERL_EUPXS_ALWAYS_EXPORT This will make sure that while that's defined, new XSUBs will not be static. Best regards, Steffen