[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


There are really two uses for Software-Type, Software-Version,
Machine-Type, and Machine-Version.  The more common use is so that a
Lisp user can precisely identify exactly what configuration he is
running on.  This is especially useful in reporting bugs, reporting
benchmarks, etc.  In an environment with many machines and many Lisp
versions, it is very difficult for the maintainers to do anything when a
bug report comes in without this precise information.  For this purpose,
all that is required is that the information be precise, unambigious,
and human-readable.

The other use is in portable programs that may want to adjust their
behavior according to the kind of environment in which they are running.
The way a certain display is set up, for example, might be different
according the machine type, the machine version, the operating system
type, and the operating system version.  It would be useful for the
version calls to return numbers in this case, rather than strings, so
that Lisp code could say things like 

(if (> (software-version) 100)

However, it was observed that the use of a number here is not general
enough to handle all the different version-numberins schemes used by
diferent manufacturers.  Some use fixnums, some use numbers like 1.5 and
4.2, some use letter-number combinations like G12b, some use name-number
combiantions, like "internal 27.3".  The real problem is that software
releases are often not linearly ordered, but form a complex lattice,
with some version being split off, developing independently through
several versions, and then being merged back into the mainstream.

So we felt that a call like this, to be universal, has to return an
aribtrary string that the user can examine and that software can compare
in a system-specific way.  If a given system uses a simple integer
numbering scheme, the user can just call Parse-Integer to get the
numerical value.

-- Scott