[Haskell-cafe] RE: [Haskell] Re: Trying to install binary-0.4
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Tue Oct 16 10:01:56 EDT 2007
On Oct 16, 2007, at 9:01 , Bayley, Alistair wrote:
>> From: Simon Marlow [mailto:simonmarhaskell at gmail.com]
>> The lexicographical ordering would make 10.0 > 9.3. In
>> general, A.B > C.D
>> iff A > C or A == C && B > D. When we say the "latest"
>> version we mean
>> "greatest", implying that version numbers increase with time.
>> Does that help?
> Sort of. It's what I'd expect from a sensible version comparison. It's
> just not something I'd ever choose to call lexicographic ordering.
> lexicographgic ordering is a basic string comparision so e.g.
> max "10.0" "9.3" = "9.3"
> I'd call what you're doing numeric ordering. Does it have a better
> like version-number-ordering, or section-number-ordering (e.g. Section
> 3.2.5, Section 3.2.6)?
"Lexicographic ordering", to me, means ordering by the collation
sequence for individual characters. I'd call this multi-field
numeric ordering with "." as the field separator.
"Version number ordering" is a bit trickier: it's used by Linux/*BSD
package systems that need to deal with versions like
"1.2a3_4,1" (which in FreeBSD means package version 1.2a3 (which is
defined by the package originator and usually means the alpha-3
release of version 1.2), FreeBSD package version 4 thereof, with an
epoch of 1 to force higher sorting because at some point a new
version was retracted (say, 1.2a4 was packaged, then turned out to
have major bugs that caused a rollback to 1.2a3, so the epoch is
bumped to indicate that this 1.2a3 is actually later than the
1.2a4). RPM and APT have similar mechanisms, although syntactically
(I don't *think* we need to care about this. Unfortunately, while
Cabal version numbers are fairly clearly only the upstream part of
it, and defined such that we don't need to determine whether 1.2a4
sorts before or after 1.2 (a rat's nest pretty much every OS
distribution packaging system needs to fight with), I can imagine
Hackage needing something like an epoch to handle regressions while
allowing cabal-install to do the right thing.)
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
More information about the Haskell-Cafe