abstract class CompilerOracle extends AnyRef
A compiler oracle is an entity that provides answers to questions that come up during the compilation of build targets. The oracle is an entity capable of synchronizing and answering questions critical for deduplicating and running compilations concurrently.
For example, if a project wants to know something about the compilation of its dependencies, the oracle would be the right place to create a method that provides answers.
The compiler oracle is created every time a project compilation is scheduled. Depending on the implementation, it can know both global information such as all the ongoing compilations happening in the build server, local data such as how a target is being compiled or both.
- Alphabetic
- By Inheritance
- CompilerOracle
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new CompilerOracle()
Abstract Value Members
-
abstract
def
askForJavaSourcesOfIncompleteCompilations: List[File]
Returns java sources of all those dependent projects whose compilations are not yet finished when build pipelining is enabled.
Returns java sources of all those dependent projects whose compilations are not yet finished when build pipelining is enabled. If build pipelining is disabled, returns always an empty list since the class files of Java sources are already present in the compilation classpath.
-
abstract
def
blockUntilMacroClasspathIsReady(usedMacroSymbol: String): Unit
Blocks until the macro classpath for this macro is ready.
Blocks until the macro classpath for this macro is ready. If the macro has not been defined, we ignore it (it comes from a third-party library), otherwise we will wait until all dependent projects defining macros have finished compilation.
-
abstract
def
collectDefinedMacroSymbols: Array[String]
Collects all macro symbols that have been defined by this compilation.
-
abstract
def
collectDownstreamSignatures(): Array[Signature]
Collects all downstream signatures of transitive dependencies that have not yet finished compilation.
Collects all downstream signatures of transitive dependencies that have not yet finished compilation. Those dependenciess that finished compilation don't need to provide their signatures because they will be loaded from the classes directory.
-
abstract
def
isPipeliningEnabled: Boolean
Answers if build pipelining is enabled in the whole compilation run.
-
abstract
def
registerDefinedMacro(definedMacroSymbol: String): Unit
Registers a macro defined during this compilation run.
Registers a macro defined during this compilation run. It takes a full symbol name and associates it with the project under compilation.
-
abstract
def
startDownstreamCompilations(signatures: Array[Signature]): Unit
Starts downstream compilations with the compile pickle data generated during the compilation of a project.
Starts downstream compilations with the compile pickle data generated during the compilation of a project. This method needs to take care of making the pickles accessible to downstream compilations.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )