与haddock的差异文档

时间:2015-09-21 17:57:24

标签: haskell cabal cabal-install haddock

如果我在我的库上执行cabal build,然后更改文件,下次运行cabal build时,我只需要重新编译受更改影响的文件。我没有使用cabal haddock命令获得相同的行为:当我在更改文件后运行它时,cabal / haddock最终会丢弃所有以前的工作并从头开始。这相当耗时;有没有办法获得文档的差异更新?

这是生成文档的dump of the command cabal issues

1 个答案:

答案 0 :(得分:1)

processModules文档说:

  

通过使用GHC API对模块列表进行类型检查并处理生成的语法树来创建接口和链接环境。

这是haddock的核心功能。所以ATM的答案是你的问题

cabal build根本没有帮助cabal haddock,因为haddock类型检查具有不同参数的模块(例如__HADDOCK__启用了CPP变量)

制作可靠的增量haddock生成很困难,因为依赖关系图中的代码可以在此之前更改模块文档:特别是实例列表。可能有人可以转储模块接口。

查看at the code of processModules第一步是可以逐步进行的,其余的是使用全局信息。

尝试将详细程度设置为最大值--haddock-options=--verbosity=2并检查Creating interfaces...Attaching instances...之间的花费时间。