Re: Perl 5.13.3+ MAY BREAK COMPILED DRIVERS - Please test DBI 1.613_71!

Darren Duncan <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
Okay, I'm not sure I understand the problem here.

I thought that the point of PERL_POLLUTE was to provide things that were removed 
from the Perl core so that code which depends on the old removed APIs would 
continue to work with newer Perls that removed them if said code enables 
PERL_POLLUTE.

DBD::SQLite *does* define PERL_POLLUTE, but if I take it out, then it still 
builds fine otherwise as-is on Perl 5.13.4 with DBI 1.613_71.  So DBD::SQLite 
already appears to use the newer PL_ versions, so hence what is PERL_POLLUTE for?

I found that under Perl 5.12.1, just removing PERL_POLLUTE caused build 
failures, which cited old versions without the PL_, but then I found that these 
old versions weren't in the DBD::SQLite source at all, but rather were being 
added by ppport.h.  So then when I also removed ppport.h (and PERL_POLLUTE), 
then DBD::SQLite built with Perl 5.12.1 and DBI 1.613_71.

I haven't tested on older Perls yet.

So, in light of this, should I actually be changing anything in DBD::SQLite?  Or 
should it be retaining both the PERL_POLLUTE and ppport.h?

You seemed to be saying that including PERL_POLLUTE means broken on Perl 5.13.4 
but that doesn't seem to be the case.

Guidance please.  Thank you.

-- Darren Duncan

Tim Bunce wrote:
> Short version:
> 
> Please download build test *and install* DBI 1.613_71, then download build
> and test any compiled drivers you use to check they work with DBI 1.613_71.
> 
> Let us know about any failures *and* successes.
> 
> Also grep the source code of the driver to see if it defines
> PERL_POLLUTE. If it does, let us know.
> 
> Long version:
> 
> Perl 5.13.3+ removes support for PERL_POLUTE. PERL_POLUTE enables use of
> old-style variables names, without the PL_ prefix (e.g. sv_undef instead
> of PL_sv_undef).
> 
> The DBI has, for many years, enabled PERL_POLUTE mode in DBIXS.h, so
> it's likely that compiled drivers are use some old-style variables names.
> These drivers won't work with Perl 5.13.3+.
> 
> To aid testing for this, the DBI 1.613_71 doesn't enabled PERL_POLUTE mode.
> 
> So please test compiled drivers against DBI 1.613_71.
> 
> Thanks!
> 
> Tim.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.