2013-03-27 17 views
9

Gibt es Optionen, außer -O0, die die Kompilierungszeit beschleunigen können?Beschleunigung der Kompilierung in GHC

Es ist nicht wichtig, ob die resultierenden Programme nicht optimiert werden. Eigentlich möchte ich einfach und schnell großes Haskell-Paket schreiben.

Flag -fno-code dramatisch beschleunigt die Kompilierung, aber es ist nicht möglich, es zu verwenden, weil TemplateHaskell von diesem Programm verwendet wird.

+2

Wenn Sie nicht viele Module zwischen Kompilierungen ändern und die Objekt- und Schnittstellendateien beibehalten, sollten nicht zu viele Module in jedem Zyklus neu kompiliert werden. Ist das nicht gut genug? –

+0

Eigentlich nicht, weil der größte Teil dieses Projekts über TH im Einzelmodul (last in compilation order) generiert wird. –

+1

Urk. In diesem Fall habe ich keine Ahnung, wie Sie es beschleunigen könnten. –

Antwort

6

Sieht aus wie eine Aufgabe für ! Hdevtools wird als Backend für das gleichnamige vim-plugin verwendet und bietet eine schnelle Syntax- und Typprüfung direkt vom Editor aus. Es ist ungefähr so ​​schnell wie ghci beim Nachladen von Modulen. Ich nehme an, dass es von der Befehlszeile verwendet werden kann.

Eine andere Alternative wäre, eine ghci-Instanz laufen zu lassen und diese zu verwenden, um Ihre Module zu prüfen.

+1

Danke, hdevtools ist großartig! Es ist ein wenig einfacher, es anstelle von ghci zu verwenden. Leider funktioniert hdevtools nicht mit cabal und cabal-dev, aber es ist möglich, notwendige ghc-Optionen zu übergeben. –

+0

Ja. Optionen zu übergeben, um es mit cabal-dev arbeiten zu lassen, ist ein bisschen nervig, aber das scheint ein übliches "Merkmal" mit solchen Tools zu sein. – aleator

2

Ich habe festgestellt, dass das Aufteilen großer Dateien die Kompilierung beschleunigen kann.