Skip Menu |

This queue is for tickets about the version CPAN distribution.

Report information
The Basics
Id: 107891
Status: resolved
Priority: 0/
Queue: version

People
Owner: Nobody in particular
Requestors: BULKDD [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.9912
Fixed in: (no value)



Subject: version::vpp is not pure perl
version::vpp is used by EUMM https://metacpan.org/source/BINGOS/ExtUtils-MakeMaker-7.10/lib/ExtUtils/MakeMaker/version/vpp.pm if the regular version module is unloadable or not installed https://metacpan.org/source/BINGOS/ExtUtils-MakeMaker-7.10/lib/ExtUtils/MakeMaker/version.pm but version::vpp is not "pure perl" it uses a bunch of XS modules including POSIX:: and B::. This causes building problems when version::vpp is loaded on miniperl that doesn't have DynaLoader. So why does version::vpp even exist if it requires atleast 2 working XS modules written in C? Its name is a lie. Example below --------------------------------------------- C:\sources\version-0.9912>perl -Iblib/lib -e"undef(*DynaLoader::boot_DynaLoader) ; require version::vpp;" Can't load module Fcntl, dynamic loading not available in this perl. (You may need to build a new perl executable which either supports dynamic loading or has the Fcntl module statically linked into it.) at C:/p523/lib/POSIX.pm line 17. Compilation failed in require at C:/p523/lib/POSIX.pm line 17. BEGIN failed--compilation aborted at C:/p523/lib/POSIX.pm line 17. Compilation failed in require at blib/lib/version/vpp.pm line 686. BEGIN failed--compilation aborted at blib/lib/version/vpp.pm line 686. Compilation failed in require at -e line 1. C:\sources\version-0.9912> --------------------------------------------- This ticket is related to http://www.nntp.perl.org/group/perl.perl5.porters/2015/10/msg231903.html http://www.nntp.perl.org/group/perl.perl5.porters/2015/10/msg232039.html
version::pp relies on an installed Perl to function. B and POSIX may both be XS modules, but they ship with Perl itself. And miniperl contains a perfectly functional version implementation: $ ./miniperl -e 'print version->new(1.2.3)' v1.2.3 If EU::MM is having problems during bootstrapping Perl itself, that is where this needs to be fixed. If you really wanted to produce a patch to version::pp that degrades more elegantly when B and POSIX are not available, I'd certainly consider it. But I don't think this is version's problem. John