[英]How do I mark my package as depending on ghc specifically?
我的程序包取決於GHC中的一些實現細節(不僅僅是語言擴展)。 我應該如何在我的.cabal文件中表達這種依賴性? 我是不是該? 我只是偏執嗎?
build-depends
我認為也許應該將ghc
添加到build-depends
列表中,但是沒有ghc軟件包 。
受ghc-mod的依賴項列表啟發,我還是嘗試了一下。 我添加了build-depends: ghc >= 7.20
,這在我僅安裝7.10.3時產生了預期的失敗。 (在撰寫本文時,7.20甚至還不存在。)
cabal.exe: At least the following dependencies are missing:
ghc >=7.20
ghc
是某種魔術包嗎? 還有哪些其他魔術包?
tested-with
有一個tested-with
包屬性 。 但是,這似乎並不影響構建。 我添加了以下tested-with: GHC==7.20
(不存在的GHC版本,但比我的7.10.3更新),但是cabal build
仍然構建了我的軟件包,甚至沒有發出警告或任何警告。
ghc
是一個軟件包,不是一個魔術包。 它不是關於Hackage的軟件包。 而是它與您的ghc安裝一起安裝,並且默認情況下是隱藏的。 您可以在ghc-pkg list
的輸出中看到它。 它為編譯器提供了一個API。 如果您實際上沒有使用它,則不應依賴它。 通常,除非真正需要,否則大多數人不會將自己固定在GHC上。 例如,您確定您的軟件包不會與GHCjs
或Haste
一起編譯嗎? 所以,為什么要提前限制自己...
如果您可以在ghc中使用沒有實現細節的程序包,但也可以以“長期”方式執行更昂貴的操作,則可以使用cabal提供的宏在代碼中使用CPP條件,以便根據以下條件提供不同的結果對GHC的測試。
tested-with
確實按照慣例使用一個純粹的信息場。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.