2013-03-04 50 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的優勢是您已經擁有了接口文件,但是我不確定它是否允許訪問導入實體的列表。

相關問題