GHCバージョン6.8以降、GHCのバージョン番号を割り当てるのに我々は次のような規則を採用している。
安定版ブランチにはと振られる。ここで、x.yyは偶数である。安定版ブランチにおけるリリースにはx.yと振られ、ここでx.y.zz(>=1)はパッチレベルの番号である。パッチレベルのリリースはバグ修正のみで、システム供給のコードへのプログラマ用インタフェースが変更されることはない。ただし、新しいパッチレベルリリースを古いリリースに上書きインストールした場合、古いライブラリに対してコンパイルされたコードは全てコンパイルし直さなければならない。
メジャーリリースでは、x.y.z__GLASGOW_HASKELL__(4.12.3. Cプリプロセッサに影響するオプションを参照)の値は整数xyy(もしyが一桁の数値なら、前に0が追加される。例えば、GHCバージョン6.8.2では、__GLASGOW_HASKELL__==608)である。
現在の安定版ブランチのスナップショットリリースをダウンロード可能にすることがあるかもしれない。また、最新のソースはgitリポジトリから入手可能である。
安定版スナップショットリリースはと名付けられる。ただし、x.y.z.YYYYMMDDYYYYMMDDはスナップショットのビルドに使われたソースの日付であり、がそのブランチで次に行われるべきリリースである。例えば、x.y.z+16.8.1.20040225なら、6.8.2の開発中における6.8ブランチのスナップショットになる。
スナップショットリリースにおける__GLASGOW_HASKELL__の値は、整数xyyである。しかし、この値をテストする条件コードを書くべきではない。インタフェースは毎日のレベルで変わり、しかも__GLASGOW_HASKELL__ではより細かい精度の値を表せないから、__GLASGOW_HASKELL__の値をテストするなら、メジャーリリースの番号との間での大小・等値比較のみを行うべきである。
HEADのスナップショットリリースをダウンロード可能にすることがあるかもしれない。また、最新のソースはgitリポジトリから入手可能である。
不安定版スナップショットリリースはと名付けられる。ただし、x.y.YYYYMMDDYYYYMMDDはスナップショットのビルドに使われたソースの日付である。例えば、6.7.20040225なら、6.8ブランチを作る前のHEADのスナップショットになる。
スナップショットリリースにおける__GLASGOW_HASKELL__の値は、整数xyyである。しかし、この値をテストする条件コードを書くべきではない。インタフェースは毎日のレベルで変わり、しかも__GLASGOW_HASKELL__ではより細かい精度の値を表せないから、__GLASGOW_HASKELL__の値をテストするなら、メジャーリリースの番号との間での大小・等値比較のみを行うべきである。
あなたの手元のGHCのバージョン番号は、ghcを--versionフラグ(4.6. 多弁さに関するオプションを見よ)つきで起動することで知ることができる。