GHCで何かをコンパイルするのに時間がかかる場合は、それが何をしているのかを見つける方法はありますか?GHC活動の監視
まず、コンパイラを実際にクラッシュしたか(何らかの無限ループに入れてしまったか)、実際に進歩しているのかどうかは知りたいですが、非常にゆっくりです。
第2に、コンパイルプロセスのどの部分が問題を抱えているのかを正確に知ることはうれしいことです。それはパース、デッサージ、型チェック、コア最適化、コード生成なのでしょうか?
何が起こっているのかを監視する方法はありますか? (GHCは長い時間がかかっている場合は、おそらくそれは多くの作業をやっているので、あなたはあまりにも多くの出力を求めるならば、巨大になるだろう意味念頭に!)
GHCはすでにあなたに指示されたモジュールそれは(再)コンパイルしようとしています。私の場合、問題は単一の自己完結型モジュールです。私は、GHCがどこに行き詰まっているのかを知りたい。
あなたはGHCのプロファイルバージョンをビルドしてから見て、標準的なプロファイリングツールを使用することができます(この質問を促したプログラムの特定の場合には、GHCは型チェックの段階で永遠に過ごしているようです。)それは事実の後に何が起こっているのか。 – Davorak
あなたは '' -v4''が何が起こっているのかを冗長表示するように指定することで、冗談になるように頼むことができます - はい、出力は巨大ですが、ただ監視したいならばターミナルは、最後の1000行程度しか記憶していません。 –
私の経験では、無限ループに入っているGHCは、それがゆっくりと一般的にはたくさんのメモリを食べさせるので、認識することができます。 –