Re: Dev version numbers, warnings, XS and MakeMaker dont play nicely together.

[email protected] (John Peacock)
Newsgroups perl.qa,perl.perl5.porters,perl.makemaker
Message-ID <[email protected]>
demerphq wrote:
>>>   $VERSION = "1.12_01";
>>>   $XS_VERSION = $VERSION; # only needed if you have XS code
>>>   $VERSION = eval $VERSION;
> 
> im not convinced this actually does anything. ISTR i had to roll my
> own "parse out the $XS_VERSION code" thingee for DDS.

I;m very onfident that the recommended recipe DTRT.  XS_VERSION_BOOTCHECK used
to do a simplistic strcmp (ARG) prior to version objects being added to the
core.  The issue was always if you didn't explicitly specify an XS_VERSION in
your Perl code, then EU::MM and M::B would be forced to guess, and that could be
disastrous.  Whatever literal string exists in the XS file itself, would be
compared with whatever string representation that EU::MM/M::B would concoct.
Even a trailing zero in the XS file would fail if the $VERSION assignment in the
Perl module wasn't quoted.

In 5.10.0 and forward, XS_VERSION_BOOTCHECK upgrades the requested XS_VERSION
scalar to a version object and compares that against the XS_VERSION in the XS
code (or falls back to the modules $VERSION if that doesn't exist).

John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.