2013-03-27 19 views
9

-O0を除く、コンパイル時間を短縮できるオプションはありますか?GHCでコンパイルを高速化

結果のプログラムが最適化されていないかどうかは関係ありません。実際には、大規模なhaskellパッケージをしばしば速くタイプチェックするだけです。

フラグ-fno-codeは、このプログラムでTemplateHaskellが使用されているため、コンパイルが大幅に高速化されますが、使用できません。

+2

コンパイル時に多くのモジュールを変更せずに、オブジェクトファイルとインターフェイスファイルを保持する場合は、各サイクルで再コンパイルする必要があるモジュールがあまりにも多くありません。それは十分ではないですか? –

+0

実際には、このプロジェクトのほとんどの部分がシングル(コンパイル順序の最後)モジュールでTHを介して生成されるためです。 –

+1

Urk。その場合、どのようにスピードアップできるかわかりません。 –

答えて

6

hdevtoolsのタスクのように見えます! Hdevtoolsは、同じ名前のvim-pluginのバックエンドとして使用され、エディタから直接、迅速な構文と型チェックを提供します。モジュールをリロードするとき、ghciと同じくらい速いです。私はそれがコマンドラインから使用できると仮定します。

もう1つの方法は、ghciインスタンスを実行したままにして、モジュールをタイプチェックすることです。

+1

ありがとう、hdevtoolsは素晴らしいです! ghciの代わりに使用する方が少し簡単です。残念ながら、hdevtoolsはcabalとcabal-devでは動作しませんが、必要なghcオプションを渡すことは可能です。 –

+0

うん。 cabal-devで動作させるためのオプションを渡す必要がありますが、これは少し面倒ですが、これはこのようなツールでは一般的な「機能」と思われます。 – aleator

2

大きなファイルを分割するとコンパイルが高速になることがわかりました。