Packages

c

bloop

CompilerOracle

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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CompilerOracle
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CompilerOracle()

Abstract Value Members

  1. 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.

  2. 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.

  3. abstract def collectDefinedMacroSymbols: Array[String]

    Collects all macro symbols that have been defined by this compilation.

  4. 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.

  5. abstract def isPipeliningEnabled: Boolean

    Answers if build pipelining is enabled in the whole compilation run.

  6. 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.

  7. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped