OK - I'm an idiot (and you knew that already), but... Where do I download DBI 1.613_71 from? I go the DBI 1.613 page at search.cpan.org and click on the link that says "download the latest dev build" which is identifies as 1.613_71, but it goes to a 404 page. So, please can someone enlighten me on what the current procedure is - as you can tell, I do not often go to CPAN to collect non-release versions of anything.
Also, what are the symptoms that there are going to be problems? I can find nothing that looks like PERL_POLLUTE in the Makefiles or build process I have - there is an "MPOLLUTE =" in one Makefile. Does that mean that I (meaning DBD::Informix) don't use PERL_POLLUTE, or is there something else? There are lines like: Informix.c: ST(0) = (av) ? sv_2mortal(newRV((SV *)av)) : &sv_undef; Informix.c: else ST(0) = &sv_undef; Informix.xsi: ST(0) = (av) ? sv_2mortal(newRV((SV *)av)) : &sv_undef; Informix.xsi: else ST(0) = &sv_undef; Do these require a PL_ prefix? That prefix used to appear automagically, didn't it - but is the trouble that the auto-magic is going away? If I look at the Perl 5.12.1 'perldoc perlguts', there is nothing there to indicate that you do not continue to use SvIOK and sv_catpv() - pulling a couple of names at quasi-random. So, since the documentation doesn't indicate any change there - and 'perldoc perlguts' does not contain 'pollute' or 'POLLUTE' - I think the change must be different from what I'm imagining. On a different machine - one I use less often - with Perl 5.10.1, the build command for Informix.o is: gcc -m64 -c -I/usr/informix/11.50.FC3/incl/esql -I/usr/perl/v5.10.1-64bit/lib/5.10.1/sun4-solaris-64/auto/DBI -I/usr/perl/v5.10.1-64bit/lib/site_perl/5.10.1/sun4-solaris-64/auto/DBI -I/auto/DBI -I/usr/perl/v5.10.1-64bit/lib/site_perl/5.10.1/sun4-solaris-64/auto/DBI -fno-strict-aliasing -pipe -I/usr/gnu64/include -mcpu=v9 -m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -DPERL_USE_SAFE_PUTENV -O -DVERSION=\"2008.0513\" -DXS_VERSION=\"2008.0513\" -fPIC "-I/usr/perl/v5.10.1-64bit/lib/5.10.1/sun4-solaris-64/CORE" -DESQLC_VERSION=350 -DNDEBUG -DDO_NOT_USE_STDERR_H -DESQLC_IFX_LOC_T Informix.c I modified Informix.c to contain the following stanza after all the headers and just before the first function definition: #ifdef PERL_POLLUTE #error PERL_POLLUTE defined #endif I recompiled (several times - editing the Informix.c file after it was generated and then running just the GCC compilation), and that '#error' never fired. Does that prove anything useful? (That was Sun Solaris 10, Perl 5.10.1, DBI 1.609, DBD::Informix 2008.0513 (the current version of DBD::Informix).) nm -g Informix.o | grep undef [215] | 0| 0|NOTY |GLOB |0 |UNDEF |PL_sv_undef So, there is a mapping going on with this version - does that tell me anything? (I've periodically had people have problems building DBD::Informix and PL_sv_xxx symbols figured in the bug reports; I was never able to reproduce them reliably. Does that indicate anything?) On Fri, Aug 27, 2010 at 1:53 PM, Tim Bunce <tim.bu...@pobox.com> 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_POLUTE. 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. > -- Jonathan Leffler <jonathan.leff...@gmail.com> #include <disclaimer.h> Guardian of DBD::Informix - v2008.0513 - http://dbi.perl.org "Blessed are we who can laugh at ourselves, for we shall never cease to be amused."