3

假设我有一个使用 Cabal 打包和构建的库,并且某些模块Internal不在我的 cabal 文件的Exposed-modules. 如果我指定一个编译指示,它会有什么不同吗

{-# OPTIONS_HADDOCK hide #-}

在顶部Internal.hs,还是已经根据 Haddock 自动隐藏?

如果它确实有所作为,它有什么影响?

4

1 回答 1

4

如果包的黑线鳕是用--internalto 标志创建的,那确实会有所不同cabal haddock

$ cabal help haddock
Usage: cabal haddock [FLAGS]

Flags for haddock:
 -h --help                  Show this help text
 -v --verbose[=n]           Control verbosity (n is 0--3, default verbosity
                            level is 1)
  <snip>
    --executables           Run haddock for Executables targets
    --internal              Run haddock for internal modules and include all
                            symbols
  <snip>

如果创建的黑线鳕没有--internal标记,则hide模块属性无效:无论如何都不会为模块创建文档。

如果--internal给出,则为非公开模块创建文档,但指定属性的模块除外。hide

换句话说,如果hide未设置并且指定或--internal导出模块,则会生成文档。

--internalfor的使用cabal haddock可以用 指定cabal install --haddock-internal,或者在手动调用时cabal haddock,或者用runhaskell ./Setup.hs ...接口指定。

大多数人只是cabal install使用默认选项运行,所以只有少数人会观察到差异。

于 2012-12-17T17:02:38.300 回答