The D compiler labels set 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 of the form "x" for a major release, "x.y" for a minor release, or "x.y.z" for a 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 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. For information about nomenclature for interface versions, see attributes(7).
A change in the D programming interface is accompanied by a new version string, indicating a Major, Minor, or Micro release. The release definitions are as follows:
A Major release might contain major feature additions, adhere to different or possibly incompatible Standard revisions, and change, drop, or replace Standard or Stable interfaces. For more information about stability, see DTrace Stability Mechanisms. The initial version of the D programming interface is labeled as version 1.0.
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. For more information, see DTrace Stability Mechanisms.
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.