As of GHC version 6.8, we have adopted the following policy for numbering GHC versions:
Stable branches are numbered , where
x.yy is even.
Releases on the stable branch are numbered x.y, where
x.y.zz (>= 1) is the patchlevel number.
Patchlevels are bug-fix releases only, and never
change the programmer interface to any system-supplied code.
However, if you install a new patchlevel over an old one you
will need to recompile any code that was compiled against the
old libraries.
The value of __GLASGOW_HASKELL__
(see Section 4.12.3, “Options affecting the C pre-processor”) for a major release
is the integer x.y.zxyy (if
y is a single digit, then a leading zero
is added, so for example in version 6.8.2 of GHC we would have
__GLASGOW_HASKELL__==608).
We may make snapshot releases of the current stable branch available for download, and the latest sources are available from the git repositories.
Stable snapshot releases are named
.
where x.y.z.YYYYMMDD is the date of the sources
from which the snapshot was built, and YYYYMMDD is the next release to be made on that branch.
For example, x.y.z+16.8.1.20040225 would be a
snapshot of the 6.8 branch during the development
of 6.8.2.
The value of __GLASGOW_HASKELL__
for a snapshot release is the integer
xyy. You should never write any
conditional code which tests for this value, however: since
interfaces change on a day-to-day basis, and we don't have
finer granularity in the values of
__GLASGOW_HASKELL__, you should only
conditionally compile using predicates which test whether
__GLASGOW_HASKELL__ is equal to, later
than, or earlier than a given major release.
We may make snapshot releases of the HEAD available for download, and the latest sources are available from the git repositories.
Unstable snapshot releases are named
.
where x.y.YYYYMMDD is the date of the sources
from which the snapshot was built.
For example, YYYYMMDD6.7.20040225 would be a
snapshot of the HEAD before the creation of the
6.8 branch.
The value of __GLASGOW_HASKELL__
for a snapshot release is the integer
xyy. You should never write any
conditional code which tests for this value, however: since
interfaces change on a day-to-day basis, and we don't have
finer granularity in the values of
__GLASGOW_HASKELL__, you should only
conditionally compile using predicates which test whether
__GLASGOW_HASKELL__ is equal to, later
than, or earlier than a given major release.
The version number of your copy of GHC can be found by
invoking ghc with the
--version flag (see Section 4.6, “Verbosity options”).