在 GHC 中,有没有办法在不实际生成输出的情况下检查编译?



有时,我将代码写入文件只是为了检查它是否编译 - 对生成的二进制文件不感兴趣。

例如,如果我正在做一个学习练习,想要产生一些错误,或者查看某些代码是否编译没有错误,我希望看到普通编译输出打印到终端,但不生成通过运行ghc <myprogram>.hs出现的 *.hi 或 *.o 文件。

我有时使用runhaskell有效地做到这一点,但这并不理想——它需要一个main函数,并且实际运行程序,而我只是在寻找编译检查。

运行GHC时有没有办法抑制生成,只显示普通的编译错误和警告?

这个问题的答案之一提出了我正在寻找的答案:ghc 选项-fno-code

即编译但不生成二进制文件:

$ ghc -fno-code <myprogram>.hs

本着与问题目的相同的精神,除了@mherzl的工作答案外,我的回答如下:

while true;do
inotifywait -e modify myprogram.hs
ghc -fno-code myprogram.hs
done

这仅适用于具有inotifywait工具的 Linux 系统。它会阻止检测文件是否已被修改。

相关内容

  • 没有找到相关文章

最新更新