检索Haskell项目中所有导入的列表

Ben*_*ood 5 haskell code-analysis

因此,我的最终目标是通过确保项目导入的所有实体都存在于其声称使用的版本中来评估cabal文件中依赖项的准确性.

一个好的开始是找到单个源文件使用的所有导入实体的列表,可选地提供有关它们来自何处的信息.

我现在愿意忽略类实例的情况,因为检测它们的使用并不是那么简单.

理想的答案是指向一个完全如此的工具,但我也会接受一个答案,指出我需要自己编写一个资源(GHC收集这些信息吗?它会把它转移到哪里吗?可以吗?被说服这样做?)

Rom*_*aka 4

最终,haskell-names应该能够以最小的努力完成类似的事情。需要注意的是,您需要使用 haskell-names 自己的“编译器”重新“编译”您引用的每个包,才能生成接口文件。将来我还计划为所有 hackage 包分发预编译的接口(可能来自 hackage 本身)。

现在 haskell-names 正在开发中,base还无法编译。

GHC API 的优点是,如果您安装了软件包,您就已经拥有了接口文件,但我不确定它是否可以访问导入实体的列表。