Attributes
Members list
Type members
Classlikes
A holder for syncronization points and reports when writing TASTy asynchronously. The callbacks should only be called once.
Attributes
- Companion
- class
- Supertypes
- Self type
-
AsyncTastyHolder.type
Attributes
- Supertypes
Value members
Concrete methods
Asynchronously writes TASTy files to the destination -Yearly-tasty-output. If no units have been suspended, then we are "done", which enables Zinc to be signalled.
Asynchronously writes TASTy files to the destination -Yearly-tasty-output. If no units have been suspended, then we are "done", which enables Zinc to be signalled.
If there are suspended units, (due to calling a macro defined in the same run), then the API is incomplete, so it would be a mistake to signal Zinc. This is a sensible default, because Zinc by default will ignore the signal if there are macros in the API.
- See
sbt-test/pipelining/pipelining-scala-macro
for an example.
TODO: The user can override this default behaviour in Zinc to always listen to the signal, (e.g. if they define the macro implementation in an upstream, non-pipelined project).
- See
sbt-test/pipelining/pipelining-scala-macro-force
where we force Zinc to listen to the signal. If the user wants force early output to be written, then they probably also want to benefit from pipelining, which then makes suspension problematic as it increases compilation times. Proposal: perhaps we should provide a flag-Ystrict-pipelining
(as an alternative to-Yno-suspended-units
), which fails in the condition of definition of a macro where its implementation is in the same project. (regardless of if it is used); this is also more strict than preventing suspension at typer. The user is then certain that they are always benefitting as much as possible from pipelining.
Attributes
Concrete fields
If set, perform jump target compacting, position and comment pickling, as well as final assembly in parallel with downstream phases; force only in backend.
If set, perform jump target compacting, position and comment pickling, as well as final assembly in parallel with downstream phases; force only in backend.