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