2014-04-22 10 views
7

C'è un luogo in cui posso configurare alcuni flag di default per GHC da utilizzare? Vorrei, ad esempio, che GHC presumesse sempre che io desideri il flag -fwarn-incomplete-patterns. This page fornisce un elenco di indicatori utili e indica che alcuni di essi sono attivi per impostazione predefinita, ma, ancora una volta, mi piacerebbe cambiare i valori predefiniti per il mio sistema.Configurazione globale per flag di costruzione GHC

Attualmente sto lavorando su OS X, ma uso Debian, Arch Linux e Windows 8.1 a casa, quindi una soluzione per qualsiasi piattaforma sarà di aiuto.

+0

Li vuoi per GHC a livello globale, o solo in progetti di cabala? – bheklilr

risposta

9

Oltre aliasing il comando di shell ghc a ghc -fwarn-incomplete-patterns, non credo che ci sia un modo per farlo a livello globale o se sarebbe consigliabile fare a livello globale in quanto sarebbe probabilmente generare una quantità enorme di avvertimenti quando compilazione delle librerie esterne con cabala. Probabilmente è meglio fare questo progetto alla volta o solo con GHCi:

C'è una sezione ghc-options in qualsiasi file cabal per un progetto.

library 
    ... 

    ghc-options:   
    -fwarn-tabs 
    -fwarn-missing-local-sigs 
    -fwarn-incomplete-patterns 
    -fwarn-incomplete-uni-patterns 

Per GHCi globale, è possibile aggiungere la seguente riga al tuo ~/.ghc/ghci.conf

:set -fwarn-incomplete-uni-patterns 
+0

Grazie per aver segnalato il problema a livello globale. Probabilmente continuerò ad usare il pragma OPTIONS_GHC per ora, ma avere queste bandiere in tutte le mie sessioni GHCi ti aiuterà molto. – Amazingant

5

Aggiungere ghc-options: -fwarn-incomplete-patterns alla sezione program-default-options del ~/.cabal/config:

[...] 

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

Funziona solo con i progetti Cabalised (vale a dire quando si utilizza cabal build/install/[...] invece di eseguire manualmente ghc --make SomeFile.hs) e richiede un valore relativamente recente cabal-install (> = 1,18).

0

Proprio perché questo sarà utile per le persone che vengono qui:

su Gentoo, è possibile impostare le opzioni per tutti i pacchetti Cabal, (che è praticamente tutte) a livello globale, in /etc/portage/make.conf, con la variabile CABAL_EXTRA_BUILD_FLAGS . Quindi nel tuo caso, che sarebbe

CABAL_EXTRA_BUILD_FLAGS="--ghc-option=-fwarn-incomplete-patterns" 

, ed ecco un esempio più avanzato

CABAL_EXTRA_BUILD_FLAGS="--ghc-option=+RTS --ghc-option=-M1G --ghc-option=-RTS" 

per limitare l'utilizzo della memoria a 1 GB (e uscire altrimenti).

Penso che ci sia una soluzione simile per Arch e Debian, ma poiché OS X è un SO consumer, non lo so.

Problemi correlati