.. sources:

    `<https://info.ravenbrook.com/project/mps/master/design/version/>`_

.. mps:prefix:: design.mps.version

Software versions
=================


Introduction
------------

:mps:tag:`intro` This is the design of the support in the MPS for
describing and inspecting versions.


History
-------

:mps:tag:`hist.0` Incomplete document. David Jones, 1998-08-19.

:mps:tag:`hist.1` Converted from MMInfo database design document.
Richard Brooksby, 2002-06-07.

:mps:tag:`hist.2` Converted to reStructuredText. Gareth Rees,
2013-03-11.


Overview
--------

:mps:tag:`overview` There are three different sorts of version under
consideration:

1. versions of the (MPS) library used (linked with);

2. versions of the interface used (header files in C) when compiling
   the client's program; and

3. versions of the documentation used when the client was writing the
   program.

There are issues of programmatic and human access to these versions.

:mps:tag:`overview.split` The design is split accordingly. See
:mps:ref:`design.mps.version-library` for the design of a system for
determining the version of the library one is using. And other
non-existent documents for the others.