Kompilacja w Scali jest dość powolna. Czy są jakieś nadzieje na przyspieszenie?Pamięć podręczna kompilatora dla Scala?
Jedna rzecz, która przychodzi mi na myśl, to odpowiednik cala cache: pamięć podręczna, w której kompilator nie musi rekompilować niektórych części. Wiem, że wnioskowanie typu sprawia, że rzeczy są bardziej skomplikowane, ale zastanawiam się, czy w ogóle jest to wykonalne. Być może buforowanie powinno odbywać się na innym poziomie (np. AST) lub musi wykonać jakiś wstępny proces.
Z przyjemnością zobaczę niektóre szacunki, ile można by potencjalnie zaoszczędzić, jeśli takie narzędzie istnieje. Jakie wyzwania są potrzebne, aby rozwiązać ten problem?
Nie określono, co chcesz buforować. Wspominasz ccache, ale jego celem jest C++, który ma znacznie inny schemat kompilacji niż Scala. Myślę, że to, czego szukasz, to przyrostowa kompilacja. Sbt ma tę funkcję zaimplementowaną, ale nadal jest w dalszym ciągu błędna (może przekompilować za dużo). Jeśli pytanie było bardziej przejrzyste, jak określenie, co dokładnie powinno zostać zrealizowane, być może będę w stanie odpowiedzieć dokładniej. –
Oryginalny ccache działa, że buforuje nieco wstępnie przetworzone pliki .c .cpp do plików binarnych obiektów. Z perspektywy programisty nie jest to tak ważne, o ile przyspiesza kompilacje. Kilka możliwości: - same pliki (niedostępne z powodu typu wnioskowania) - AST - niektóre rodzaje wstępnie przetworzonych plików – Jakozaur
sbt buforuje pliki .class, rekompilując to, co jest naprawdę potrzebne. Myślę, że właśnie tego szukasz. –