commit 5992baa489882c21218955b20a5638548711d9b9 Author: Stu Hood Date: Wed Sep 16 13:26:59 2015 -0700 Lazily load zinc analysis Rather than eagerly loading all upstream analysis, we now lazily load it when it is requested, and allow it to be unloaded when necessary. It looks like sbt was always designed to be used this way, but zinc was eagerly building a map to fill the `getAnalysis` function that the sbt compiler desires. - Lazily load zinc analysis upon usage, and allow it to be freed by never holding strong references to the entire Analysis object. - Remove the zinc `-force-clean` flag, since it is unused from pants' perspective, and supporting it required additional Analysis apis. - Move `Cache` class to a `cache` package. Testing Done: cold compiles of large internal projects, and: ./pants test tests/python/pants_test/backend/jvm/tasks/jvm_compile/:: ...with a locally published version. Reviewed at https://rbcommons.com/s/twitter/r/2827/ src/scala/org/pantsbuild/zinc/AnalysisMap.scala | 124 ++++++++++++++++++++++++ src/scala/org/pantsbuild/zinc/Compiler.scala | 68 ++----------- src/scala/org/pantsbuild/zinc/Inputs.scala | 71 +++----------- src/scala/org/pantsbuild/zinc/Settings.scala | 4 +- 4 files changed, 148 insertions(+), 119 deletions(-)