From 146d58bc5d98da1d142758f974d4d5de6f5948bf Mon Sep 17 00:00:00 2001 From: Guillaume Martres Date: Sat, 25 Aug 2018 18:28:59 +0900 Subject: Fix incremental compilation when a Scala project depends on a Java project (#414) * Upgrade ammonite to 1.1.2-30-53edc31 This is mainly to get https://github.com/lihaoyi/Ammonite/pull/851 which should reduce the amount of unnecessary work done by incremental compilation in the Mill build. This requires some code changes since this means we now depend on a more recent version of coursier, as a side-effect this means that we do not depend on scalaz anymore. Also use the same ammonite version in the Mill build and in ScalaModule#ammoniteReplClasspath. Also remove an incorrect dependency in the caffeine integration test. This was always wrong but did not start failing until this commit, probably due to dependencies appearing in a different order on the classpath. * Rename ScalaWorker to ZincWorker Starting with the next commit, it will be used in Java-only projects too, so the name is misleading. * Upgrade to Zinc 1.2.1 * Fix incremental compilation when a Scala project depends on a Java project Before this commit, JavaModule#compile simply called javac unconditionally, thus generating new classfiles every time. But if a Scala project depends on a Java project, this will throw off the incremental compilation algorithm which will unnecessarily recompile files. To avoid this we now use Zinc to compile Java projects too (as a bonus this means that Java compilation becomes incremental). This required some refactoring in ZincWorkerImpl to be able to compile stuff without having to pass Scala-specific options. The issue solved by this commit could be reproduced by running in the Mill repository: $ mill main.compile $ mill -i @ main.compile() and observing that before this commit, the `main.compile()` call ended up recompiling code. --- docs/VisualizePlan.svg | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'docs/VisualizePlan.svg') diff --git a/docs/VisualizePlan.svg b/docs/VisualizePlan.svg index f6e50b39..9f13384f 100644 --- a/docs/VisualizePlan.svg +++ b/docs/VisualizePlan.svg @@ -3,33 +3,33 @@ example1 - + -mill.scalalib.ScalaWorkerModule.classpath +mill.scalalib.ZincWorkerModule.classpath -mill.scalalib.ScalaWorkerModule.classpath +mill.scalalib.ZincWorkerModule.classpath - + -mill.scalalib.ScalaWorkerModule.compilerInterfaceClasspath +mill.scalalib.ZincWorkerModule.compilerInterfaceClasspath -mill.scalalib.ScalaWorkerModule.compilerInterfaceClasspath +mill.scalalib.ZincWorkerModule.compilerInterfaceClasspath - + -mill.scalalib.ScalaWorkerModule.worker +mill.scalalib.ZincWorkerModule.worker -mill.scalalib.ScalaWorkerModule.worker +mill.scalalib.ZincWorkerModule.worker - + -mill.scalalib.ScalaWorkerModule.worker->mill.scalalib.ScalaWorkerModule.classpath +mill.scalalib.ZincWorkerModule.worker->mill.scalalib.ZincWorkerModule.classpath - + -mill.scalalib.ScalaWorkerModule.worker->mill.scalalib.ScalaWorkerModule.compilerInterfaceClasspath +mill.scalalib.ZincWorkerModule.worker->mill.scalalib.ZincWorkerModule.compilerInterfaceClasspath @@ -297,9 +297,9 @@ moduledefs.compile - + -moduledefs.compile->mill.scalalib.ScalaWorkerModule.worker +moduledefs.compile->mill.scalalib.ZincWorkerModule.worker -- cgit v1.2.3