2013-03-27 16 views
9

Czy istnieją opcje, z wyjątkiem -O0, które mogą przyspieszyć kompilację?Przyspieszenie kompilacji w GHC

Nie ma znaczenia, czy powstałe programy nie zostaną zoptymalizowane. Właściwie chcę po prostu szybko sprawdzić typ dużego pakietu haskell.

Flaga -fno-code znacznie przyspiesza kompilację, ale nie można jej użyć, ponieważ program TemplateHaskell jest używany.

+2

Jeśli nie zmienisz wielu modułów między kompilacjami, a pliki obiektów i interfejsu pozostaną w pobliżu, nie powinno być zbyt wielu modułów, które muszą być rekompilowane w każdym cyklu. Czy to nie wystarczy? –

+0

Właściwie nie, ponieważ większość tego projektu jest generowana przez TH w pojedynczym module (ostatni w kolejności kompilacji). –

+1

Urk. W takim przypadku nie mam pojęcia, jak możesz przyspieszyć. –

Odpowiedz

6

Wygląda jak zadanie dla hdevtools! Hdevtools jest używane jako backend dla vim-plugin o tej samej nazwie i zapewnia szybkie sprawdzanie składni i typów bezpośrednio od edytora. Jest tak szybki jak ghci przy ponownym ładowaniu modułów. Zakładam, że można go użyć z wiersza poleceń.

Inną alternatywą byłoby utrzymanie działającej instancji ghci i użycie jej do sprawdzenia modułów.

+1

Dzięki, hdevtools jest świetny! Jest trochę łatwiej używać go zamiast ghci. Niestety hdevtools nie działa z cabal i cabal-dev, ale możliwe jest przekazanie niezbędnych opcji GHC. –

+0

Tak. Konieczność przekazania opcji, aby mogła działać z cabal-dev, jest nieco irytująca, ale wydaje się, że jest to typowa "cecha" z takimi narzędziami. – aleator

2

Odkryłem, że dzielenie dużych plików może przyspieszyć kompilację.