Last active

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Scala incremental compiler improvements by Grzegorz Kossakowski. Actual runtimes are not so important here, since the two benchmarks were run on different machines, and also they make no attempt to ensure that the scala compiler is fully JITed, which during normal Play development offers significant improvements over these times as the compiler is kept warm between recompiles. But notice how many files need to be recompiled with each change - with SBT 0.12, the whole world needed to be recompiled each time.

View With Grzegorz's improvements
1 2 3 4 5 6 7 8 9 10 11
Initial clean compile of entire project:
[info] [info] Compiling 29 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 15 s, completed Aug 28, 2013 9:43:38 PM
 
Now simulate adding a method to a controller:
[info] [info] Compiling 1 Scala source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 2 s, completed Aug 28, 2013 9:43:40 PM
 
Now simulate adding a new route to the routes file:
[info] [info] Compiling 2 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 5 s, completed Aug 28, 2013 9:43:45 PM
View With Grzegorz's improvements
1 2 3 4 5 6 7 8 9 10 11 12 13
Initial clean compile of entire project:
[info] [info] Compiling 29 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 25 s, completed 29/08/2013 2:49:17 PM
 
Now simulate adding a method to a controller:
[info] [info] Compiling 1 Scala source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [info] Compiling 29 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 16 s, completed 29/08/2013 2:49:32 PM
 
Now simulate adding a new route to the routes file:
[info] [info] Compiling 2 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [info] Compiling 29 Scala sources and 1 Java source to /tmp/inc-compile/target/scala-2.10/classes...
[info] [success] Total time: 10 s, completed 29/08/2013 2:49:43 PM
diwa commented

Excellent news. How/When do we get to enjoy this in play?

@diwa: I hope I can gets this merged in subsequent releases of sbt 0.13.x.

diwa commented

That's great. Looking forward eagerly.

Fantastic!

This is so awesome. I cannot wait!!!

Are the changes the pull request below or are there more pull requests to come?
https://github.com/sbt/sbt/pull/839

+1, awesome!

+1, looking forward to it!

FYI: I started merging my changes back to sbt. It will take a few weeks to finish.

You can follow my work here:

Cool

I decided to make it easier to follow the status of the merge by creating a meta issue. Check it out here: https://github.com/sbt/sbt/issues/1010

Awesome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.