Move daemon session flag files to daemon discovery dir by default + minor fixes:
- Move flag files from the temp dir, because right now JPS cleans temp dir on each build start. Should fix KT-15707, also may affect KT-15562. - change compiler runner to allow the fix above - Fix flag file name filtering - Fix ifAlive handling on the new compile method in the daemon.
This commit is contained in:
+1
-1
@@ -60,7 +60,7 @@ object KotlinCompilerClient {
|
||||
?.check { !it.isBlank() }
|
||||
?.let(::File)
|
||||
?.check(File::exists)
|
||||
?: makeAutodeletingFlagFile()
|
||||
?: makeAutodeletingFlagFile(baseDir = File(daemonOptions.runFilesPathOrDefault))
|
||||
return connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, reportingTargets, autostart)
|
||||
}
|
||||
|
||||
|
||||
@@ -81,10 +81,10 @@ private inline fun tryConnectToDaemon(port: Int, report: (DaemonReportCategory,
|
||||
return null
|
||||
}
|
||||
|
||||
private const val validFlagFileKeywordChars = "abcdefghijklmnopqrstuvwxyz0123456789-_"
|
||||
|
||||
fun makeAutodeletingFlagFile(keyword: String = "compiler-client"): File {
|
||||
val validChars = "^a-zA-Z0-9-_"
|
||||
val flagFile = File.createTempFile("kotlin-${keyword.filter { validChars.contains(it) }}-", "-is-running")
|
||||
fun makeAutodeletingFlagFile(keyword: String = "compiler-client", baseDir: File? = null): File {
|
||||
val flagFile = File.createTempFile("kotlin-${keyword.filter { validFlagFileKeywordChars.contains(it.toLowerCase()) }}-", "-is-running", baseDir?.takeIf { it.isDirectory && it.exists() })
|
||||
flagFile.deleteOnExit()
|
||||
return flagFile
|
||||
}
|
||||
|
||||
@@ -328,7 +328,7 @@ class CompileServiceImpl(
|
||||
compilationOptions: CompilationOptions,
|
||||
servicesFacade: CompilerServicesFacadeBase,
|
||||
compilationResults: CompilationResults?
|
||||
): CompileService.CallResult<Int> {
|
||||
): CompileService.CallResult<Int> = ifAlive {
|
||||
val messageCollector = CompileServicesFacadeMessageCollector(servicesFacade, compilationOptions)
|
||||
val daemonReporter = DaemonMessageReporter(servicesFacade, compilationOptions)
|
||||
val compilerMode = compilationOptions.compilerMode
|
||||
@@ -342,10 +342,10 @@ class CompileServiceImpl(
|
||||
}
|
||||
catch (e: IllegalArgumentException) {
|
||||
messageCollector.report(CompilerMessageSeverity.EXCEPTION, e.stackTraceStr, CompilerMessageLocation.NO_LOCATION)
|
||||
return CompileService.CallResult.Error("Could not deserialize compiler arguments")
|
||||
return@ifAlive CompileService.CallResult.Error("Could not deserialize compiler arguments")
|
||||
}
|
||||
|
||||
return when (compilerMode) {
|
||||
return@ifAlive when (compilerMode) {
|
||||
CompilerMode.JPS_COMPILER -> {
|
||||
val jpsServicesFacade = servicesFacade as JpsCompilerServicesFacade
|
||||
|
||||
|
||||
Reference in New Issue
Block a user