为什么?有一个引导过程并编译真正的编译器进程,但哪个部分消耗的时间最多?
从Gentoo的角度来看:
在Gentoo中,一切都在编译.我们为GHC做的是我们开发人员(包括像我这样的非官方开发人员)从较旧版本编译GHC的新版本以创建二进制自举版本,然后将其打包并让用户使用该版本来编译新版本.
从内存中,编译二进制文件可能需要两倍多的时间(使用二进制文件在我的笔记本电脑上编译新版本大约需要45分钟).存在一些差异(文档是使用二进制文件构建和提供的,而不是每个用户自己构建它们)但是我没有看到任何可以解释如此大的时间差异的文档.用于构建二进制和最终用户的实际ebuild可以在这里找到(启用ghcbootstrap标志意味着它构建二进制文件,启用二进制标志意味着用户安装并使用预构建的二进制文件而不是自己构建GHC):http: //code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild
因此,我的猜测是,如果Macports确实正在构建一个初始引导二进制文件,那么这是最初的引导过程需要很长时间(特别是如果它是从最后一个C-only版本开始并且自行引导到你实际想要的版本的话.安装).