final case class CompileBundle(project: Project, clientClassesDir: AbsolutePath, dependenciesData: CompileDependenciesData, javaSources: List[AbsolutePath], scalaSources: List[AbsolutePath], uniqueInputs: UniqueCompileInputs, cancelCompilation: Promise[Unit], reporter: ObservedReporter, logger: ObservedLogger[Logger], mirror: Observable[Either[ReporterAction, LoggerAction]], lastSuccessful: LastSuccessfulResult, latestResult: Result, tracer: BraveTracer) extends Product with Serializable
Define a bundle of high-level information about a project that is going to be compiled. It packs several derived data from the project and makes it available both to the implementation of compile in bloop.engine.tasks.CompileTask and the logic that runs the compile graph. The latter needs information about Java and Scala sources to appropriately (and efficiently) do build pipelining in mixed Java and Scala setups when enabled.
A CompileBundle has the same hashCode() and equals() than
Project for performance reasons. CompileBundle is a class that is
heavily used in the guts of the compilation logic (namely CompileGraph
and bloop.engine.tasks.CompileTask). Because these classes depend on a
fast hashCode() to cache dags and other instances that contain bundles,
our implementation of hashCode() is as fast as the hash code of a
project, which is cached. Using project
's hash code does not pose any
problem given that the rest of the members of a bundle are derived from a
project.
- project
The project to compile.
- clientClassesDir
The external client-owned classes directory.
- dependenciesData
An entity that abstract over all the data of dependent projects, which is required to create a full classpath.
- javaSources
A list of Java sources in the project.
- scalaSources
A list of Scala sources in the project.
- cancelCompilation
A promise that can be completed to cancel the compilation.
- reporter
A reporter instance that will register every reporter action produced by the compilation started by this compile bundle.
- logger
A logger instance that will register every logger action produced by the compilation started by this compile bundle.
- mirror
An observable that contains all reporter and logger actions.
- lastSuccessful
An instance of the last successful result. CompileGraph will replace the default empty result with the most recent successful result that needs to be used for the compilation.
- latestResult
The latest result registered by the client. Required because the reporting of diagnostics might be stateful (BSP diagnostics reporting is, for example) and some of the state is contain in this result.
- Alphabetic
- By Inheritance
- CompileBundle
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
CompileBundle(project: Project, clientClassesDir: AbsolutePath, dependenciesData: CompileDependenciesData, javaSources: List[AbsolutePath], scalaSources: List[AbsolutePath], uniqueInputs: UniqueCompileInputs, cancelCompilation: Promise[Unit], reporter: ObservedReporter, logger: ObservedLogger[Logger], mirror: Observable[Either[ReporterAction, LoggerAction]], lastSuccessful: LastSuccessfulResult, latestResult: Result, tracer: BraveTracer)
- project
The project to compile.
- clientClassesDir
The external client-owned classes directory.
- dependenciesData
An entity that abstract over all the data of dependent projects, which is required to create a full classpath.
- javaSources
A list of Java sources in the project.
- scalaSources
A list of Scala sources in the project.
- cancelCompilation
A promise that can be completed to cancel the compilation.
- reporter
A reporter instance that will register every reporter action produced by the compilation started by this compile bundle.
- logger
A logger instance that will register every logger action produced by the compilation started by this compile bundle.
- mirror
An observable that contains all reporter and logger actions.
- lastSuccessful
An instance of the last successful result. CompileGraph will replace the default empty result with the most recent successful result that needs to be used for the compilation.
- latestResult
The latest result registered by the client. Required because the reporting of diagnostics might be stateful (BSP diagnostics reporting is, for example) and some of the state is contain in this result.
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
- val cancelCompilation: Promise[Unit]
- val clientClassesDir: AbsolutePath
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- val dependenciesData: CompileDependenciesData
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(other: Any): Boolean
- Definition Classes
- CompileBundle → Equals → 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()
-
val
hashCode: Int
- Definition Classes
- CompileBundle → AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isJavaOnly: Boolean
- val javaSources: List[AbsolutePath]
- val lastSuccessful: LastSuccessfulResult
- val latestResult: Result
- val logger: ObservedLogger[Logger]
- val mirror: Observable[Either[ReporterAction, LoggerAction]]
-
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()
- val out: CompileOutPaths
- def prepareSourcesAndInstance: Either[ResultBundle, CompileSourcesAndInstance]
- val project: Project
- val reporter: ObservedReporter
- val scalaSources: List[AbsolutePath]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val tracer: BraveTracer
- val uniqueInputs: UniqueCompileInputs
-
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( ... )