检索Haskell项目中所有导入的列表
因此,我的最终目标是通过确保项目导入的所有实体都存在于其声称使用的版本中,来评估cabal文件中依赖项的准确性 一个好的开始是找到一个单一源文件使用的所有导入实体的列表,可以选择包含它们来自何处的信息 我愿意暂时忽略类实例的情况,因为检测它们的使用并不是那么简单 理想的答案应该是指向一个能够做到这一点的工具的指针,但我也会接受一个指向我自己编写一个工具所需资源的答案(GHC是否收集这些信息?它是否将其转储到任何地方?是否可以说服它这样做?最终,我应该能够以最小的努力完成类似的事情。 一个警告是,为了生成接口文件,您需要使用haskell命名自己的“编译器”重新“编译”您引用的每个包。在未来,我还计划为所有hackage软件包分发预编译接口(可能来自via hackage本身) 目前haskell names正在进行中,无法编译检索Haskell项目中所有导入的列表,haskell,code-analysis,Haskell,Code Analysis,因此,我的最终目标是通过确保项目导入的所有实体都存在于其声称使用的版本中,来评估cabal文件中依赖项的准确性 一个好的开始是找到一个单一源文件使用的所有导入实体的列表,可以选择包含它们来自何处的信息 我愿意暂时忽略类实例的情况,因为检测它们的使用并不是那么简单 理想的答案应该是指向一个能够做到这一点的工具的指针,但我也会接受一个指向我自己编写一个工具所需资源的答案(GHC是否收集这些信息?它是否将其转储到任何地方?是否可以说服它这样做?最终,我应该能够以最小的努力完成类似的事情。 一个警告是,
base
GHC API的优点是,如果您已经安装了软件包,那么您已经拥有了接口文件,但我不确定它是否提供了对导入实体列表的访问。使用
-ddump minimal imports
标志有多远?这是最重要的一点!(出于兴趣,是否在任何地方记录了该标志?)。