繁体   English   中英

死代码和/或如何从 Haskell 源生成交叉引用

[英]Dead code and/or how to generate a cross reference from Haskell source

我的代码库中有一些未使用的功能,但很难识别。 在我探索其问题空间和可能的解决方案时,代码在过去一年中不断发展。 需要做的是找到未使用的代码,以便我可以摆脱它。 如果它在可导出名称的基础上处理问题,我很高兴。GHC 有处理未导出的未使用代码的警告。 任何特定于此任务的工具都会引起人们的兴趣。

但是,我对全面的交叉引用工具很好奇。 我可以使用这样的工具找到未使用的代码。 多年前,当我在 C 和汇编程序中工作时,我发现一个好的外部参照是一个非常方便的工具,可用于许多不同的目的。

我用谷歌搜索无处可去。 显然,在 Haskell 中,交叉引用的主要含义是在文学编程中。 虽然也许那里的东西会有用。

我不知道有这样的工具,所以过去我做了一些黑客攻击。

如果您有一个全面的测试套件,您可以在启用 GHC 的代码覆盖跟踪的情况下运行它。 使用-fhpc编译并使用hpc markup生成带注释的源代码。 这为您提供了未使用代码和未测试代码的联合,您可能无论如何都希望解决这两个问题。

SourceGraph可以为您提供大量信息,您可能也会发现这些信息很有用。

现在有一个专门用于此目的的工具: https : //hackage.haskell.org/package/weeder

它自 2017 年以来一直存在,虽然它有局限性,但它肯定有助于大型代码库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM