簡體   English   中英

如何將我的包裹標記為特定於ghc?

[英]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上。 例如,您確定您的軟件包不會與GHCjsHaste一起編譯嗎? 所以,為什么要提前限制自己...

如果您可以在ghc中使用沒有實現細節的程序包,但也可以以“長期”方式執行更昂貴的操作,則可以使用cabal提供的宏在代碼中使用CPP條件,以便根據以下條件提供不同的結果對GHC的測試。

tested-with確實按照慣例使用一個純粹的信息場。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM