2013-03-04 43 views
5

因此,我的最终目标是通过确保项目导入的所有实体存在于它声称工作的版本中来评估cabal文件中依赖项的准确性用。检索Haskell项目中所有导入的列表

一个好的开端是找到单个源文件使用的所有导入实体的列表,可选地提供关于它们来自哪里的信息。

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

理想的答案应该是一个指向一个工具的指针,但是我也会接受一个答案,指出我需要自己写的资源(GHC收集这些信息吗?它会转储它吗?任何地方?是否可以这样做?)

+3

'-ddump-minimal-imports'标志有多远? – 2013-03-04 14:18:11

+0

这就是那里的大部分! (出于兴趣,是否在任何地方记录该标志?) – 2013-03-04 15:18:58

+0

(与-fno-code一起工作,这很好) – 2013-03-04 15:20:35

回答

4

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

现在haskell-name正在工作,并且还无法编译base

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

相关问题