2013-06-04 29 views
5

Có số mô-đun tối đa có thể được biên dịch qua Cabal/qua GHC không?Có số mô-đun tối đa có thể được biên dịch qua Cabal không?

Tôi có một dự án khá lớn (nhiều mô-đun được tạo tự động) không biên dịch bằng cabal nhưng không xuất hiện thông báo lỗi. Cabal chỉ lặng lẽ thoát ra với exit code 127 (Mac OS X, xảy ra ở 10.6 và 10.8, chỉ có 2 nền tảng được thử nghiệm; GHC 7.4.2).

EDIT Sản lượng 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 

Bây giờ tôi thấy rằng sản lượng Tôi tin rằng nó có thể là số đối số dòng lệnh đang được truyền cho GHC - Tôi tin rằng có một chiều dài tối đa áp bởi hệ điều hành ... Có cách nào để vượt qua giới hạn này không?

+2

Điều gì sẽ xảy ra nếu bạn chạy 'cabal' với mức độ độ dài cao hơn (ví dụ:' -v3')? –

+0

Tôi không nghĩ rằng có bất kỳ giới hạn nào. Hơn nữa chỉ để tham khảo và so sánh như thế nào lớn là bạn dự án? – Laar

+0

~ 6800 mô-đun, nhưng không thành công với 2500. Nó là một ràng buộc đối với thư viện chuẩn Java SE 6 mà tôi đang làm việc. Nó chứa 3400 lớp và mỗi lớp dẫn đến hai mô-đun. – scravy

Trả lời

2

Có - hệ điều hành đặt giới hạn về độ dài của dòng lệnh, được sử dụng nội bộ cho bước liên kết cuối cùng.

Tôi không chắc chắn nên đề xuất gì ở đây, ngoài việc báo cáo lỗi chống lại Cabal và có thể tự mình sửa lỗi. Cabal của mã là khá dễ đọc, nếu bạn đi con đường đó. :)

+0

Bạn có biết các giới hạn này dành cho Mac OS X 10.8/Debian 7 không? – scravy

Các vấn đề liên quan