what happened |
Right now we don't have a good handle on when to recompile the dependencies of a Scala file. Basically, because \
of the way mixins are currently compiled, we have to recompile the transitive closure of a Scala file's dependen\
cies whenever the file changes at all. This basically means separate compilation is currently poorly supported.
\
What we need is a specification of what changes necessitate recompilation of what dependencies, and then we need\
to figure out how to detect these changes in NSC. Some changes in the signatures of non-private members necessi\
tate recompilation of direct dependencies. For traits, changes to private members can also require recompiling a\
ny classes (but not traits) that inherit the trait. The way super accesses and outer pointers are compiled is pa\
rticularly fragile to separate compilation, since they are done lazily.
|