From 2196d81322e44a6365eb248127d15d3180755d28 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Fri, 14 Dec 2018 16:34:29 +0300 Subject: [PATCH] Enable JS IC by default #KT-28842 Fixed --- .../KotlinCompilerWorkspaceSettings.kt | 2 +- .../KotlinCompilerConfigurableTab.form | 2 +- .../jetbrains/kotlin/jps/build/KotlinBuilder.kt | 5 ----- .../org/jetbrains/kotlin/gradle/BaseGradleIT.kt | 3 ++- .../org/jetbrains/kotlin/gradle/Kapt3IT.kt | 4 ++-- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 16 +++++++++++++--- .../kotlin/gradle/KotlinGradlePluginIT.kt | 8 ++++---- .../kotlin2JsICProject/local.properties | 1 - .../org/jetbrains/kotlin/gradle/tasks/Tasks.kt | 15 ++++++++++----- 9 files changed, 33 insertions(+), 23 deletions(-) delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsICProject/local.properties diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt index 9c8d35fe912..3488617acb2 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerWorkspaceSettings.kt @@ -34,7 +34,7 @@ class KotlinCompilerWorkspaceSettings : PersistentStateComponent - + diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index 93b15883f54..7ba504e43ee 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -94,11 +94,6 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { LOG.debug("==========================================") LOG.info("is Kotlin incremental compilation enabled for JVM: ${IncrementalCompilation.isEnabledForJvm()}") LOG.info("is Kotlin incremental compilation enabled for JS: ${IncrementalCompilation.isEnabledForJs()}") - if (IncrementalCompilation.isEnabledForJs()) { - val messageCollector = MessageCollectorAdapter(context, null) - messageCollector.report(INFO, "Using experimental incremental compilation for Kotlin/JS") - } - LOG.info("is Kotlin compiler daemon enabled: ${isDaemonEnabled()}") val historyLabel = context.getBuilderParameter("history label") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index a13be707cd4..d8b1a1f75d2 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -168,6 +168,7 @@ abstract class BaseGradleIT { val withDaemon: Boolean = false, val daemonOptionSupported: Boolean = true, val incremental: Boolean? = null, + val incrementalJs: Boolean? = null, val androidHome: File? = null, val javaHome: File? = null, val androidGradlePluginVersion: String? = null, @@ -561,8 +562,8 @@ abstract class BaseGradleIT { add("-Pkotlin_version=" + options.kotlinVersion) options.incremental?.let { add("-Pkotlin.incremental=$it") - add("-Pkotlin.incremental.js=$it") } + options.incrementalJs?.let { add("-Pkotlin.incremental.js=$it") } options.usePreciseJavaTracking?.let { add("-Pkotlin.incremental.usePreciseJavaTracking=$it") } options.androidGradlePluginVersion?.let { add("-Pandroid_tools_version=$it") } if (options.debug) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt index fbf73f0b4e1..2bdbcd9762f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt @@ -16,7 +16,7 @@ package org.jetbrains.kotlin.gradle -import org.jetbrains.kotlin.gradle.tasks.USING_INCREMENTAL_COMPILATION_MESSAGE +import org.jetbrains.kotlin.gradle.tasks.USING_JVM_INCREMENTAL_COMPILATION_MESSAGE import org.jetbrains.kotlin.gradle.util.* import org.junit.Assert import org.junit.Test @@ -139,7 +139,7 @@ open class Kapt3IT : Kapt3BaseIT() { project.build("build", options = defaultBuildOptions().copy(incremental = false)) { assertSuccessful() assertTasksExecuted(":kaptGenerateStubsKotlin") - assertNotContains(USING_INCREMENTAL_COMPILATION_MESSAGE) + assertNotContains(USING_JVM_INCREMENTAL_COMPILATION_MESSAGE) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index f1216b53af5..127e0668975 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.gradle import org.gradle.api.logging.LogLevel -import org.jetbrains.kotlin.gradle.tasks.USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE +import org.jetbrains.kotlin.gradle.tasks.USING_JS_INCREMENTAL_COMPILATION_MESSAGE import org.jetbrains.kotlin.gradle.util.getFileByName import org.jetbrains.kotlin.gradle.util.getFilesByNames import org.jetbrains.kotlin.gradle.util.modify @@ -320,7 +320,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() { fun testIncrementalCompilation() = Project("kotlin2JsICProject", GradleVersionRequired.AtLeast("4.0")).run { build("build") { assertSuccessful() - assertContains(USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE) + assertContains(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) assertCompiledKotlinSources(project.relativize(allKotlinFiles)) } @@ -334,9 +334,19 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() { } build("build") { assertSuccessful() - assertContains(USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE) + assertContains(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) val affectedFiles = project.projectDir.getFilesByNames("A.kt", "useAInLibMain.kt", "useAInAppMain.kt", "useAInAppTest.kt") assertCompiledKotlinSources(project.relativize(affectedFiles)) } } + + @Test + fun testIncrementalCompilationDisabled() = Project("kotlin2JsICProject", GradleVersionRequired.AtLeast("4.0")).run { + val options = defaultBuildOptions().copy(incrementalJs = false) + + build("build", options = options) { + assertSuccessful() + assertNotContains(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 7213aa436a3..3d87b134d1f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.gradle import org.gradle.api.logging.LogLevel import org.jetbrains.kotlin.gradle.plugin.CopyClassesToJavaOutputStatus -import org.jetbrains.kotlin.gradle.tasks.USING_INCREMENTAL_COMPILATION_MESSAGE +import org.jetbrains.kotlin.gradle.tasks.USING_JVM_INCREMENTAL_COMPILATION_MESSAGE import org.jetbrains.kotlin.gradle.util.* import org.junit.Test import java.io.File @@ -215,7 +215,7 @@ class KotlinGradleIT : BaseGradleIT() { localPropertyFile.writeText("kotlin.incremental=true") project.build("build") { - assertContains(USING_INCREMENTAL_COMPILATION_MESSAGE) + assertContains(USING_JVM_INCREMENTAL_COMPILATION_MESSAGE) } } @@ -223,12 +223,12 @@ class KotlinGradleIT : BaseGradleIT() { fun testIncrementalCompilationLogLevel() { val infoProject = Project("kotlinProject", minLogLevel = LogLevel.INFO) infoProject.build("build") { - assertContains(USING_INCREMENTAL_COMPILATION_MESSAGE) + assertContains(USING_JVM_INCREMENTAL_COMPILATION_MESSAGE) } val lifecycleProject = Project("kotlinProject", minLogLevel = LogLevel.LIFECYCLE) lifecycleProject.build("build") { - assertNotContains(USING_INCREMENTAL_COMPILATION_MESSAGE) + assertNotContains(USING_JVM_INCREMENTAL_COMPILATION_MESSAGE) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsICProject/local.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsICProject/local.properties deleted file mode 100644 index 1d6efdd5092..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsICProject/local.properties +++ /dev/null @@ -1 +0,0 @@ -kotlin.incremental.js = true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index b0ab80f19de..eead9241ce1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -45,8 +45,8 @@ import javax.inject.Inject import kotlin.properties.Delegates const val KOTLIN_BUILD_DIR_NAME = "kotlin" -const val USING_INCREMENTAL_COMPILATION_MESSAGE = "Using Kotlin incremental compilation" -const val USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE = "Using experimental Kotlin/JS incremental compilation" +const val USING_JVM_INCREMENTAL_COMPILATION_MESSAGE = "Using Kotlin/JVM incremental compilation" +const val USING_JS_INCREMENTAL_COMPILATION_MESSAGE = "Using Kotlin/JS incremental compilation" abstract class AbstractKotlinCompileTool() : AbstractCompile(), CompilerArgumentAwareWithInput { private fun useCompilerClasspathConfigurationMessage(propertyName: String) { @@ -392,7 +392,7 @@ open class KotlinCompile : AbstractKotlinCompile(), Kotl val compilerRunner = compilerRunner() val icEnv = if (incremental) { - logger.info(USING_INCREMENTAL_COMPILATION_MESSAGE) + logger.info(USING_JVM_INCREMENTAL_COMPILATION_MESSAGE) IncrementalCompilationEnvironment( if (hasFilesInTaskBuildDirectory()) changedFiles else ChangedFiles.Unknown(), taskBuildDirectory, @@ -474,7 +474,12 @@ internal open class KotlinCompileCommonWithWorkers @Inject constructor( } @CacheableTask -open class Kotlin2JsCompile() : AbstractKotlinCompile(), KotlinJsCompile { +open class Kotlin2JsCompile : AbstractKotlinCompile(), KotlinJsCompile { + + init { + incremental = true + } + private val kotlinOptionsImpl = KotlinJsOptionsImpl() override val kotlinOptions: KotlinJsOptions @@ -546,7 +551,7 @@ open class Kotlin2JsCompile() : AbstractKotlinCompile(), val compilerRunner = compilerRunner() val icEnv = if (incremental) { - logger.warn(USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE) + logger.info(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) IncrementalCompilationEnvironment( if (hasFilesInTaskBuildDirectory()) changedFiles else ChangedFiles.Unknown(), taskBuildDirectory,