-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build pipelining support #744
Commits on Jul 6, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 602cfe5 - Browse repository at this point
Copy the full SHA 602cfe5View commit details -
Implement early output and early analysis
For modular pipelining we need both early output (JAR file containing Scala sig files) and early Analysis (Zinc internal information). This adds `IncOptions#earlyOutput` and `Lookup#storeEarlyAnalysis` so the early artifacts can be generated during compile phases.
Configuration menu - View commit details
-
Copy full SHA for 1b7081d - Browse repository at this point
Copy the full SHA 1b7081dView commit details -
Expand CompileProgress and Setup
Early analysis store is passed into the Setup. CompileProgress is used to notify the early output timing.
Configuration menu - View commit details
-
Copy full SHA for 9676419 - Browse repository at this point
Copy the full SHA 9676419View commit details -
Implement pipelining using custom pickle jar
The deletion part required some tweaking to make sure this works for dir-based output.
Configuration menu - View commit details
-
Copy full SHA for 50601d5 - Browse repository at this point
Copy the full SHA 50601d5View commit details -
If a macro is found in any classes, use the regular output.
Configuration menu - View commit details
-
Copy full SHA for 8c74981 - Browse repository at this point
Copy the full SHA 8c74981View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0504f70 - Browse repository at this point
Copy the full SHA 0504f70View commit details -
With only Scala pipelining implemented, this Java-only pipelining test is pending. The issue lies in the fact that while scalac can consume its own .sig early output artifacts, javac can't.
Configuration menu - View commit details
-
Copy full SHA for f8c3bd0 - Browse repository at this point
Copy the full SHA f8c3bd0View commit details -
Fix how IncrementalCallback completes cycle
mergeAndInvalidate will merge the partialAnalysis with the pruned Analysis, so merged it twice will break it (duplicate Compilations). Only record the generated products in the partialAnalysis - fails the restore-classes scripted test if not.
Configuration menu - View commit details
-
Copy full SHA for 6a68748 - Browse repository at this point
Copy the full SHA 6a68748View commit details -
Configuration menu - View commit details
-
Copy full SHA for a47c3bf - Browse repository at this point
Copy the full SHA a47c3bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5390449 - Browse repository at this point
Copy the full SHA 5390449View commit details -
Close jars if the cp contains any output jars
This is to avoid the "The process cannot access the file because it is being used by another process" issue, on Windows.
Configuration menu - View commit details
-
Copy full SHA for 6923660 - Browse repository at this point
Copy the full SHA 6923660View commit details -
Add profiler to ExternalHooks, as a Java interface
The entry point API of Zinc, xsbti.compile.IncrementalCompiler, is defined in compiler-interface and is, therefore, entirely in Java, only. Therefore, in order to allow a user (e.g. an external build tool) to define their own profiler using this interface I extracted a Java-only interface for InvalidationProfiler and its components. Having done that I could add it to compiler-interface's xsbti.compile.ExternalHooks. I've kept the original, Scala variant, interface methods (e.g. using Scala's Iterable instead of Array or java.util.Set) for backwards compatibility and I've created an AdaptedRunProfiler that knows how to adapt the calls to the underlying XRunProfiler it contains.
Configuration menu - View commit details
-
Copy full SHA for fb8e03e - Browse repository at this point
Copy the full SHA fb8e03eView commit details