1

SolarisでGHCの最新バージョン(たとえば、7.4または7.6)をコンパイルし、6.12.1バイナリを使用してコンパイルしようとしています。ただし、GHCがそれ自体をコンパイルするには、正確なGCCバージョンの4.1.2が必要であることに気づきました。また、他の多くの要件もあります。

GHCを構築するための前提条件が非常に厳しいのはなぜですか?Haskellは非常に強力なので、純粋なHaskellで記述できないことは想像できません。それでは、なぜGHCはそれ自体をコンパイルするためにCコンパイラを必要とするのでしょうか。HaskellコンパイラだけでコンパイルできるGHCのバージョンはありますか?高度に最適化されたコードを生成するためにそれを必要としないことに注意してください。GHCiを機能させるだけでも問題ありません。

4

1 に答える 1

5

GHC の Haskell コンパイラ自体は Haskell で書かれているため、Haskell コンパイラを使用してコンパイルできます (そしてコンパイルする必要があります)。実際、それをコンパイルするには GHC 自体が実際に必要であると私は信じています。

ただし、C で記述されたランタイム システム (RTS) もあります。これをコンパイルするには、C コンパイラが必要です。

于 2013-01-08T00:21:17.280 に答える