GHCのバージョン番号付け規則

GHCバージョン6.8以降、GHCのバージョン番号を割り当てるのに我々は次のような規則を採用している。

安定版リリース

安定版ブランチにはx.yと振られる。ここで、y偶数である。安定版ブランチx.yにおけるリリースにはx.y.zと振られ、ここでz(>=1)はパッチレベルの番号である。パッチレベルのリリースはバグ修正のみで、システム供給のコードへのプログラマ用インタフェースが変更されることはない。ただし、新しいパッチレベルリリースを古いリリースに上書きインストールした場合、古いライブラリに対してコンパイルされたコードは全てコンパイルし直さなければならない。

メジャーリリースx.y.zでは、__GLASGOW_HASKELL__(4.11.3. Cプリプロセッサに影響するオプションを参照)の値は整数xyy(もしyが一桁の数値なら、前に0が追加される。例えば、GHCバージョン6.8.2では、__GLASGOW_HASKELL__==608)である。

安定版スナップショット

現在の安定版ブランチのスナップショットリリースをダウンロード可能にすることがあるかもしれない。また、最新のソースはdarcsリポジトリから入手可能である。

安定版スナップショットリリースはx.y.z.YYYYMMDDと名付けられる。ただし、YYYYMMDDはスナップショットのビルドに使われたソースの日付であり、x.y.z+1がそのブランチで次に行われるべきリリースである。例えば、6.8.1.20040225なら、6.8.2の開発中における6.8ブランチのスナップショットになる。

スナップショットリリースにおける__GLASGOW_HASKELL__の値は、整数xyyである。しかし、この値をテストする条件コードを書くべきではない。インタフェースは毎日のレベルで変わり、しかも__GLASGOW_HASKELL__ではより細かい精度の値を表せないから、__GLASGOW_HASKELL__の値をテストするなら、メジャーリリースの番号との間での大小・等値比較のみを行うべきである。

不安定版スナップショット

HEADのスナップショットリリースをダウンロード可能にすることがあるかもしれない。また、最新のソースはdarcsリポジトリから入手可能である。

不安定版スナップショットリリースはx.y.YYYYMMDDと名付けられる。ただし、YYYYMMDDはスナップショットのビルドに使われたソースの日付である。例えば、6.7.20040225なら、6.8ブランチを作る前のHEADのスナップショットになる。

スナップショットリリースにおける__GLASGOW_HASKELL__の値は、整数xyyである。しかし、この値をテストする条件コードを書くべきではない。インタフェースは毎日のレベルで変わり、しかも__GLASGOW_HASKELL__ではより細かい精度の値を表せないから、__GLASGOW_HASKELL__の値をテストするなら、メジャーリリースの番号との間での大小・等値比較のみを行うべきである。

あなたの手元のGHCのバージョン番号は、ghc--versionフラグ(4.6. ヘルプと多弁さに関するオプションを見よ)つきで起動することで知ることができる。