2012-07-17 95 views

回答

18

這些字段來自程序包的.cabal文件,該文件列出程序包的一些元數據。許多領域都可以擁有自由形式的價值觀,因此開發者可以決定在該領域寫什麼,並且沒有固定的「規則」來規定每個領域不能包含的內容。

可移植性:介紹該程序包在Haskell編譯器之間的移植性,有時也在操作系統之間移植。我見過的唯一值是「便攜」和「不可移植」。一個不可移植的軟件包是一個可能依賴於僅存在於GHC編譯器中的Haskell語言擴展的軟件包,並且不適用於其他任何類似UHC的Haskell編譯器,或者可能取決於某些僅存在於UNIX中的系統庫,在Windows下工作。

穩定性:指定庫的穩定性,包括它的可靠性(例如它崩潰的頻率),但最重要的是API的更改頻率。我已經看到了「實驗性」,「臨時性」和「穩定性」的值,但是可能有更多的列表(Cabal文檔中的內容有時是不可能找到的)。當一個軟件包是實驗性的時候,這意味着它的界面可能會在每個發佈版本之間發生變化,因爲開發人員還沒有決定應該如何實現它,或者因爲開發人員只是在某處從某個論文實現了一些理論功能,而沒有打算維護包裹;他/他只是想實現功能,看看它是否可行,並將該軟件包作爲演示發佈。當軟件包是暫時的,這意味着通用API是穩定的,因此可能會更新軟件包,只修復內部錯誤並且不添加或刪除任何功能。但是,由於這是暫時的,因此當開發人員決定添加新功能或重新構建庫時,它可能會發生變化。有了穩定的圖書館,這基本上不會發生; API可能永遠不會改變,並且實現是「堅如磐石」的,或者API的參考實現或其他。

維護者對於一個包是負責包的人或一羣人。電子郵件指定了這些維護人員如何到達。

安全哈斯克爾」字段是指GHC擴展,您可以閱讀更多有關here。一個模塊是不安全使用像unsafePerformIO這樣的功能,它破壞了像引用透明度這樣的Haskell的一些基本「規則」。 不安全模塊也可能使用不安全的語言擴展。 A 保險箱模塊是一個不使用任何不安全功能等的模塊,也不會導入任何其他不安全的模塊。A trusted模塊使用不安全函數(直接值得信賴,間接信任),但作者已確保該模塊的公共API安全地隱藏了這一事實,以便從外部看起來模塊是安全的爲所有意圖和目的。這些是「Safe Haskell」字段的選項。