Ich bin nicht sicher, was dieses Problem verursacht, aber in einem Projekt, das ich erstelle, benötigt der Compiler Stunden, um ein Modul zu kompilieren. Die Gesamtgröße meiner Codebasis beträgt 352 KB, aber keines der Module ist größer als 10 KB. Ich verwende einen nativen Port, aber er ist sehr trivial. Ich hole nur Date.now()
damit.
Gibt es irgendetwas Bekanntes, das dazu führen würde, dass das Kompilieren des Ulmen-Compilers ewig dauert? Ich habe nicht viele Abhängigkeiten, aber ich benutze viel HTML. Ich würde mich sehr über Hinweise freuen, was dies verursachen würde.
Bearbeiten
Es stellt sich also heraus, dass große Fallausdrücke dazu führen, dass der Optimierer ab 0,16 eine lange Zeit benötigt. Hier ist die Diskussion über Elm-Discuss , in der das Problem angesprochen wird , und ein Kern des bösen Fallmatches .
Ich denke, um wortreich zu sein und eine Karotte da draußen zu halten, warum sollte Elms Compiler diesen Weg für die Fallübereinstimmung einschlagen? Was ist die zugrunde liegende Maschinerie hier los? Warum sollte der Compiler länger als eine Stunde brauchen, um mehr als 60 Musterübereinstimmungen für eine case-Anweisung zu optimieren?