Elm Compilerが永久に実行され、コンピュータが熱くなる


100

この問題の原因はわかりませんが、プロジェクトでは、コンパイラーがモジュールをコンパイルするだけで何時間もかかっています。私のコードベースの合計サイズは352KBですが、10KBを超えるモジュールはありません。私はネイティブポートを使用していますが、それは非常に簡単です。私はそれでフェッチDate.now()しています。

elmコンパイラのコンパイルに時間がかかる原因となる既知の問題はありますか?私は多くの依存関係はありませんが、Htmlをたくさん使用しています。これを引き起こす原因についてのヒントを本当にいただければ幸いです。

編集する

したがって、ケース式大きいと、オプティマイザに0.16のように長い時間がかかることがわかります。ここだエルムは、議論に議論の問題を育て、そして厄介なケースの試合の要旨は

私は冗長で、ニンジンをそこに留めておくと思いますが、elmのコンパイラが大文字小文字を区別するためにこのルートをとるのはなぜですか?ここで起こっている基本的な機械は何ですか?コンパイラーがcaseステートメントで60以上のパターン一致を最適化するのに1時間以上かかるのはなぜですか?


4
私は興味がある。Elmコンパイラは、case式をコンパイルするのに何時間もかかるという、どのような最適化を行っていますか?ケース式が大きすぎないようです(少なくともコンピュータには十分な大きさではありません)。つまり、Elmコンパイラーには、本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に本当に非常に悪い最適化アルゴリズムがあります。たとえば、すべての721ポケモンを使ってケース式をコンパイルするのにどれくらい時間がかかるか想像してみてください。
Aadit M Shah 2016

4
答えはここにあると思います。haskellタグを追加してみて、Haskellの人々が何かを私たちに明らかにできるかどうかを確認する必要があります。
ハーフゼブラ2016年

5
私はあなたがケースの問題を修正する上でより良い場所で新しい質問をし、ケースの問題が遅いことがわかっていることを説明するだけであなた自身に答えるべきだと思います。理由については、関連するコードがここにあるように見えます:github.com/elm-lang/elm-compiler/blob/master/src/Optimize 引用されたスコットとラムジーの論文は、「小さな分岐因子」ヒューリスティックがどのようにして非常に遅いかを説明しています。上記のコードでは、デフォルト値が小さい場合のタイブレーカーとしてヒューリスティックが使用されています。だから、私はあなたの悪い例に賭けます、小さなデフォルトはたくさん結びつき、私たちは恐ろしい事件にぶつかります。私の見解:エルムはSBFを要素として使用すべきではありません。
sclv 2016年

24
この質問を未回答リストに表示されないように、この質問に自己回答してください。
ジュリアンレヴィストン2017年

5
実際にコンパイルが終了したことはありますか?
Worthy7

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.