2010-06-30 66 views
8

爲什麼?有一個引導過程並編譯真正的編譯器過程,但哪個部分消耗的時間最多?爲什麼GHports的Macports包需要很長時間才能編譯?

+4

你知道你可以下載OS X的預編譯器和一組庫嗎? http://hackage.haskell.org/platform/mac.html – 2010-06-30 20:40:43

+0

我知道預構建的versioni和Macports之間存在互操作問題。 – hampurter 2010-06-30 20:56:13

+0

好吧,我從Macports沒有需要任何與Haskell相關的東西。平臺安裝程序和Cabal已經足夠。 – 2010-06-30 21:32:41

回答

2

一些構建過程需要相當長一段時間,時間的量你的CPU的速度和多少處理器時間在很大程度上取決於能致力於構建。

如果您擔心它可能掛在某個點上,請使用-v標誌運行install以獲取與構建過程相關的更多描述性輸出。該命令因此會是這樣的:

sudo port -v install [portfile] 
+1

以及如何龐大和複雜的項目,這個盒子是用什麼類型的硬盤驅動器等 – NotMe 2010-06-30 21:26:48

+0

右鍵 - 我被相當一般,但當然項目的大小,文件數量,編譯器/編譯實用程序的使用情況,依賴關係的數量,讀/寫速度等都會影響所需的時間長度。 – nearlymonolith 2010-07-01 15:28:26

3

它可能需要一段時間。當我用我的iBook G4編譯它時,它花了長達7個小時。即使在擁有大量RAM和快速處理器的MacBook Pro上,也可能需要2-3個小時。

4

大廈GHC是臭名昭著的到永遠。我聽說有關它從一個源代碼構建花費超過8個小時的恐怖故事。據我瞭解,這主要是由於GHC的默認構建嘗試進行大量優化以加速其運行時性能。即使使用部分預先構建的系統(這是我相信macports提供的),但由於所有鏈接,此過程仍需要一段時間。

編輯:請參閱下面的 http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly

+0

這是正確的答案:GHC花費更長的時間編譯我所知道的任何軟件。我已經在i3上製作了8個多小時。 – Mikhail 2013-05-20 20:48:36

9

從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-只發布這樣引導的方式到版本你實際上想要安裝)。

+0

這是至少嘗試回答問題的唯一回應。 – 2011-07-19 04:31:42

相關問題