2013-08-23 30 views
8

我的代碼庫中有一些未使用的功能,但很難識別。隨着我探索其問題空間和可能的解決方案,代碼在去年得到了發展。我需要要做的是找到未使用的代碼,以便我可以擺脫它。如果能夠以可導出的名稱爲基礎處理問題,我很高興.GHC具有處理非導出未使用代碼的警告。任何特定於此任務的工具都會引起您的興趣。死代碼和/或如何從Haskell源生成交叉引用

但是,我很好奇全面的交叉引用工具。我可以用這樣的工具找到未使用的代碼。幾年前,當我在C和彙編工作時,我發現一個很好的外部參照是一個非常方便的工具,可用於許多不同的目的。

我在Google上找不到任何地方。顯然,在Haskell中,交叉引用的主要含義在文學編程中。雖然也許會有用處。

回答

7

我不知道這樣的工具,所以在過去我做了一些黑客攻擊。

如果您有全面的測試套件,則可以在啓用GHC的code coverage跟蹤的情況下運行它。編譯爲-fhpc並使用hpc markup生成帶註釋的源代碼。這給你未使用代碼和未經測試代碼的聯合,無論如何你都可能想要這兩個代碼。

SourceGraph可以給你a bunch of information,你也可能會發現有用的。

+0

謝謝。我曾考慮過代碼覆蓋的路線,但認爲我會看看是否有更好的方法。也許這是我需要的最快捷的途徑。 SourceGraph是我沒聽說過的東西。我試圖安裝它,但有一堆版本不兼容。嘆。我會盡力在星期一或星期二解決這些問題(除非代碼覆蓋效果良好)。 – hutch

+1

我無法讓Graphalyze編譯,SourceGraph依賴於它。太糟糕了,因爲它看起來好像有很多有用的信息提供。我看了一下代碼覆蓋工具,我將能夠從輸出中回答我的直接問題。所以,我的問題得到了回答。謝謝! – hutch