我的代码库中有一些未使用的功能,但很难识别。在过去的一年里,随着我探索它的问题空间和可能的解决方案,代码不断发展。我需要做的是找到未使用的代码,这样我就可以摆脱它。如果它在可导出名称的基础上处理这个问题,我很高兴。GHC有处理未导出的未使用代码的警告。任何特定于这项任务的工具都会引起人们的兴趣。
然而,我对一个全面的交叉引用工具感到好奇。我可以用这样的工具找到未使用的代码。几年前,当我在C和汇编程序中工作时,我发现一个好的外部参照是一个非常方便的工具,对许多不同的用途都很有用。
谷歌搜索对我毫无帮助。显然,在Haskell中,交叉引用的主要含义是在识字编程中。尽管那里可能有些有用的东西。
我不知道有这样的工具,所以过去我做过一些破解。
如果您有一个全面的测试套件,您可以在启用GHC的代码覆盖率跟踪的情况下运行它。使用 SourceGraph可以为您提供一系列信息,您可能也会发现这些信息很有用。-fhpc
编译并使用hpc markup
生成带注释的源。这为您提供了未使用的代码和尚未测试的
现在有一个工具可以用于此目的:https://hackage.haskell.org/package/weeder
它自2017年以来就一直存在,虽然它有局限性,但它肯定有助于处理大型代码库。