Front page | perl.perl5.porters |
Postings from January 2007
Re: New release ?
January 7, 2007 06:05
Re: New release ?
Message ID: 20070107140522.GE65581@xs4all.nl
On Fri, Jan 05, 2007 at 12:39:43PM -0500, John Peacock wrote:
> Rafael Garcia-Suarez wrote:
> >I'm trying to make a list of what needs to be sorted out before a new
> >development release: (5.9.5, which should be feature-equal to 5.10.0)
> I want to release version v1.0.0 before Perl v5.10.0 is cut (and maybe
> before v5.9.5 too), so last call for compatibility concerns. Since
> version objects are by default enabled in the core since v5.9.1(?), I
> want to make damn sure that the compatibility module on CPAN works
> exactly the same. I also want to make sure that the Makefile.PL and
> Build.PL correctly refuse to install the CPAN release under bleadperl
> and v5.10.x.
Perhaps not quite on topic, but I found some things in the CPAN release
of version.pm that make life a bit harder. Since Damian's Perl Best
Practices book, the use fo qv() for version declerations has become more
popular. However, those declarations fail under the regexes that EU::MM,
CPANPLUS and several others use to detect version statements.
This is mostly because qv() isn't a builtin or the 'use version'
statement is not on the same line. We could pre-emptively fix this in
modules like CPANPLUS if we did a 'use version' in those modules.
This would make version.pm a hard prerequisite for those modules.
However, version.pm is an XS module, so bootstrapping it is kind of
hard. It has a pureperl compoment, but that one relies on Scalar::Util
to be installed, which again is XS code. Also, version.pm does not
declare this as a prerequisite, which means on perls < 5.7.3 version.pm
will not run without installing Scalar::Util manually. Also in
environments where no C compiler is present, it's not possible to
bootstrap version.pm and therefor support qv() on all platforms.
If it were possible to rewrite this chunk of version.pm to be really
pure perl all the way, and ideally the rather mean Makefile.PL as well,
that would make installation cross platform, and bootstrapping on
non-C-Compiler systems a lot easier.
Would this be possible, and if so, what would we need to do for this?
 Well, this is technically a white-lie; Module::Load::Conditional
does the version checks, but that's what CPANPLUS uses.
 Used for the 'is V-string' check