Skip to content

Support Zinc pipelining #19743

Closed
Closed
@bishabosha

Description

@bishabosha

support ThisBuild/usePipelining := true in sbt for Scala 3 projects.

Requirements

  • add -Ypickle-java and -Ypickle-write flags, 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 after pickler)
  • apiPhaseCompleted and dependencyPhaseCompleted Zinc callbacks must be called as soon as TASTy is fully written, which will activate early downstream compilation.
  • call generatedNonLocalClass callback before TASTy writing, which is necessary for Zinc to run the incremental algorithm early.
  • -Ypickle-java flag is a directive to include TASTy for Java sources in the -Ypickle-write destination (not in the final compiler outputs)

Compatibility

All functionality is observable only under -Y flags, so this isn't a breaking change

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions