2012-05-19 2 views
5

스칼라에서의 컴파일은 상당히 느립니다. 더 빨리 할 수있는 희망이 있습니까?스칼라 용 컴파일러 캐시?

내 마음에 오는 한 가지 점은 컴파일러가 일부를 다시 컴파일 할 필요가없는 캐시 인 ccache와 동일한 스칼라입니다. 저는 타입 유추가 상황을 좀 더 복잡하게 만든다는 것을 알고 있지만, 그것이 가능한지 전혀 궁금합니다. 어쩌면 캐싱은 다른 레벨 (예 : AST)에서 수행되어야하거나 사전 처리의 일종을 수행해야합니다.

그런 종류의 도구가있는 경우 잠재적으로 저장할 수있는 예상치가 얼마인지 알게되어 기쁩니다. 그것을 만들기 위해 어떤 종류의 도전이 필요합니까?

+2

캐시 할 항목을 지정하지 않았습니다. 당신은 ccache를 언급하지만 C++을 대상으로하고 있습니다. 스칼라에 비해 컴파일 방식이 크게 다릅니다. 당신이 찾고있는 것이 점진적 편집이라고 생각합니다. Sbt는이 기능을 구현했지만 여전히 여전히 버그가 있습니다 (너무 많이 다시 컴파일 할 수 있음). 정확하게 현금화되어야하는 것을 지정하는 것과 같이 질문이 명확하면 더 정확하게 대답 할 수 있습니다. –

+0

원본 ccache는 사전 처리 된 .c .cpp 파일을 개체 바이너리에 캐시합니다. 프로그래머 관점에서 빌드 속도를 높이는 것이 중요하지 않습니다. 몇 가지 가능성 : - 파일 자체 (형식 유추로 인해 불가능) - AST - 일부 종류의 사전 처리 된 파일 – Jakozaur

+0

sbt는 실제로 필요한 것을 다시 컴파일하여 .class 파일을 캐시합니다. 나는 그것이 당신이 찾고있는 것과 정확히 같다고 생각합니다. –

답변

0

필요한 것을 다시 컴파일하는 SBT뿐만 아니라 JRebel도이 문제를 해결하고 Scala를 지원합니다.

+0

SBT는 필요하지 않은 많은 것을 다시 컴파일하고, * 필요한 *를 다시 컴파일하지 못합니다. – aij