Fix reporting compiler stats
Now it should report actual values for languageVersion, apiVersion and progressiveMode for any compilation invocation. ^KT-57159 In Progress
This commit is contained in:
committed by
Space Team
parent
dfec9efbb0
commit
edc6194737
-10
@@ -14,14 +14,11 @@ import org.jetbrains.kotlin.config.LanguageVersion
|
|||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||||
import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
|
import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompileTool
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinNativeCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinNativeCompile
|
||||||
import org.jetbrains.kotlin.gradle.tasks.toSingleCompilerPluginOptions
|
import org.jetbrains.kotlin.gradle.tasks.toSingleCompilerPluginOptions
|
||||||
import org.jetbrains.kotlin.project.model.LanguageSettings
|
import org.jetbrains.kotlin.project.model.LanguageSettings
|
||||||
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
|
||||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
internal class DefaultLanguageSettingsBuilder : LanguageSettingsBuilder {
|
internal class DefaultLanguageSettingsBuilder : LanguageSettingsBuilder {
|
||||||
@@ -136,13 +133,6 @@ internal fun applyLanguageSettingsToCompilerOptions(
|
|||||||
freeCompilerArgs.addAll(freeArgs)
|
freeCompilerArgs.addAll(freeArgs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Fix it - get actual values on execution
|
|
||||||
KotlinBuildStatsService.getInstance()?.apply {
|
|
||||||
report(BooleanMetrics.KOTLIN_PROGRESSIVE_MODE, languageSettingsBuilder.progressiveMode)
|
|
||||||
apiVersion.orNull?.also { v -> report(StringMetrics.KOTLIN_API_VERSION, v.version) }
|
|
||||||
languageVersion.orNull?.also { v -> report(StringMetrics.KOTLIN_LANGUAGE_VERSION, v.version) }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val apiVersionValues = ApiVersion.run {
|
private val apiVersionValues = ApiVersion.run {
|
||||||
|
|||||||
+16
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmMetadataCompilationData
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmMetadataCompilationData
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmNativeCompilationData
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmNativeCompilationData
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.KonanPropertiesBuildService
|
import org.jetbrains.kotlin.gradle.targets.native.KonanPropertiesBuildService
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.internal.isAllowCommonizer
|
import org.jetbrains.kotlin.gradle.targets.native.internal.isAllowCommonizer
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.tasks.*
|
import org.jetbrains.kotlin.gradle.targets.native.tasks.*
|
||||||
@@ -49,6 +50,8 @@ import org.jetbrains.kotlin.konan.target.Distribution
|
|||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.library.*
|
import org.jetbrains.kotlin.library.*
|
||||||
import org.jetbrains.kotlin.project.model.LanguageSettings
|
import org.jetbrains.kotlin.project.model.LanguageSettings
|
||||||
|
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||||
|
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -488,6 +491,7 @@ internal constructor(
|
|||||||
val output = outputFile.get()
|
val output = outputFile.get()
|
||||||
output.parentFile.mkdirs()
|
output.parentFile.mkdirs()
|
||||||
|
|
||||||
|
collectCommonCompilerStats()
|
||||||
val buildArgs = buildCompilerArgs()
|
val buildArgs = buildCompilerArgs()
|
||||||
|
|
||||||
KotlinNativeCompilerRunner(
|
KotlinNativeCompilerRunner(
|
||||||
@@ -495,6 +499,18 @@ internal constructor(
|
|||||||
executionContext = KotlinToolRunner.GradleExecutionContext.fromTaskContext(objectFactory, execOperations, logger)
|
executionContext = KotlinToolRunner.GradleExecutionContext.fromTaskContext(objectFactory, execOperations, logger)
|
||||||
).run(buildArgs)
|
).run(buildArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun collectCommonCompilerStats() {
|
||||||
|
KotlinBuildStatsService.getInstance()?.apply {
|
||||||
|
report(BooleanMetrics.KOTLIN_PROGRESSIVE_MODE, compilerOptions.progressiveMode.get())
|
||||||
|
compilerOptions.apiVersion.orNull?.also { v ->
|
||||||
|
report(StringMetrics.KOTLIN_API_VERSION, v.version)
|
||||||
|
}
|
||||||
|
compilerOptions.languageVersion.orNull?.also { v ->
|
||||||
|
report(StringMetrics.KOTLIN_LANGUAGE_VERSION, v.version)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ExternalDependenciesBuilder(
|
internal class ExternalDependenciesBuilder(
|
||||||
|
|||||||
+18
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
|
|||||||
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers
|
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers
|
||||||
import org.jetbrains.kotlin.compilerRunner.UsesCompilerSystemPropertiesService
|
import org.jetbrains.kotlin.compilerRunner.UsesCompilerSystemPropertiesService
|
||||||
import org.jetbrains.kotlin.daemon.common.MultiModuleICSettings
|
import org.jetbrains.kotlin.daemon.common.MultiModuleICSettings
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.incremental.UsesIncrementalModuleInfoBuildService
|
import org.jetbrains.kotlin.gradle.incremental.UsesIncrementalModuleInfoBuildService
|
||||||
import org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor
|
import org.jetbrains.kotlin.gradle.internal.AbstractKotlinCompileArgumentsContributor
|
||||||
import org.jetbrains.kotlin.gradle.internal.compilerArgumentsConfigurationFlags
|
import org.jetbrains.kotlin.gradle.internal.compilerArgumentsConfigurationFlags
|
||||||
@@ -52,6 +53,7 @@ import org.jetbrains.kotlin.gradle.utils.propertyWithNewInstance
|
|||||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalCompilerRunner
|
import org.jetbrains.kotlin.incremental.IncrementalCompilerRunner
|
||||||
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||||
|
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import org.jetbrains.kotlin.gradle.tasks.cleanOutputsAndLocalState as cleanOutputsAndLocalStateUtil
|
import org.jetbrains.kotlin.gradle.tasks.cleanOutputsAndLocalState as cleanOutputsAndLocalStateUtil
|
||||||
@@ -86,6 +88,9 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
|||||||
@get:LocalState
|
@get:LocalState
|
||||||
internal abstract val taskBuildLocalStateDirectory: DirectoryProperty
|
internal abstract val taskBuildLocalStateDirectory: DirectoryProperty
|
||||||
|
|
||||||
|
@get:Nested
|
||||||
|
abstract val compilerOptions: KotlinCommonCompilerOptions
|
||||||
|
|
||||||
@get:Internal
|
@get:Internal
|
||||||
internal val buildHistoryFile
|
internal val buildHistoryFile
|
||||||
get() = taskBuildLocalStateDirectory.file("build-history.bin")
|
get() = taskBuildLocalStateDirectory.file("build-history.bin")
|
||||||
@@ -239,6 +244,7 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
|||||||
it.report(BooleanMetrics.COMPILATION_STARTED, true)
|
it.report(BooleanMetrics.COMPILATION_STARTED, true)
|
||||||
}
|
}
|
||||||
validateCompilerClasspath()
|
validateCompilerClasspath()
|
||||||
|
collectCommonCompilerStats()
|
||||||
systemPropertiesService.get().startIntercept()
|
systemPropertiesService.get().startIntercept()
|
||||||
CompilerSystemProperties.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY.value = "true"
|
CompilerSystemProperties.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY.value = "true"
|
||||||
|
|
||||||
@@ -272,6 +278,18 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
|||||||
buildMetricsService.orNull?.also { it.addTask(path, this.javaClass, buildMetrics) }
|
buildMetricsService.orNull?.also { it.addTask(path, this.javaClass, buildMetrics) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun collectCommonCompilerStats() {
|
||||||
|
KotlinBuildStatsService.getInstance()?.apply {
|
||||||
|
report(BooleanMetrics.KOTLIN_PROGRESSIVE_MODE, compilerOptions.progressiveMode.get())
|
||||||
|
compilerOptions.apiVersion.orNull?.also { v ->
|
||||||
|
report(StringMetrics.KOTLIN_API_VERSION, v.version)
|
||||||
|
}
|
||||||
|
compilerOptions.languageVersion.orNull?.also { v ->
|
||||||
|
report(StringMetrics.KOTLIN_LANGUAGE_VERSION, v.version)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected open fun cleanOutputsAndLocalState(reason: String?) {
|
protected open fun cleanOutputsAndLocalState(reason: String?) {
|
||||||
cleanOutputsAndLocalStateUtil(reason)
|
cleanOutputsAndLocalStateUtil(reason)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user