object CompileGraph
- Alphabetic
- By Inheritance
- CompileGraph
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class BundleInputs(project: Project, dag: Dag[Project], dependentProducts: Map[Project, BundleProducts]) extends Product with Serializable
- type BundleProducts = Either[PartialCompileProducts, CompileProducts]
- type CompileTraversal = Task[Dag[PartialCompileResult]]
- case class Inputs(bundle: CompileBundle, oracle: CompilerOracle, pipelineInputs: Option[PipelineInputs], dependentResults: Map[File, PreviousResult]) extends Product with Serializable
- case class PipelineInputs(irPromise: Promise[Array[Signature]], finishedCompilation: Promise[Option[CompileProducts]], completeJava: Promise[Unit], transitiveJavaSignal: Task[JavaSignal], separateJavaAndScala: Boolean) extends Product with Serializable
- type ProjectId = String
- type RunningCompilationsInAllClients = ConcurrentHashMap[UniqueCompileInputs, RunningCompilation]
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()
-
def
scheduleCompilation(inputs: BundleInputs, bundle: CompileBundle, client: ClientInfo, compile: (CompileBundle) ⇒ CompileTraversal): RunningCompilation
Schedules a compilation for a project that can be deduplicated by other clients.
-
def
setupAndDeduplicate(client: ClientInfo, inputs: BundleInputs, setup: (BundleInputs) ⇒ Task[CompileBundle])(compile: (CompileBundle) ⇒ CompileTraversal): CompileTraversal
Sets up project compilation, deduplicates compilation based on ongoing compilations in all concurrent clients and otherwise runs the compilation of a project.
Sets up project compilation, deduplicates compilation based on ongoing compilations in all concurrent clients and otherwise runs the compilation of a project.
The correctness of the compile deduplication depends on the effects that different clients perceive. For example, it would be incorrect to deduplicate the logic by memoizing the compilation task and not forwarding all the side effects produced during the compilation to all clients. This method takes care of replaying all the events that happen during the compilation of a given project, regardless of the time where clients ask for the same compilation. Most of the magic about how this is setup can be found in CompileTask, where the
setup
function is defined. The compile bundle contains both the observer to append events, that is added to the reporter and logger, as well as the stream to consume the events.- setup
The setup function that yields a bundle with unique oracle inputs.
- compile
The function that will compile the project.
- returns
A task that may be created by
compile
or may be a reference to a previous task.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
traverse(dag: Dag[Project], client: ClientInfo, setup: (BundleInputs) ⇒ Task[CompileBundle], compile: (Inputs) ⇒ Task[ResultBundle], pipeline: Boolean): CompileTraversal
Turns a dag of projects into a task that returns a dag of compilation results that can then be used to debug the evaluation of the compilation within Monix and access the compilation results received from Zinc.
Turns a dag of projects into a task that returns a dag of compilation results that can then be used to debug the evaluation of the compilation within Monix and access the compilation results received from Zinc.
- dag
The dag of projects to be compiled.
- returns
A task that returns a dag of compilation results.
-
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( ... )