2013-03-27 18 views
9

Esistono opzioni, eccetto -O0, che possono accelerare i tempi di compilazione?Compilazione accelerata in GHC

Non importa se i programmi risultanti non saranno ottimizzati. In realtà voglio solo digitare-check un pacchetto grande di haskell spesso e velocemente.

Flag -fno-code aumenta drasticamente la compilazione ma non è possibile utilizzarlo perché TemplateHaskell viene utilizzato da questo programma.

+2

Se non si modificano molti moduli tra le compilazioni e si conservano i file dell'oggetto e dell'interfaccia, non ci dovrebbero essere troppi moduli che devono essere ricompilati in ogni ciclo. Non è abbastanza buono? –

+0

In realtà no, perché gran parte di questo progetto è generata tramite TH in modulo (ultimo nell'ordine di compilazione). –

+1

Urk. In tal caso, non ho idea di come potresti accelerarlo. –

risposta

6

Sembra un compito per hdevtools! Hdevtools è utilizzato come back-end per il plugin vim con lo stesso nome e fornisce sintassi veloce e controllo del tipo, direttamente dall'editor. È veloce come ghci quando si ricaricano i moduli. Suppongo che possa essere usato dalla riga di comando.

Un'altra alternativa sarebbe mantenere un'istanza ghci in esecuzione e utilizzarla per digitare controllare i moduli.

+1

Grazie, hdevtools è fantastico! È un po 'più facile usarlo al posto di ghci. Sfortunatamente hdevtools non funziona con cabal e cabal-dev, ma è possibile passare le opzioni ghc necessarie. –

+0

Sì. Dover passare delle opzioni per farlo funzionare con cabal-dev è un po 'fastidioso, ma questa sembra essere una "caratteristica" comune con questi strumenti. – aleator

2

Ho trovato che dividere file di grandi dimensioni può velocizzare la compilazione.