2012-05-19 13 views
5

La compilación en Scala es bastante lenta. ¿Hay alguna esperanza de hacerlo más rápido?Caché del compilador para Scala?

Una cosa que me viene a la mente es Scala equivalente a ccache: una memoria caché donde el compilador no tiene que recompilar algunas partes. Sé que la inferencia de tipo complica las cosas, pero me pregunto si es factible. Tal vez el almacenamiento en caché debe hacerse en un nivel diferente (por ejemplo, AST) o necesita hacer algún tipo de preprocesamiento.

Estaré encantado de ver algunas estimaciones de cuánto se podría guardar potencialmente si ese tipo de herramienta existe. ¿Qué tipo de desafíos se deben resolver para construirlo?

+2

No especificó lo que desea almacenar en caché. Mencionas ccache pero se dirige a C++, que tiene un esquema de compilación muy diferente al de Scala. Creo que lo que estás buscando es una compilación incremental. Sbt tiene esta característica implementada pero todavía está fallando (puede recompilar demasiado). Si la pregunta era más clara, como especificar qué se debería cobrar exactamente, entonces podría responder con mayor precisión. –

+0

Original ccache funciona que almacena en caché algo preprocesado .c .cpp archivos para objetos binarios. Desde la perspectiva del programador, no es tan importante siempre que acelere las construcciones. Algunas posibilidades: - archivos en sí (no es posible debido a la inferencia de tipo) - AST - algún tipo de archivos preprocesados ​​ – Jakozaur

+0

sbt almacena en caché archivos .class al recompilar lo que realmente se necesita. Creo que eso es exactamente lo que estás buscando. –

Respuesta

0

Además de SBT que solo recompila lo que se necesita, JRebel ayuda a resolver este problema y tiene compatibilidad con Scala.

+0

SBT recompila mucho que no es necesario, y a menudo no puede recompilar qué * es * necesario. – aij

Cuestiones relacionadas