Document that XS_VERSION_BOOTCHECK may break if $VERSION is a long enough NV
authorNiko Tyni <ntyni@debian.org>
Wed, 29 Apr 2009 20:02:01 +0000 (23:02 +0300)
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>
Sat, 2 May 2009 21:32:45 +0000 (23:32 +0200)
commitb017ed238008af06e2764e644dee23e72b0847ec
tree30dc9024903cac130c888d64f3d6940acbda6a4f
parent740bae879746875800ccc37e7777a2e842374070
Document that XS_VERSION_BOOTCHECK may break if $VERSION is a long enough NV

As seen in <http://bugs.debian.org/482139>, using a long floating point
number as $VERSION can make XS_VERSION_BOOTCHECK fail because of a loss
of precision in the stringification:

RRDs object version 1.2999070803 does not match bootstrap parameter 1.29990708 at /usr/lib/perl/5.10/DynaLoader.pm line 219.

The mismatch happens in Perl_upg_version(), which converts a double value
(NV) to a string with nine decimals but leaves a string value intact.

Using a string as $VERSION works fine:

-$VERSION=1.299907080300;
+$VERSION="1.299907080300";

so recommend this in the VERSIONCHECK entry of perlxs.pod.
pod/perlxs.pod