2013-06-04 1 views
5

Есть ли максимальное количество модулей, которые могут быть скомпилированы через Cabal/via GHC?Есть ли максимальное количество модулей, которые могут быть скомпилированы через Cabal?

У меня есть довольно большой проект (многие автоматически сгенерированные модули), который не скомпилируется с помощью cabal, но не появляется сообщение об ошибке. Кабал просто молча выходит с exit code 127 (Mac OS X, происходит в 10.6 и 10.8, тестируются только эти 2 платформы, GHC 7.4.2).

EDIT Выход 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 

Теперь, когда я вижу, что вывод я считаю, что, может быть, это количество аргументов командной строки, передается в GHC - Я считаю, что максимальная длина наложены операционной системой ... Есть ли способ обойти это ограничение?

+2

Что произойдет, если вы запустите 'cabal' с более высоким уровнем детализации (например,' -v3')? –

+0

Я не думаю, что есть какой-то предел. Кроме того, только для справки и сравнения, насколько большой проект? – Laar

+0

~ 6800 модулей, но он не справляется с 2500 уже. Это привязка к стандартной библиотеке Java SE 6, над которой я работаю. Он содержит 3400 классов, и каждый класс имеет два модуля. – scravy

ответ

2

Да - операционная система ограничивает длину командной строки, которая используется для окончательного этапа соединения.

Я не уверен, что предложить здесь, кроме сообщения об ошибке с Cabal и, возможно, попытаться исправить это самостоятельно. Код Cabal довольно читабельен, если вы идете по этому маршруту. :)

+0

Знаете ли вы, насколько эти ограничения для Mac OS X 10.8/Debian 7? – scravy

 Смежные вопросы

  • Нет связанных вопросов^_^