GHC生成标志的全局配置



有没有地方可以为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是一个消费者操作系统,我不知道。

最新更新