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.

Reply via email to