2010-06-30 10 views
8

Ve neden? Bir bootstrap süreci var ve gerçek derleyici sürecini derliyor, ama hangi bölüm en çok zaman harcıyor?Macports GHC paketi neden bu kadar uzun sürüyor?

+4

OS X için önceden oluşturulmuş bir derleyiciyi ve kitaplık kümesini indirebileceğinizi biliyor musunuz? http://hackage.haskell.org/platform/mac.html –

+0

Ben önceden oluşturulmuş sonraki versiyonları ve MacPorts arasındaki birlikte çalışma ile sorunlar var anlıyoruz. – hampurter

+0

Tamam, Macports'dan Haskell ile ilgili hiçbir şeye ihtiyacım yok. Platform yükleyici ve Cabal yeterli oldu. –

cevap

2

Bazı inşa süreçleri uzunca bir süre alabilir ve zamanın miktarı yapı ayrılacaktır edebilirsiniz CPU hızı ve ne kadar işlemci zamanı kuvvetlice bağlıdır.

Belirli bir noktada asılı olabileceğinden endişe ediyorsanız, oluşturma işlemiyle ilgili daha açıklayıcı çıktı elde etmek için -v işaretiyle install işaretini çalıştırın. Komut şu şekilde olacaktır:

sudo port -v install [portfile] 
+1

Projenin ne kadar büyük ve karmaşık olduğunun yanı sıra, ne tür bir sabit diskin kullandığı vb. – NotMe

+0

Doğru - Ben oldukça genel, ancak elbette projenin büyüklüğü, hangi derleyici/derleme yardımcı programının kullanıldığı dosya sayısı, bağımlılık sayısı, okuma/yazma hızı, vb. hepsi gereken sürenin uzunluğuna katkıda bulunur. – nearlymonolith

3

Biraz zaman alabilir. Bunu iBook G4'ümde derlediğimde 7 saat kadar sürdü. Bol miktarda RAM ve hızlı bir işlemci ile MacBook Pro'da bile 2-3 saat sürebilir.

4

Yapı GHC sonsuza alarak tanınıyor. Kaynak oluşturma için 8 saati aşan korku hikayeleri duydum. Anladığım kadarıyla, temel olarak, GHC'nin varsayılan yapısının kendi çalışma zamanı performansını hızlandırmak için büyük miktarlarda optimizasyon yapmaya çalıştığı gerçeğinden kaynaklanıyor. Kısmen önceden oluşturulmuş bir sistemle (Macports'un sağladığına inanıyorum) bile, bu süreç hala tüm bağlantılardan dolayı biraz zaman alabilir.

DÜZENLEME: Gentoo'da

, her şey derlenmektedir: Gentoo açısından bakıldığında http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquickly

+0

Doğru yanıt budur: Bildiğim herhangi bir yazılımı derlemek daha uzun süren GHC. I3'üm üzerinde 8 saatten fazla süredir yapıyorum. – Mikhail

9

aşağıdakilere bakın. Ne ghc için ne (benim gibi gayri resmi bulunan geliştiriciler dahil) bize Devs bir ikili önyükleme sürümünü oluşturmak için bir eski den ghc yeni bir sürümünü derlemek ve sonra o kadar paketi ve kullanıcıların bir yeni bir sürüm derlemek için o kullanmasına izin olmasıdır. hafızasından

, ikili derleme (benim laptop yeni bir sürümünü derlemek için ikili kullanmak için yaklaşık 45 dakika sürer) iki kat daha uzun uzun sürebilmektedir. Bazı farklılıklar vardır (belgeler, kendisini inşa eden her kullanıcı yerine ikili ile oluşturulup gönderilir) ancak bu kadar büyük bir zaman farkını hesaba katmak için göremediğim hiçbir şey yoktur. Hem ikili hem de son kullanıcıları oluşturmak için kullanılan asıl ebuild burada bulunabilir (ghcbootstrap bayrağının bir ikili oluşturduğu anlamına gelir, bu da ikili bayrağın kullanıcıların GHC'yi inşa etmekten ziyade önceden oluşturulmuş binary'yi kurması ve kullanması anlamına gelir): http://code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild

Bu nedenle, Macports gerçekten önyükleme önyükleme ikili oluşturuyorsa, bu uzun süren ilk önyükleme işleminin gerçekleştirilmesidir (özellikle de son C-sürümünden çıkarsa ve sürümüne kadar önyükleme yapıyorsa) aslında yüklemek istiyorum).

+0

Bu, en azından soruyu cevaplamayı deneyen tek yanıttır. –