Giả sử tôi không có chương trình HsColour cài đặt và tôi cài đặt QuickCheckTại sao sự hiện diện/vắng mặt của các lực nhị phân HsColour để biên dịch lại thư viện QuickCheck?
$ cd /tmp/
$ cabal get QuickCheck
$ cd QuickCheck
$ cabal install
...
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
...
Installed QuickCheck-2.7.6
Nếu tôi cài đặt QuickCheck một lần nữa, nó không được biên dịch lại, có nghĩa là, tôi không nhìn thấy những dòng
[ 1 of 15] Compiling Test.QuickCheck.Random
...
[15 of 15] Compiling Test.QuickCheck
nhưng nếu tôi cài đặt phiên bản hiện tại HsColour (1.20.3) và tôi cài đặt lại QuickCheck, QuickCheck sẽ được biên dịch lại.
QuickCheck cũng được biên dịch lại nếu
- tôi cài đặt HsColour,
- tôi cài đặt QuickCheck,
- tôi loại bỏ các HsColour nhị phân và
- tôi cài đặt QuickCheck.
Tôi đã thử nghiệm hành vi này với GHC 7.8.3, Cabal 1.20.0.2 và cabal cài đặt 1.20.0.3, và các phiên bản phát triển của Cabal và cabal cài đặt (sử dụng https://github.com/haskell/cabal/commit/5ef7d84bb25cc5d53ad124978922f2c96bedb7d4).
Lạ. Bạn đã bật tài liệu thư viện chưa? –
Không, tôi không bật tùy chọn này. – asr
Tôi có thể sao chép hành vi này bằng "cài đặt cabal - tài liệu có thể tháo rời" trong một hộp cát. Hơn nữa, tôi cũng có thể sao chép điều này với đồng bằng cũ "runhaskell Setup.lhs cấu hình --user && runhaskell Setup.lhs" (để cho phép/vô hiệu hóa tài liệu không thực sự đi vào nó); dự đoán tốt nhất của tôi là vì thay đổi cấu hình, nó muốn xây dựng lại mọi thứ. – ivanm