有没有地方可以为GHC配置一些默认标志?我希望,即GHC始终假设我想要-fwarn-incomplete-patterns
标志。这个页面提供了一个有用标志的列表,并指出其中一些标志在默认情况下是打开的,但我想再次更改我的系统的默认值。
我目前正在使用OS X,但我在家里使用Debian、Arch Linux和Windows 8.1,所以任何平台的解决方案都会有所帮助。
除了将shell命令ghc
别名为ghc -fwarn-incomplete-patterns
之外,我不认为有一种方法可以全局执行,也不认为全局执行是否可取,因为在使用cabal编译外部库时可能会生成大量警告。可能最好一次只做一个项目,或者只使用GHCi:
在一个项目的任何阴谋集团文件中都有一个ghc选项部分。
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
将ghc-options: -fwarn-incomplete-patterns
添加到~/.cabal/config
:的program-default-options
部分
[...]
program-default-options
...
ghc-options: -fwarn-incomplete-patterns
...
这只适用于Cabalized项目(即,当您使用cabal build/install/[...]
而不是手动运行ghc --make SomeFile.hs
时),并且需要相当新的cabal-install
(>=1.18)。
因为这对来这里的人很有用:
在Gentoo上,您可以使用变量CABAL_EXTRA_BUILD_FLAGS
在/etc/portage/make.conf
中全局设置所有Cabal软件包(几乎是所有软件包)的选项。所以在你的情况下,这将是
CABAL_EXTRA_BUILD_FLAGS="--ghc-option=-fwarn-incomplete-patterns"
,这里是一个更高级的示例
CABAL_EXTRA_BUILD_FLAGS="--ghc-option=+RTS --ghc-option=-M1G --ghc-option=-RTS"
将内存使用限制为1GB(否则退出)。
我认为Arch和Debian也有类似的解决方案,但由于OSX是一个消费者操作系统,我不知道。