我有一个haskell项目,我默认使用-Werror
编译。这意味着当我运行cabal repl
时,它会在启用选项-Werror
的情况下运行。这意味着,例如,当我评估2 + 2
时,我收到以下错误消息:
<interactive>:2:3: Warning:
Defaulting the following constraint(s) to type `Integer'
(Num a0) arising from a use of `+'
In the expression: 2 + 2
In an equation for `it': it = 2 + 2
因此,我需要一种方法来启用-w
,或-Wwarn
默认启用cabal repl
。我该怎么做呢?另外ghci
的默认标志是什么?
答案 0 :(得分:6)
您可以在~/.ghci
文件中设置GHCi选项:
:set -w
这会替代我-Wall
的{{1}}。
我的理解是cabal repl
具有相同的默认值ghci
:它就像调用没有标志的编译器一样。 ghc
从cabal repl
文件中获取默认值(例如.cabal
),但这会被ghc-options: -Wall
文件覆盖。
您还可以在项目目录中创建~/.ghci
文件,其中包含每个项目的设置。但是,这似乎与我的全局.ghci
文件进行了尴尬的交互:添加~/.ghci
并不会覆盖全局set -Wall
:set -w
。我不确定这种行为是否有意,或者我只是误解了一些事情。