运行 GHC 时如何获取错误和警告计数?

问题描述 投票:0回答:1

如果我运行

dotnet build
来构建 .NET 项目,在输出末尾,我会看到一条消息,告诉我编译器在构建项目时生成了多少警告和错误。我在下面附上了一个例子。

如何使用 GHC 获取错误计数?我正在使用 stack,它使用 cabal,而 cabal 又使用 GHC。任何这些级别的解决方案都可以。

我可以通过将

stack build
的输出传输到 vim 并使用 vim 中的一些搜索功能来获取警告或错误的计数。然而,我并不总是能得到正确的结果。如果我的源代码包含“警告”或“错误”一词,我的搜索结果可能会受到影响。

如果可能,我想要一种简单的方法来获取错误和警告计数,例如命令行标志或简单的包装器。我浏览了 ghc 的手册页,发现没有对应的标志。

我已经通读了这个类似的 gcc 堆栈溢出帖子。这个问题的答案并不是很令人鼓舞,但我很好奇是否还有其他人可以分享一些见解,我希望 GHC 有一个不同的故事。

注意:我使用的是 bash shell,因此请将任何 shell 脚本调整为 bash。

bash haskell compiler-errors ghc haskell-stack
1个回答
0
投票

您可以使用

-ddump-json
标志生成 JSON 格式的输出,然后使用
jq
过滤严重性。最后,您有了用于计数的旧式
wc -l
。例如,这就是获取错误数量的方法:

ghc Main.hs -ddump-json | jq 'select(.severity == "SevError") .severity' | wc -l 
© www.soinside.com 2019 - 2024. All rights reserved.