10

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

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

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

4

2 回答 2

8

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

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

SourceGraph可以为您提供一堆您可能会发现有用的信息。

于 2013-08-24T06:46:54.187 回答
1

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

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

于 2020-08-10T10:44:00.600 回答