scala3
scala3 copied to clipboard
Support Zinc pipelining
support ThisBuild/usePipelining := true in sbt for Scala 3 projects.
Requirements
- add
-Ypickle-javaand-Ypickle-writeflags, expected by Zinc when pipelining is enabled in sbt. - presence of
-Ypickle-write <destination>arguments requires that TASTy files are written early to that destination (ASAP afterpickler) apiPhaseCompletedanddependencyPhaseCompletedZinc callbacks must be called as soon as TASTy is fully written, which will activate early downstream compilation.- call
generatedNonLocalClasscallback before TASTy writing, which is necessary for Zinc to run the incremental algorithm early. -Ypickle-javaflag is a directive to include TASTy for Java sources in the-Ypickle-writedestination (not in the final compiler outputs)
Compatibility
All functionality is observable only under -Y flags, so this isn't a breaking change