From 1d47f4ad2b4ad466b77e255400213236f0e7895a Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Thu, 22 Apr 2021 13:33:10 +0200 Subject: [PATCH] Consolidate compiler id digest. Change all calculations of compiler id digest to use 'CompilerId#digest()' method. ^KT-45611 In Progress --- .../kotlin/daemon/common/experimental/ClientUtils.kt | 2 +- .../daemon/common/experimental/CompileServiceRMIWrapper.kt | 2 +- .../src/org/jetbrains/kotlin/daemon/common/ClientUtils.kt | 2 +- .../src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt | 5 +++++ .../src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt | 2 +- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/ClientUtils.kt b/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/ClientUtils.kt index 35415c3a177..98a9577d4b6 100644 --- a/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/ClientUtils.kt +++ b/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/ClientUtils.kt @@ -49,7 +49,7 @@ suspend fun walkDaemonsAsync( useRMI: Boolean = true, useSockets: Boolean = true ): List { // TODO: replace with Deferred> and use mapNotNullAsync to speed this up - val classPathDigest = compilerId.compilerClasspath.map { File(it).absolutePath }.distinctStringsDigest().toHexString() + val classPathDigest = compilerId.digest() val portExtractor = makePortFromRunFilenameExtractor(classPathDigest) return registryDir.walk().toList() // list, since walk returns Sequence and Sequence.map{...} is not inline => coroutines dont work .map { Pair(it, portExtractor(it.name)) } diff --git a/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/CompileServiceRMIWrapper.kt b/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/CompileServiceRMIWrapper.kt index ac50e52e90d..c0b7e5da41d 100644 --- a/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/CompileServiceRMIWrapper.kt +++ b/compiler/daemon/daemon-common-new/src/org/jetbrains/kotlin/daemon/common/experimental/CompileServiceRMIWrapper.kt @@ -217,7 +217,7 @@ class CompileServiceRMIWrapper(val server: CompileServiceServerSide, daemonOptio runFileDir, makeRunFilenameString( timestamp = "%tFT% Boolean = { _, _ -> true }, report: (DaemonReportCategory, String) -> Unit = { _, _ -> } ): Sequence { - val classPathDigest = compilerId.compilerClasspath.map { File(it).absolutePath }.distinctStringsDigest().toHexString() + val classPathDigest = compilerId.digest() val portExtractor = makePortFromRunFilenameExtractor(classPathDigest) return registryDir.walk() .map { Pair(it, portExtractor(it.name)) } diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt index e271b975fa1..a2bf98aa99a 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/DaemonParams.kt @@ -238,6 +238,11 @@ data class CompilerId( get() = listOf(PropMapper(this, CompilerId::compilerClasspath, toString = { it.joinToString(File.pathSeparator) }, fromString = { it.trimQuotes().split(File.pathSeparator) }), StringPropMapper(this, CompilerId::compilerVersion)) + fun digest(): String = compilerClasspath + .map { File(it).absolutePath } + .distinctStringsDigest() + .toHexString() + companion object { @JvmStatic fun makeCompilerId(vararg paths: File): CompilerId = makeCompilerId(paths.asIterable()) diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 0dc1f4418dc..ee342ec72f9 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -243,7 +243,7 @@ abstract class CompileServiceImplBase( runFileDir, makeRunFilenameString( timestamp = "%tFT%