object Compiler
- Alphabetic
- By Inheritance
- Compiler
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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
- def analysisFrom(prev: PreviousResult): Option[CompileAnalysis]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def compile(compileInputs: CompileInputs): Task[Result]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @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
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def persist(storeFile: AbsolutePath, analysis: CompileAnalysis, setup: MiniSetup, tracer: BraveTracer, logger: Logger): Unit
- def previousProblemsFromResult(result: Result, previousSuccessfulProblems: List[ProblemPerPhase]): List[ProblemPerPhase]
the problems (errors/warnings/infos) that were generated in the last incremental compilation, be it successful or not.
the problems (errors/warnings/infos) that were generated in the last incremental compilation, be it successful or not. See previousProblemsFromSuccessfulCompilation for an explanation of why these problems are important for the bloop compilation.
- def previousProblemsFromSuccessfulCompilation(analysis: Option[CompileAnalysis]): List[ProblemPerPhase]
Returns the problems (infos/warnings) that were generated in the last successful incremental compilation.
Returns the problems (infos/warnings) that were generated in the last successful incremental compilation. These problems are material for the correct handling of compiler reporters since they might be stateful with the clients (e.g. BSP reporter).
- def rebaseAnalysisClassFiles(analysis0: CompileAnalysis, origin: Path, target: Path, sourceFilesWithFatalWarnings: Set[File]): Analysis
Change the paths of the class files inside the analysis.
Change the paths of the class files inside the analysis.
As compiler isolation requires every process to write to an independent classes directory, while still sourcing the previous class files from a read-only classes directory, this method has to ensure that the next user of this analysis sees that all products come from the same directory, which is the new classes directory we've written to.
Up in the bloop call stack, we make sure that we spawn a process that copies all class files from the read-only classes directory to the new classes directory so that the new paths in the analysis exist in the file system.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toBackgroundTasks(tasks: List[(AbsolutePath, Reporter, BraveTracer) => Task[Unit]]): CompileBackgroundTasks
- def toString(): String
- Definition Classes
- AnyRef → Any
- def updatePreviousResultWithRecentClasspathHashes(previous: PreviousResult, uniqueInputs: UniqueCompileInputs): PreviousResult
Update the previous result with the most recent classpath hashes.
Update the previous result with the most recent classpath hashes.
The incremental compiler has two mechanisms to ascertain if it has to recompile code or can skip recompilation (what it's traditionally called as a no-op compile). The first phase checks if classpath hashes are the same. If they are, it's a no-op compile, if they are not then it passes to the second phase which does an expensive classpath computation to better decide if a recompilation is needed.
This last step can be expensive when there are lots of projects in a build and even more so when these projects produce no-op compiles. This method makes sure we update the classpath hash if Zinc finds a change in the classpath and still decides it's a no-op compile. This prevents subsequent no-op compiles from paying the price for the same expensive classpath check.
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object Result
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)