gpt4 book ai didi

haskell 阴谋 : Generate latex haddock documentation

转载 作者:行者123 更新时间:2023-12-02 16:39:51 29 4
gpt4 key购买 nike

我正在尝试通过 cabal 和 haddock 生成 API 文档。我希望它是 latex 的。所以我这样做:

cabal haddock --haddock-option=--latex

这最终失败了:

haddock: internal error: declaration not supported by declNames

我能做些什么或者黑线鳕有问题吗?

仅供引用,我必须使用 cabal,因为构建过程相当复杂(很多预处理器、ffi 库......)。手动调用haddock真的很痛苦。

但是,构建 HTML 文档完全按照预期进行。

完整的输出位于 http://pastebin.com/xt6rWqde .

我正在使用:

cabal-install version 0.14.0
using version 1.14.0 of the Cabal library

The Glorious Glasgow Haskell Compilation System, version 7.4.2

Haddock version 2.11.0, (c) Simon Marlow 2006
Ported to use the GHC API by David Waern 2006-2008

最佳答案

我认为这是黑线鳕的一个缺点/错误。深入研究一下源代码,错误消息来自 declNamesHaddock/LaTeX.hs :

declNames :: LHsDecl DocName -> [DocName]
declNames (L _ decl) = case decl of
TyClD d -> [unLoc $ tcdLName d]
SigD (TypeSig lnames _) -> map unLoc lnames
_ -> error "declaration not supported by declNames"

因此 LaTeX 后端仅支持类型类声明和类型签名,其他所有内容都传递给 declNames生成 "declaration not supported by declNames"错误。

在xhtml后端,支持进一步的声明:

ForD d                         -> ppFor summ links loc (mbDoc, fnArgsDoc) d unicode qual
InstD _ -> noHtml

外部声明生成输出,而实例声明则不生成输出。不支持的声明导致

error "declaration not supported by ppDecl"

ppDecl (Haddock.Backends.Xhtml.Decl)。

实例声明不会传递到 declNames在 LaTeX 后端,因此它们不会生成错误,但外部声明会生成错误(如果导出)。

因为您的模块是 Foreign.Java.X ,我希望从那里的某个模块导出一些外部导入或导出,这解释了该错误。

似乎需要错误报告/功能请求。

关于 haskell 阴谋 : Generate latex haddock documentation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16792576/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com