Version Number Ordering Systems
Version numbers very quickly evolve from simple integers (1, 2, ...) to rational numbers (2.08, 2.09, 2.10) and then to non-numeric "numbers" such as 4:3.4.3-2. These complex version numbers are therefore better treated as character strings. Operating systems that include package management facilities (such as all non-trivial Linux or BSD distributions) will use a distribution-specific algorithm for comparing version numbers of different software packages. For example, the ordering algorithms of Red Hat and derived distributions differ to those of the Debian-like distributions.
As an example of surprising version number ordering implementation behavior, in Debian, leading zeroes are ignored in chunks, so that 5.0005 and 5.5 are considered as equal, and 5.5<5.0006. This can confuse users; string-matching tools may fail to find a given version number; and this can cause subtle bugs in package management if the programmers use string-indexed data structures such as version-number indexed hash tables.
In order to ease sorting, some software packages will represent each component of the major.minor.release scheme with a fixed width. Perl represents its version numbers as a floating-point number, for example, Perl's 5.8.7 release can also be represented as 5.008007. This allows a theoretical version of 5.8.10 to be represented as 5.008010. Other software packages will pack each segment into a fixed bit width, for example, 5.8.7 could be represented in 24 bits: ( 5 << 16 | 8 << 8 | 7; hexadecimal: 050807; for version 12.34.56 in hexadecimal: 0C2238). The floating-point scheme will break down if any segment of the version number exceeds 1,000; a packed-binary scheme employing 8 bits apiece after 256.
Read more about this topic: Software Versioning
Famous quotes containing the words version, number, ordering and/or systems:
“If the only new thing we have to offer is an improved version of the past, then today can only be inferior to yesterday. Hypnotised by images of the past, we risk losing all capacity for creative change.”
—Robert Hewison (b. 1943)
“This nightmare occupied some ten pages of manuscript and wound off with a sermon so destructive of all hope to non-Presbyterians that it took the first prize. This composition was considered to be the very finest effort of the evening.... It may be remarked, in passing, that the number of compositions in which the word beauteous was over-fondled, and human experience referred to as lifes page, was up to the usual average.”
—Mark Twain [Samuel Langhorne Clemens] (18351910)
“Our goal as a parent is to give life to our childrens learningto instruct, to teach, to help them develop self-disciplinean ordering of the self from the inside, not imposition from the outside. Any technique that does not give life to a childs learning and leave a childs dignity intact cannot be called disciplineit is punishment, no matter what language it is clothed in.”
—Barbara Coloroso (20th century)
“The skylines lit up at dead of night, the air- conditioning systems cooling empty hotels in the desert and artificial light in the middle of the day all have something both demented and admirable about them. The mindless luxury of a rich civilization, and yet of a civilization perhaps as scared to see the lights go out as was the hunter in his primitive night.”
—Jean Baudrillard (b. 1929)