Minor: add more logging to KotlinBuilder

Original commit: b7772f32ce
This commit is contained in:
Zalim Bashorov
2015-11-12 15:35:16 +03:00
parent 8c43a177db
commit 2e3d3a5117
2 changed files with 26 additions and 1 deletions
@@ -90,6 +90,7 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
override fun buildStarted(context: CompileContext) { override fun buildStarted(context: CompileContext) {
LOG.debug("==========================================") LOG.debug("==========================================")
LOG.info("is Kotlin incremental compilation enabled: ${IncrementalCompilation.isEnabled()}") LOG.info("is Kotlin incremental compilation enabled: ${IncrementalCompilation.isEnabled()}")
LOG.info("is Kotlin experimental incremental compilation enabled: ${IncrementalCompilation.isExperimental()}")
val historyLabel = context.getBuilderParameter("history label") val historyLabel = context.getBuilderParameter("history label")
if (historyLabel != null) { if (historyLabel != null) {
@@ -165,6 +166,9 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
val allCompiledFiles = getAllCompiledFilesContainer(context) val allCompiledFiles = getAllCompiledFilesContainer(context)
val filesToCompile = KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder) val filesToCompile = KotlinSourceFileCollector.getDirtySourceFiles(dirtyFilesHolder)
LOG.debug("Compiling files: ${filesToCompile.values()}")
val start = System.nanoTime() val start = System.nanoTime()
val outputItemCollector = doCompileModuleChunk(allCompiledFiles, chunk, commonArguments, context, dirtyFilesHolder, val outputItemCollector = doCompileModuleChunk(allCompiledFiles, chunk, commonArguments, context, dirtyFilesHolder,
environment, filesToCompile, incrementalCaches, messageCollector, project) environment, filesToCompile, incrementalCaches, messageCollector, project)
@@ -233,6 +237,8 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
fun isKotlin(file: File) = KotlinSourceFileCollector.isKotlinSourceFile(file) fun isKotlin(file: File) = KotlinSourceFileCollector.isKotlinSourceFile(file)
fun isNotCompiled(file: File) = file !in allCompiledFiles fun isNotCompiled(file: File) = file !in allCompiledFiles
LOG.debug("compilationResult = $this")
when { when {
inlineAdded -> { inlineAdded -> {
allCompiledFiles.clear() allCompiledFiles.clear()
@@ -256,8 +262,11 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
fun CompilationResult.doProcessChangesUsingLookups() { fun CompilationResult.doProcessChangesUsingLookups() {
val lookupStorage = dataManager.getStorage(KotlinDataContainerTarget, LookupStorageProvider) val lookupStorage = dataManager.getStorage(KotlinDataContainerTarget, LookupStorageProvider)
LOG.debug("Start processing changes")
// TODO group by fqName? // TODO group by fqName?
for (change in changes) { for (change in changes) {
LOG.debug("Process $change")
if (change !is ChangeInfo.MembersChanged) continue if (change !is ChangeInfo.MembersChanged) continue
@@ -266,12 +275,17 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
.asSequence() .asSequence()
.map { File(it) } .map { File(it) }
.filter { it !in compiledFiles && it.exists() } .filter { it !in compiledFiles && it.exists() }
.toList()
LOG.debug("Mark dirty files: $files")
files.forEach { files.forEach {
FSOperations.markDirty(context, CompilationRound.NEXT, it) FSOperations.markDirty(context, CompilationRound.NEXT, it)
} }
} }
LOG.debug("End of processing changes")
caches.forEach { it.cleanDirtyInlineFunctions() } caches.forEach { it.cleanDirtyInlineFunctions() }
} }
@@ -646,9 +646,20 @@ public class IncrementalCacheImpl(
} }
sealed class ChangeInfo(val fqName: FqName) { sealed class ChangeInfo(val fqName: FqName) {
open class MembersChanged(fqName: FqName, val names: Collection<String>) : ChangeInfo(fqName) open class MembersChanged(fqName: FqName, val names: Collection<String>) : ChangeInfo(fqName) {
override fun toStringProperties(): String = super.toStringProperties() + ", names = $names"
}
class Removed(fqName: FqName, names: Collection<String>) : MembersChanged(fqName, names) class Removed(fqName: FqName, names: Collection<String>) : MembersChanged(fqName, names)
class SignatureChanged(fqName: FqName) : ChangeInfo(fqName) class SignatureChanged(fqName: FqName) : ChangeInfo(fqName)
protected open fun toStringProperties(): String = "fqName = $fqName"
override fun toString(): String {
return this.javaClass.simpleName + "(${toStringProperties()})"
}
} }
data class CompilationResult( data class CompilationResult(