John Peacock wrote:
> version.pm is not a dual-life module. The functionality provided by the CPAN
> release is compatible to the core version object functionality in 5.9.x. The
> XS
> code in the CPAN release is a replica of the C code in util.c and universal.c
> in
> bleadperl. It isn't possible to do it otherwise, because UNIVERSAL::VERSION
> must work without 'use version' being called. The core *has* to support
> native
> version objects without loading any module, hence there is nothing to install
> from the CPAN release.
Why can't it load version.pm behind the scenes rather than duplicating it in
universal.c? (I realize I'm probably opening a can of well sealed worms)
> I just committed code like this:
>
> my $hash = $_[1];
> + if ( $] >= 5.009001 ) { # included in bleadperl
> + $hash->{'PM'} = {};
> + $hash->{'MAN3PODS'} = {};
> + return $hash;
> + }
>
> which neuters the Makefile.PL for bleadperl only. 0.69_03 is winding its way
> through CPAN mirrors as we speak...
That should do it as far as making the install process neuter. It'll still run
the tests though.
The idea of having a CPAN module which cannot upgrade the core version makes my
feet itch. It sounds like it means going back to the old days where the only
way to upgrade a module is to upgrade Perl. The version.pm situation makes it
even more absurd because it sounds like you have the potential for a newer CPAN
version to be installed onto an older Perl (without version.pm built in). Thus
I could install the latest and greatest CPAN version.pm 2.13 onto 5.8.8 but
with 5.10 I'll be stuck with 0.70 forever.
Stop me if this isn't the case.