Conversation
Recycle the compiler bridge and the scala instance (with its parent classloader) for every scripted test that has the same options (the scala version). This way, we avoid resolving the bridge and classloading it every time per scripted test.
|
c2cbf0d alone makes the execution of scripted more than twice faster. Before: |
Granularity is not a solution because of the intertwined dependencies in the project.
These are extracted from the sbt .travis.yml.
|
This is so frustrating. For some reason, Travis is not running the tests... |
9ed4f7b to
b593de3
Compare
Clearer name + changes to drone.yml.
|
Summary of changes: The following commits make the CI 7x faster than before. This is achieved
Parallelization at the build level has been removed because modules are too |
| @@ -0,0 +1 @@ | |||
| scalac.options = -Xmax-classfile-name 240 | |||
There was a problem hiding this comment.
This is necessary to work around an issue with large file paths in Docker AUFS, limit is 240 bytes. It only happens with 2.11.x because the compactify test makes an intensive use of synthesized classes with huge names.
|
Closing and opening again to update status of PR, that should be passing. |
Duhemm
left a comment
There was a problem hiding this comment.
2 small details, otherwise LGTM! Thanks for making CI great again 👍🏻
bin/run-ci.sh
Outdated
| -J-Xmx3046M -J-Xms3046M -J-server \ | ||
| zincRoot/test:compile scalafmtCheck \ | ||
| "publishBridgesAndSet $SCALA_VERSION" \ | ||
| crossTestBridges zincRoot/test zincRoot/scripted |
There was a problem hiding this comment.
Could you put each distinct command on a separate line? It makes it easier to read and less scary to configure the CI.
| sys.error(s"$command") | ||
| override def apply(command: String, | ||
| arguments: List[String], | ||
| state: Option[IncInstance]): Option[IncInstance] = { |
There was a problem hiding this comment.
state: State and returns a State too
There was a problem hiding this comment.
It's true, using State here makes it waaaay clearer.
|
Merging, travis hook has been disabled. |
Recycle the compiler bridge and the scala instance (with its parent
classloader) for every scripted test that has the same options (the
scala version). This way, we avoid resolving the bridge and classloading
it every time per scripted test.