Enable JVM IR for stdlib/reflect/test libraries

Changes in Gradle integration tests are needed because:
- in new-mpp-android, kotlin-stdlib-jdk8 is used, and JVM IR generates
  JDK 8-specific bytecode (invokedynamic). D8 needs to be configured to
  desugar it with source/target versions set to 1.8, otherwise it
  reports an error.
- in AndroidExtensionsManyVariants and AndroidIcepickProject, D8 fails
  with assertions enabled if AGP < 4.0.0 is used because of
  https://issuetracker.google.com/issues/148661132. The tests which use
  old AGP versions are probably not relevant anymore anyway.

Changes in kotlin-stdlib-runtime-merged.txt are caused by a slightly
different generation scheme of collection subclasses in JVM IR, and are
harmless.

(Previous attempt was at 15e978dbd311c2ba78ec32b394c21acde9811ccb.)
This commit is contained in:
Alexander Udalov
2021-01-29 20:54:16 +01:00
parent 29ac9b33ca
commit 0925e1b497
17 changed files with 8 additions and 42 deletions
@@ -80,8 +80,6 @@ class KotlinBuildProperties(
val localBootstrapPath: String? = getOrNull("bootstrap.local.path") as String?
val useIRForLibraries: Boolean = getBoolean("kotlin.build.useIRForLibraries")
val useFir: Boolean = getBoolean("kotlin.build.useFir")
val useFirForLibraries: Boolean = getBoolean("kotlin.build.useFirForLibraries")
-3
View File
@@ -7,9 +7,6 @@ org.gradle.java.installations.fromEnv=JDK_16,JDK_17,JDK_18,JDK_9,JDK_10,JDK_11,J
cacheRedirectorEnabled=true
defaultSnapshotVersion=1.6.255-SNAPSHOT
# Enable JVM IR backend for kotlin-stdlib, kotlin-reflect, kotlin-test.
#kotlin.build.useIRForLibraries=true
#maven.repository.mirror=http://repository.jetbrains.com/remote-repos/
#bootstrap.kotlin.repo=https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap
#bootstrap.kotlin.version=1.1.50-dev-1451
-11
View File
@@ -64,17 +64,6 @@ ext.configurePluginMarkers = { Project project, withEmptyJars = true ->
PluginMarkersKt.publishPluginMarkers(project, withEmptyJars)
}
ext.configureJvmIrBackend = { Project project ->
project.tasks.withType(KotlinCompile.class) { task ->
task.kotlinOptions {
if (!project.kotlinBuildProperties.useIRForLibraries) {
useIR = false
freeCompilerArgs += "-Xuse-old-backend"
}
}
}
}
allprojects { project ->
project.ext.configureSourcesJar = { lambda = {} ->
ArtifactsKt.sourcesJar(project) { task ->
-2
View File
@@ -44,8 +44,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
if (includeJava9) {
LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.junit')
}
@@ -43,8 +43,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
if (includeJava9) {
LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.junit5')
}
-2
View File
@@ -57,8 +57,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
if (includeJava9) {
LibrariesCommon.configureJava9Compilation(project, 'kotlin.test')
}
@@ -47,8 +47,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
if (includeJava9) {
LibrariesCommon.configureJava9Compilation(project, 'kotlin.test.testng')
}
-2
View File
@@ -54,8 +54,6 @@ compileKotlin {
}
}
configureJvmIrBackend(project)
jar {
manifestAttributes(manifest, project, "internal")
}
-2
View File
@@ -90,8 +90,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib.jdk7')
task testJdk6Tests(type: Test) {
-2
View File
@@ -75,8 +75,6 @@ compileTestKotlin {
]
}
configureJvmIrBackend(project)
LibrariesCommon.configureJava9Compilation(project, 'kotlin.stdlib.jdk8')
task testJdk6Tests(type: Test) { thisTask ->
-2
View File
@@ -143,8 +143,6 @@ compileLongRunningTestKotlin {
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.ExperimentalStdlibApi"
}
configureJvmIrBackend(project)
task longRunningTest(type: Test, dependsOn: longRunningTestClasses) {
group = "verification"
testClassesDirs = sourceSets.longRunningTest.output.classesDirs
@@ -312,7 +312,7 @@ public final class kotlin/UByteArray : java/util/Collection, kotlin/jvm/internal
public fun removeAll (Ljava/util/Collection;)Z
public fun retainAll (Ljava/util/Collection;)Z
public static final fun set-VurrAj0 ([BIB)V
public final fun size ()I
public synthetic fun size ()I
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
public fun toString ()Ljava/lang/String;
@@ -371,7 +371,7 @@ public final class kotlin/UIntArray : java/util/Collection, kotlin/jvm/internal/
public fun removeAll (Ljava/util/Collection;)Z
public fun retainAll (Ljava/util/Collection;)Z
public static final fun set-VXSXFK8 ([III)V
public final fun size ()I
public synthetic fun size ()I
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
public fun toString ()Ljava/lang/String;
@@ -430,7 +430,7 @@ public final class kotlin/ULongArray : java/util/Collection, kotlin/jvm/internal
public fun removeAll (Ljava/util/Collection;)Z
public fun retainAll (Ljava/util/Collection;)Z
public static final fun set-k8EXiF4 ([JIJ)V
public final fun size ()I
public synthetic fun size ()I
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
public fun toString ()Ljava/lang/String;
@@ -489,7 +489,7 @@ public final class kotlin/UShortArray : java/util/Collection, kotlin/jvm/interna
public fun removeAll (Ljava/util/Collection;)Z
public fun retainAll (Ljava/util/Collection;)Z
public static final fun set-01HTLdE ([SIS)V
public final fun size ()I
public synthetic fun size ()I
public fun toArray ()[Ljava/lang/Object;
public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object;
public fun toString ()Ljava/lang/String;
@@ -27,5 +27,3 @@ compileKotlin {
]
kotlinOptions.moduleName = project.name
}
configureJvmIrBackend(project)
@@ -1 +0,0 @@
org.gradle.jvmargs=-ea -XX:MaxPermSize=512m
@@ -21,6 +21,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {
@@ -40,5 +40,3 @@ compileKotlin {
]
kotlinOptions.moduleName = project.name
}
configureJvmIrBackend(project)