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 本身来编译它,但正如您所尝试的那样,您可能会发现引导过程为您完成了所有这些工作。

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

于 2013-01-08T00:21:17.280 回答