2014-04-22 27 views
7

有沒有一個地方可以配置一些GHC使用的默認標誌?我想,即GHC總是假設我想要-fwarn-incomplete-patterns標誌。 This page給出了一個有用的標誌列表,並指出它們中的一些默認開啓,但是我想改變系統的默認值。GHC構建標誌的全局配置

我目前正在使用OS X,但我在家中使用Debian,Arch Linux和Windows 8.1,所以任何平臺的解決方案都會有所幫助。

+0

你想要他們的全球GHC,還是隻在陰謀項目? – bheklilr

回答

9

除了走樣shell命令ghcghc -fwarn-incomplete-patterns,我不認爲有辦法做到在全球範圍,或是否將是可取的全球做,因爲編譯外部庫時,它可能會產生警告的大量陰謀。可能最好一次完成這個項目,或者只使用GHCi:

在項目的任何cabal文件中都有一個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 
+0

感謝您指出在全球範圍內執行此操作的問題。我現在可能會繼續使用OPTIONS_GHC編譯指示,但在我所有GHCi會話中使用這些標誌將會有所幫助。 – Amazingant

5

添加ghc-options: -fwarn-incomplete-patterns~/.cabal/configprogram-default-options部分:

[...] 

program-default-options 
    ... 
    ghc-options: -fwarn-incomplete-patterns 
    ... 

這隻適用於Cabalised項目(即,當您使用cabal build/install/[...]而不是手動運行ghc --make SomeFile.hs)並且需要相當近期的cabal-install(> = 1.18)。

0

僅僅因爲這將是誰到這裏來的人非常有用:

在Gentoo,你可以爲所有驚天動地封裝選項,(這是幾乎所有的)全球範圍內,在/etc/portage/make.conf,與可變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" 

要限制使用內存爲1GB(退出其他)。

我認爲Arch和Debian有類似的解決方案,但是由於OS X是一個消費者操作系統,我不知道。