17.1 Versions and Releases

The D compiler labels sets of types, variables, functions, constants, and translators corresponding to a particular software release using a version string. A version string is a period-delimited sequence of decimal integers that takes one of the following forms:

x

Major release

x.y

Minor release

x.y.z

Micro release

Versions are compared by comparing the integers from left to right. If the leftmost integers are not equal, the string with the greater integer is the greater (and therefore more recent) version. If the leftmost integers are equal, the comparison proceeds to the next integer in order from left to right to determine the result. All unspecified integers in a version string are interpreted as having the value zero during a version comparison.

The DTrace version strings correspond to the standard nomenclature for interface versions. A change in the D programming interface is accompanied by a new version string. Table 17.1, “DTrace Release Versions” summarizes the version strings used by DTrace and the likely significance of the corresponding DTrace software release.

Table 17.1 DTrace Release Versions

Release

Version

Significance

Major

x.0

A Major release is likely to contain major feature additions; adhere to different, possibly incompatible Standard revisions; and though unlikely, could change, drop, or replace Standard or Stable interfaces (see Chapter 15, Stability). The initial version of the D programming interface is labeled as version 1.0.

Minor

x.y

Compared to an x.0 or earlier version (where y is not equal to zero), a new Minor release is likely to contain minor feature additions, compatible Standard and Stable interfaces, possibly incompatible Evolving interfaces, or likely incompatible Unstable interfaces. These changes may include new built-in D types, variables, functions, constants, and translators. In addition, a Minor release may remove support for interfaces previously labeled as Obsolete (see Chapter 15, Stability).

Micro

x.y.z

Micro releases are intended to be interface compatible with the previous release (where z is not equal to zero), but are likely to include bug fixes, performance enhancements, and support for additional hardware.


In general, each new version of the D programming interface will provide a superset of the capabilities offered by the previous version, with the exception of any Obsolete interfaces that have been removed.