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."

Reply via email to