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.


Reply via email to