GHC构建标志的全局配置

时间:2014-04-22 16:15:23

标签: haskell ghc

我可以为GHC配置一些默认标志吗?我想,即GHC总是假设我想要-fwarn-incomplete-patterns标志。 This page给出了一个有用的标志列表,并指出其中一些标志默认开启,但同样,我想更改系统的默认值。

我目前正在开发OS X,但我在家使用Debian,Arch Linux和Windows 8.1,因此任何平台的解决方案都会有所帮助。

3 个答案:

答案 0 :(得分:10)

除了将shell命令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 

答案 1 :(得分:5)

ghc-options: -fwarn-incomplete-patterns添加到program-default-options的<{1}}部分:

~/.cabal/config

这仅适用于Cabalised项目(即,当您使用[...] program-default-options ... ghc-options: -fwarn-incomplete-patterns ... 而不是手动运行cabal build/install/[...]时)并且需要相当近的ghc --make SomeFile.hs(&gt; = 1.18)。

答案 2 :(得分:1)

因为这对来这里的人有用:

在Gentoo上,您可以使用变量/etc/portage/make.confCABAL_EXTRA_BUILD_FLAGS中全局设置所有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有类似的解决方案,但由于OS X是一个消费者操作系统,我不知道。