2013-06-04 11 views
5

Czy istnieje maksymalna liczba modułów, które można skompilować za pomocą Cabal/via GHC?Czy istnieje maksymalna liczba modułów, które można skompilować za pomocą Cabal?

Mam raczej duży projekt (wiele modułów generowanych automatycznie), który nie kompiluje się za pomocą cabal, ale nie pojawia się komunikat o błędzie. Cabal po cichu wychodzi z exit code 127 (Mac OS X, zdarza się w 10.6 i 10.8, tylko te 2 testowane platformy, GHC 7.4.2).

EDIT Wyjście cabal build -v3:

>>> cabal build -v3 
Using internal setup method with build-type Simple and args: 
["build","--verbose=3"] 
creating dist/build 
creating dist/build/autogen 
Building java-bindings-1.0... 
Preprocessing library java-bindings-1.0... 
Building library... 
creating dist/build 
("/usr/bin/ghc",["--make","-package-name","java-bindings-1.0","-v","-hide-all-packages","-fbuilding-cabal-package","-i","-idist/build","-i.","-idist/build/autogen","-Idist/build/autogen","-Idist/build","-optP-include","-optPdist/build/autogen/cabal_macros.h","-odir","dist/build","-hidir","dist/build","-stubdir","dist/build","-package-id","base-4.5.1.0-81d626fb996bc7e140a3fd4481b338cd","-package-id","java-bridge-0.20130602-5cb59a7e71733b25cf4b8a8ae649598b","-O","-XHaskell98","Java.Applet", (references to the other modules) 
/usr/bin/ghc returned ExitFailure 127 

Teraz widzę, że wyjście Uważam, że może to liczba argumentów wiersza poleceń, które są przekazywane do ghc - Uważam, że jest to maksymalna długość nałożone przez system operacyjny ... Czy istnieje sposób na obejście tego ograniczenia?

+2

Co się stanie, jeśli uruchomisz 'cabal' z wyższym poziomem gadatliwości (np.' -v3')? –

+0

Nie sądzę, że jest jakikolwiek limit. Co więcej, tylko dla odniesienia i porównania, jak duży jest twój projekt? – Laar

+0

~ 6800 modułów, ale kończy się niepowodzeniem z 2500 już. Jest to powiązanie ze standardową biblioteką Java SE 6, nad którą pracuję. Zawiera 3400 klas, a każda klasa daje dwa moduły. – scravy

Odpowiedz

2

Tak - system operacyjny ogranicza długość wiersza poleceń, który jest używany wewnętrznie do końcowego etapu łączenia.

Nie jestem pewien, co zasugerować tutaj, poza zgłoszeniem błędu w stosunku do Cabala i być może próbuje go naprawić samodzielnie. Kod Cabal jest całkiem czytelny, jeśli pójdziesz tą drogą. :)

+0

Czy wiesz, ile te ograniczenia dotyczą systemu Mac OS X 10.8/Debian 7? – scravy

Powiązane problemy