Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么GHC的Macports包要花这么长时间编译?_Macos_Haskell_Macports_Ghc - Fatal编程技术网

Macos 为什么GHC的Macports包要花这么长时间编译?

Macos 为什么GHC的Macports包要花这么长时间编译?,macos,haskell,macports,ghc,Macos,Haskell,Macports,Ghc,为什么?有一个引导过程和编译真正的编译器过程,但是哪个部分消耗的时间最多?一些构建过程需要相当长的时间,并且时间量很大程度上取决于CPU的速度和用于构建的处理器时间 如果您担心它可能在某一点挂起,请使用-v标志运行install,以获得与构建过程相关的更多描述性输出。因此,该命令类似于: sudo port -v install [portfile] 这可能需要一段时间。当我在iBookG4上编译它时,耗时长达7小时。即使在拥有大量RAM和快速处理器的MacBook Pro上,也可能需要2-3

为什么?有一个引导过程和编译真正的编译器过程,但是哪个部分消耗的时间最多?

一些构建过程需要相当长的时间,并且时间量很大程度上取决于CPU的速度和用于构建的处理器时间

如果您担心它可能在某一点挂起,请使用
-v
标志运行
install
,以获得与构建过程相关的更多描述性输出。因此,该命令类似于:

sudo port -v install [portfile]

这可能需要一段时间。当我在iBookG4上编译它时,耗时长达7小时。即使在拥有大量RAM和快速处理器的MacBook Pro上,也可能需要2-3个小时。

构建GHC以永远花费时间而臭名昭著。我听过一些恐怖的故事,说它从源代码构建需要8个多小时。据我所知,这主要是因为GHC的默认构建试图进行大量优化,以提高自身的运行时性能。即使使用部分预构建的系统(我相信macports提供了这一功能),由于所有链接,此过程仍可能需要一段时间

编辑:请参见以下内容
从Gentoo的角度来看:

在Gentoo中,所有内容都经过编译。我们为GHC所做的是,美国开发人员(包括像我这样的非官方开发人员)从旧版本编译GHC的新版本,以创建二进制引导版本,然后打包,让用户使用该版本编译新版本

从内存来看,编译二进制文件可能需要两倍多的时间(在我的笔记本电脑上使用二进制文件编译新版本大约需要45分钟)。有一些差异(文档是与二进制文件一起构建和发布的,而不是每个用户自己构建的),但我看不出有什么可以解释如此大的时间差异。可在此处找到用于构建二进制文件和最终用户的实际ebuild(启用ghcbootstrap标志意味着它构建二进制文件,启用二进制标志意味着用户安装和使用预构建的二进制文件,而不是自己构建GHC):


因此,我的猜测是,如果Macports确实在构建初始引导二进制文件,那么初始引导过程需要很长时间(特别是如果它是从上一个C-only版本开始构建的,并且引导到您实际想要安装的版本).

您知道您可以下载一个预构建的编译器和一组OS X库吗?我知道预构建的versioni和Macports之间存在互操作问题。好的,我不需要Macports中任何与Haskell相关的内容。平台安装工和阴谋集团已经够了,你没听说吗?计算机现在是如此之快,以至于编译器的速度不再重要了。@Tim Robinson:奇怪。对我来说,“Haskell平台”的系统不起作用。看看这个项目有多大,有多复杂,盒子使用的是什么类型的硬盘,等等。对吧?我说的很笼统,但当然是项目的大小,文件的数量,使用的编译器/构建工具,依赖项的数量,读/写速度,这是唯一一个至少尝试回答这个问题的回答。这是正确的回答:GHC比我所知道的任何软件都需要更长的编译时间。我已经在i3上构建了8个多小时。