在許多黑線鱈生成模塊文檔的(例如Prelude
),在右上角一個小盒子中可以看出,含有便攜性,穩定性和維護信息:Haddock模塊字段如何使用可移植性,穩定性和維護者?
通過觀察源代碼到這樣的模塊和實驗,我確認是從像在模塊描述以下行生成的此信息:
-- Maintainer : [email protected]
-- Stability : stable
-- Portability : portable
有幾種關於這個奇怪的事情:
個字段只似乎在此爲了工作 - 任何領域投入的順序簡單地當作模塊說明本身的一部分了。儘管源文件中的訂單是與生成文檔中訂單的相反!
我一直無法找到這些字段的任何官方文檔。有一個名爲
stability
的Cabal package property,其示例值與我在等價的Haddock字段中看到的值相匹配,但除此之外,我什麼也沒找到。
因此:這些字段是如何使用的,並且它們在任何地方都有記錄?
我特別想知道:
常用值的
Portability
和Stability
的完整列表。 This HaskellWiki page有一個列表,但我想知道這個列表來自哪裏。決定模塊是便攜式還是非便攜式的標準。特別是,我希望這些問題的答案acme-strfry是一個FFI綁定到
strfry
,這個函數僅在glibc中可用。包是不可移植的,因爲它只適用於glibc系統或可移植的,因爲它不使用任何Haskell語言擴展?通常的用法似乎意味着後者。爲什麼在源文件中需要特定的字段順序,以及爲什麼它與生成的文檔中的排序相反。
確實,我目前使用的是「非便攜式(僅限glibc)」,但希望獲得一些關於這是否被認爲是正確使用場。 – ehird
雖然這些字段是自由格式的,但Cabal文檔,HaskellWiki頁面以及我所看到的所有值似乎都來自一小組值(包括我不希望有人獨立思考的值,例如「臨時」)使我認爲實際使用的價值來自一個小集合,即使這個集合不是在任何地方「正式」寫下的;至少知道該套裝的起源會很高興。對於訂購的東西,我可能會很快查看源代碼或詢問郵件列表。 – ehird
P.S.考慮到對全球RNG狀態的依賴性,製作'strfry'將會非常困難:) – ehird