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.KotlinVersion
|
||||
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.AbstractKotlinCompileTool
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinNativeCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.toSingleCompilerPluginOptions
|
||||
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
|
||||
|
||||
internal class DefaultLanguageSettingsBuilder : LanguageSettingsBuilder {
|
||||
@@ -136,13 +133,6 @@ internal fun applyLanguageSettingsToCompilerOptions(
|
||||
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 {
|
||||
|
||||
+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.GradleKpmNativeCompilationData
|
||||
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.internal.isAllowCommonizer
|
||||
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.library.*
|
||||
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.nio.file.Files
|
||||
import javax.inject.Inject
|
||||
@@ -488,6 +491,7 @@ internal constructor(
|
||||
val output = outputFile.get()
|
||||
output.parentFile.mkdirs()
|
||||
|
||||
collectCommonCompilerStats()
|
||||
val buildArgs = buildCompilerArgs()
|
||||
|
||||
KotlinNativeCompilerRunner(
|
||||
@@ -495,6 +499,18 @@ internal constructor(
|
||||
executionContext = KotlinToolRunner.GradleExecutionContext.fromTaskContext(objectFactory, execOperations, logger)
|
||||
).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(
|
||||
|
||||
+18
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
|
||||
import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers
|
||||
import org.jetbrains.kotlin.compilerRunner.UsesCompilerSystemPropertiesService
|
||||
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.internal.AbstractKotlinCompileArgumentsContributor
|
||||
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.IncrementalCompilerRunner
|
||||
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
import org.jetbrains.kotlin.gradle.tasks.cleanOutputsAndLocalState as cleanOutputsAndLocalStateUtil
|
||||
@@ -86,6 +88,9 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
||||
@get:LocalState
|
||||
internal abstract val taskBuildLocalStateDirectory: DirectoryProperty
|
||||
|
||||
@get:Nested
|
||||
abstract val compilerOptions: KotlinCommonCompilerOptions
|
||||
|
||||
@get:Internal
|
||||
internal val buildHistoryFile
|
||||
get() = taskBuildLocalStateDirectory.file("build-history.bin")
|
||||
@@ -239,6 +244,7 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
|
||||
it.report(BooleanMetrics.COMPILATION_STARTED, true)
|
||||
}
|
||||
validateCompilerClasspath()
|
||||
collectCommonCompilerStats()
|
||||
systemPropertiesService.get().startIntercept()
|
||||
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) }
|
||||
}
|
||||
|
||||
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?) {
|
||||
cleanOutputsAndLocalStateUtil(reason)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user