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.