Elm Compiler sonsuza kadar çalışıyor, bilgisayar ısınıyor


100

Bu soruna neyin neden olduğundan emin değilim, ancak bir projede, oluşturuyorum, derleyicinin sadece bir modülü derlemesi saatler sürüyor. Kod tabanımın toplam boyutu 352KB, ancak modüllerin hiçbiri 10KB'nin üzerinde değil. Yerel bir bağlantı noktası kullanıyorum, ancak bu çok önemsiz; Ben sadece Date.now()onunla getiriyorum.

Elm derleyicisinin derlemesinin sonsuza kadar sürmesine neden olacak iyi bilinen bir şey var mı? Çok fazla bağımlılığım yok ama çok Html kullanıyorum. Buna neyin sebep olacağına dair tüm ipuçlarını gerçekten takdir ediyorum.

Düzenle

Bu nedenle, büyük durum ifadelerinin optimize edicinin 0.16 itibarıyla uzun bir zaman almasına neden olacağı ortaya çıktı . İşte konuyu gündeme getiren Elm-Discuss tartışması ve çirkin vaka eşleşmesinin bir özü .

Sanırım ayrıntılı olmak ve orada bir havuç tutmak için, elm'in derleyicisi neden durum eşleştirme için bu yolu kullansın? Burada temel makine neler oluyor? Derleyicinin bir vaka ifadesindeki 60'tan fazla kalıp eşleşmesini optimize etmesi neden bir saatten uzun sürüyor?


4
Merak ediyorum. Elm derleyicisi, bir vaka ifadesini derlemek için saatler süren ne tür bir optimizasyon gerçekleştiriyor? Durum ifadeniz çok büyük görünmüyor (en azından bir bilgisayar için yeterince büyük değil). Bu, Elm derleyicisinin gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten gerçekten çok kötü bir optimizasyon algoritmasına sahip olduğu anlamına gelir. Örneğin, tüm 721 pokémon'la bir vaka ifadesi derlemesinin ne kadar süreceğini hayal edin.
Aadit M Shah

4
Sanırım cevap burada yatıyor , belki de haskelletiket eklemeyi denemelisin ve haskell kullanıcılarının bize bir şey ifşa edip edemeyeceğini görmelisin.
halfzebra

5
Bence daha iyi bir mekanda vaka meselelerini düzeltmek için yeni bir soru sormalı ve vakaların yavaş bilindiğini açıklayarak kendi sorunuzu yanıtlamalısınız. Nedeniyle ilgili olarak, ilgili kod şurada görünüyor: github.com/elm-lang/elm-compiler/blob/master/src/Optimize Alıntı yapılan Scott & Ramsey makalesi, "küçük dallanma faktörünün" ne kadar yavaş olduğunu açıklıyor. Yukarıdaki kodda, buluşsal yöntem, küçük temerrütler bağlandığında eşitliği bozan bir yöntem olarak kullanılır. Öyleyse, kötü örneklerinize bahse girerim, küçük varsayılan bağlar çoktur ve korkunç vakayı yakaladık. Benim görüşüm: Elm, SBF'yi bir faktör olarak kullanmamalı, nokta.
sclv

24
Lütfen bu soruyu kendi kendinize yanıtlayabilir misiniz, böylece artık cevaplanmamış listede görünmez?
Julian Leviston

5
Gerçekten derlemeyi bitirdi mi?
Worthy7

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.