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