Andreas J. Koenig wrote:
> > > >     The problem I had is that my META.yml (generated by M::B 0.26)
> > > >     had version numbers of the form "2.004000", which is
> > > >     numerically correct, but in the new version.pm regime sorts
> > > >     between v2.3999 and v2.4001, as opposed to between v2.3.0 and
> > > >     v2.4.1 (as it was intended by me).
> > >
> > > You seem to mean "v2.004000", not "2.004000". The latter is a
> > > floating point number, the former a v-string.
> > 
> > I know.  But I actually did have "2.004000", not "v2.004000", in
> > META.yml as generated by M::B 0.26.
>
> But what you are saying is that "2.004000" sorts between v2.3999 and
> v2.4001, right? Can you please show us the code that backs this claim?

You're right.  I thought it might have been _interpreted_ as "v2.004000"
despite only reading "2.004000" in META.yml, but that can't be it:

  $ perl -Mversion -le 'print(qv('2.004000') > qv('2.004') ? "yes" : "no")'
  no

> > What's the rationale for treating 1.0 differently from 1.00?  I mean,
> > we're talking about version numbers, not dictionaries.
>
> The rationale is that if two version strings are written differently,
> then there must apparently be a version difference that shall be
> visible and not be swept under the carpet.
>
> > Anyways, considering what you're saying, why does CPAN.pm 1.7602
> > treat 2.004000 (from META.yml on CPAN) as being _equal_or_lower_
> > than the installed qv('2.004')?  (Remember, `r` in older CPANs
> > doesn't complain about an out-of-date Mail::SPF, whereas in newer
> > CPANs it does!)
>
> I'm not sure it does. I tried current bleadperl with 1.7601 and it did
> not bahave as you claim:
> [...]

With Perl 5.8.8, CPAN 1.7602, and version.pm 0.68:

| $ cpan
| Terminal does not support AddHistory.
| 
| cpan shell -- CPAN exploration and modules installation (v1.7602)
| ReadLine support available (try 'install Bundle::CPAN')
| 
| cpan> r Mail::SPF
| CPAN: Storable loaded ok
| Going to read /home/julian/.cpan/Metadata
|   Database was generated on Tue, 22 May 2007 00:54:54 GMT
| All modules are up to date for Mail::SPF
| 1 installed module has a version number of 0

Though:

| $ perl -MCPAN -le 'print $CPAN::VERSION; print 
CPAN::Version->vcmp("v2.004","2.004000");'
| 1.7602
| -1

What's going on here??

> > > The above equation does not represent CPAN.pm behaviour. 2.004000 is
> > > very far away from v2.4000. Every float below 3 is treated smaller
> > > than v2.1000 because the maximum a floating point number below 3 can
> > > reach, when converted to a v-string, is 2.999.999.999....
> > 
> > Are you saying that, from CPAN's PoV, v2.1000 > 3?  You can't be
> > serious!
>
> Please read my sentence again. Note that there is the word "below"
> somewhere. Twice.

Oops.  Thanks for the heads-up.  I shouldn't be having conversations this
complex at 03:00 AM.  Sorry.

Attachment: pgpA713D4rmSB.pgp
Description: PGP signature

Reply via email to