有没有地方可以配置GHC默认使用的一些标志?比如说,我希望GHC始终假定我想要使用-fwarn-incomplete-patterns
标志。这个页面提供了一些有用的标志列表,并指出其中一些是默认开启的,但是我仍然希望更改我的系统默认设置。
我目前在OS X上工作,但我在家中使用Debian、Arch Linux和Windows 8.1,因此任何平台的解决方案都将有所帮助。
ghc
别名为ghc -fwarn-incomplete-patterns
之外,我不认为有一种全局的方法来执行它或者它是否可取因为在使用cabal编译外部库时它可能会产生大量警告。最好一次只对一个项目进行此操作或仅在GHCi中使用:
任何项目的 cabal 文件中都有一个ghc-options部分。
library
...
ghc-options:
-fwarn-tabs
-fwarn-missing-local-sigs
-fwarn-incomplete-patterns
-fwarn-incomplete-uni-patterns
对于全局 GHCi,您可以将以下行添加到您的 ~/.ghc/ghci.conf 文件中
:set -fwarn-incomplete-uni-patterns
在 ~/.cabal/config
的 program-default-options
部分添加 ghc-options: -fwarn-incomplete-patterns
:
[...]
program-default-options
...
ghc-options: -fwarn-incomplete-patterns
...
这仅适用于Cabalised项目(即当您使用cabal build/install/[...]
而不是手动运行ghc --make SomeFile.hs
时),并且需要一个相当新的cabal-install
(> = 1.18)。
仅因为这对来到这里的人会有用:
在Gentoo上,你可以在/etc/portage/make.conf
中全局设置所有Cabal软件包(几乎所有软件包),使用变量CABAL_EXTRA_BUILD_FLAGS
。所以在你的情况下,应该是这样的:
CABAL_EXTRA_BUILD_FLAGS="--ghc-option=-fwarn-incomplete-patterns"
,这里是一个更高级的例子
CABAL_EXTRA_BUILD_FLAGS="--ghc-option=+RTS --ghc-option=-M1G --ghc-option=-RTS"