为什么GHC难以编译?

时间:2013-01-07 23:48:17

标签: haskell ghc

我正在尝试在Solaris上编译最新版本的GHC(例如,7.4或7.6),使用6.12.1二进制文件进行编译。但是,我注意到GHC需要一个精确的GCC版本4.1.2来编译自己,以及许多其他requirements

为什么建立GHC的先决条件如此严格? Haskell是如此强大,我无法想象很多不能用纯Haskell编写的,那么为什么GHC需要一个C编译器来编译自己呢?有没有我只能用Haskell编译器编译的GHC版本?请注意,我不需要它来生成高度优化的代码,即使只是让GHCi工作也没问题。

1 个答案:

答案 0 :(得分:5)

GHC的Haskell编译器本身是用Haskell编写的,因此您可以(并且必须)使用Haskell编译器对其进行编译。事实上,我相信你实际上需要GHC来编译它,但是正如你所尝试的那样,你可能发现自举过程为你做了所有这些。

但是,还有一个运行时系统(RTS),用C语言编写。要编译它,你需要一个C编译器。