영원히 실행되는 Elm 컴파일러, 컴퓨터가 뜨거워 짐


100

이 문제의 원인은 확실하지 않지만 프로젝트에서 빌드 중이며 컴파일러는 모듈을 컴파일하는 데 몇 시간이 걸립니다. 내 코드베이스의 총 크기는 352KB이지만 10KB를 초과하는 모듈은 없습니다. 네이티브 포트를 사용하고 있지만 매우 사소합니다. 그냥 가져 오는 중 Date.now()입니다.

elm 컴파일러가 컴파일하는 데 오랜 시간이 걸리는 잘 알려진 것이 있습니까? 종속성이 많지는 않지만 Html을 많이 사용하고 있습니다. 나는 이것을 일으키는 원인에 대한 힌트를 정말로 고맙게 생각합니다.

편집하다

따라서 큰 케이스 표현식 은 최적화 프로그램이 0.16부터 오랜 시간이 걸리도록합니다. 문제를 제기하는 Elm-Discuss에 대한 토론불쾌한 케이스 일치요점은 다음과 같습니다 .

나는 장황하고 당근을 유지하기 위해 왜 elm의 컴파일러가 대소 문자 일치를 위해이 경로를 사용합니까? 여기서 작동하는 기본 기계는 무엇입니까? 컴파일러가 case 문에서 60 개 이상의 패턴 일치를 최적화하는 데 1 시간 이상 걸리는 이유는 무엇입니까?


4
궁금해. 케이스 표현식을 컴파일하는 데 몇 시간이 걸리는 Elm 컴파일러는 어떤 종류의 최적화를 수행합니까? 귀하의 사례 표현이 너무 크지 않은 것 같습니다 (적어도 컴퓨터에 비해 충분히 크지는 않음). 이것은 Elm 컴파일러가 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 정말 나쁜 최적화 알고리즘을 가지고 있다는 것을 의미합니다. 예를 들어 모든 721 포켓몬으로 케이스 표현식을 컴파일하는 데 걸리는 시간을 상상해보십시오.
Aadit M Shah

4
대답은 여기 에 있습니다. haskell태그를 추가 하고 하스켈 사람들이 우리에게 뭔가를 공개 할 수 있는지 확인해야합니다.
halfzebra

5
더 나은 장소에서 사건 문제를 해결하는 데 새로운 질문을하고 사건 문제가 느리다고 설명하는 것만으로 답해야한다고 생각합니다. 그 이유에 대해 관련 코드는 다음과 같습니다. github.com/elm-lang/elm-compiler/blob/master/src/Optimize 인용 된 Scott & Ramsey 문서에서는 "작은 분기 요소"휴리스틱이 얼마나 느린 지 설명합니다. 위의 코드에서 휴리스틱은 작은 기본값이 연결될 때 순위 결정자로 사용됩니다. 그래서, 나는 당신의 나쁜 예에 걸었습니다. 작은 기본 관계가 많이 있었고 우리는 끔찍한 사건을 맞았습니다. 내 생각 : Elm은 SBF를 요소로 사용해서는 안됩니다.
sclv

24
이 질문이 더 이상 미 답변 목록에 나타나지 않도록이 질문에 스스로 대답 해 주시겠습니까?
Julian Leviston

5
실제로 컴파일이 끝났습니까?
Worthy7

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.