Skip to content

Commit 62f999a

Browse files
Abduqodiri Qurbonzodaqurbonzoda
authored andcommitted
Update Kotlin version to 1.3.70
1 parent 41b6696 commit 62f999a

File tree

11 files changed

+55
-121
lines changed

11 files changed

+55
-121
lines changed

build.gradle

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ buildscript {
22
repositories {
33
jcenter()
44
gradlePluginPortal()
5-
// maven { url "../kotlin-libraries-infra/build/maven" }
6-
maven { url "https://dl.bintray.com/orangy/maven" } // for kotlinx.cli & infra
7-
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
8-
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
5+
maven { url 'https://dl.bintray.com/kotlin/kotlinx' }
96
}
107

118
dependencies {
@@ -16,11 +13,6 @@ buildscript {
1613

1714
apply plugin: 'kotlinx.team.infra'
1815

19-
repositories {
20-
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
21-
maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
22-
}
23-
2416
infra {
2517
teamcity {
2618
projectName = "kotlinx-benchmark"

examples/build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,5 @@ subprojects {
1010

1111
mavenLocal()
1212
mavenCentral()
13-
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
14-
// maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
15-
// maven { url "$rootProject.projectDir/../kotlin-libraries-infra/build/maven" }
1613
}
1714
}

examples/kotlin-multiplatform/build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
buildscript {
2-
repositories {
3-
// maven { url "$rootProject.projectDir/../kotlin-libraries-infra/build/maven" }
4-
}
5-
}
6-
71
plugins {
82
id 'org.jetbrains.kotlin.multiplatform'
93
id 'org.jetbrains.kotlin.plugin.allopen' version "1.3.50"

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ group = org.jetbrains.kotlinx
33
version = 0.2.0
44

55
kotlin.code.style=official
6-
kotlin_version=1.3.50
6+
kotlin_version=1.3.70
77
jmhVersion=1.21
88
junit_version=4.12
99

10-
infra_version=0.1.0-dev-49
10+
infra_version=0.1.0-dev-52
1111

1212
node_version = 8.9.4
1313
npm_version = 5.7.1
1414

1515
kotlin.incremental.multiplatform=true
16+
org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

plugin/build.gradle

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ buildscript {
22
repositories {
33
mavenCentral()
44
jcenter()
5-
// maven { url "../../kotlin-libraries-infra/build/maven" }
6-
maven { url "https://dl.bintray.com/orangy/maven" } // for kotlinx.cli & infra
5+
maven { url 'https://dl.bintray.com/kotlin/kotlinx' }
76
}
87
dependencies {
98
classpath "kotlinx.team:kotlinx.team.infra:$infra_version"
@@ -38,10 +37,6 @@ repositories {
3837
mavenCentral()
3938
jcenter()
4039
gradlePluginPortal()
41-
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
42-
// maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
43-
// maven { url "../../kotlin-libraries-infra/build/maven" }
44-
maven { url "https://dl.bintray.com/orangy/maven" } // for kotlinx.cli & infra
4540
}
4641

4742
gradlePlugin {
@@ -74,16 +69,16 @@ dependencies {
7469
compile 'com.squareup:kotlinpoet:1.3.0'
7570
compile "org.openjdk.jmh:jmh-core:$jmhVersion"
7671

77-
compile group: 'org.jetbrains.kotlin', name: 'kotlin-native-library-reader', version: kotlin_version, {
78-
exclude group: 'org.jetbrains.kotlin', module: 'kotlin-compiler'
79-
}
72+
compile group: 'org.jetbrains.kotlin', name: 'kotlin-util-klib-metadata', version: kotlin_version
73+
compile group: 'org.jetbrains.kotlin', name: 'kotlin-util-klib', version: kotlin_version
74+
compile group: 'org.jetbrains.kotlin', name: 'kotlin-util-io', version: kotlin_version
8075

8176
compileOnly group: 'org.jetbrains.kotlin.multiplatform', name: 'org.jetbrains.kotlin.multiplatform.gradle.plugin', version: kotlin_version
8277
compileOnly "org.openjdk.jmh:jmh-generator-bytecode:$jmhVersion" // used in worker
8378

8479
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
8580
testImplementation gradleTestKit()
86-
testImplementation 'junit:junit:4.12'
81+
testImplementation "junit:junit:$junit_version"
8782

8883
/*
8984
// This is needed for test to get it on classpath and run

plugin/gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ group = org.jetbrains.kotlinx
77
# Put link to your OSS repository. Bintray requires this to be filled for free OpenSource tiers.
88
vcs=https://github.com/kotlin/kotlinx-benchmark
99

10-
kotlin_version=1.3.50
10+
kotlin_version=1.3.70
1111
jmhVersion=1.21
12-
infra_version=0.1.0-dev-49
12+
junit_version=4.12
13+
infra_version=0.1.0-dev-52
1314

plugin/main/src/kotlinx/benchmark/gradle/JsNodeTasks.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ fun Project.createJsBenchmarkExecTask(
3838
}
3939
}
4040

41-
tasks.getByName(config.prefixName(RUN_BENCHMARKS_TASKNAME)).dependsOn(task.getTaskOrProvider())
41+
tasks.getByName(config.prefixName(RUN_BENCHMARKS_TASKNAME)).dependsOn(task)
4242
}
4343

4444

plugin/main/src/kotlinx/benchmark/gradle/NativeMultiplatformTasks.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ fun Project.processNativeCompilation(target: NativeBenchmarkTarget) {
2525
}
2626
}
2727

28+
private fun generateSourceTaskName(target: NativeBenchmarkTarget)
29+
= target.name + BenchmarksPlugin.BENCHMARK_GENERATE_SUFFIX
30+
2831
private fun Project.createNativeBenchmarkGenerateSourceTask(target: NativeBenchmarkTarget) {
2932
val benchmarkBuildDir = benchmarkBuildDir(target)
30-
task<NativeSourceGeneratorTask>("${target.name}${BenchmarksPlugin.BENCHMARK_GENERATE_SUFFIX}") {
33+
task<NativeSourceGeneratorTask>(generateSourceTaskName(target)) {
3134
group = BenchmarksPlugin.BENCHMARKS_TASK_GROUP
3235
description = "Generate Native source files for '${target.name}'"
3336
val compilation = target.compilation
@@ -52,7 +55,9 @@ private fun Project.createNativeBenchmarkCompileTask(target: NativeBenchmarkTarg
5255
// In the previous version of this method a compileTask was changed to build an executable instead of klib.
5356
// Currently it's impossible to change task output kind and an executable is always produced by
5457
// a link task. So we disable execution the klib compiling task to save time.
55-
benchmarkCompilation.compileKotlinTask.enabled = false
58+
// benchmarkCompilation.compileKotlinTask.enabled = false
59+
60+
benchmarkCompilation.compileKotlinTask.dependsOn(generateSourceTaskName(target))
5661

5762
benchmarkCompilation.apply {
5863
val sourceSet = kotlinSourceSets.single()
@@ -73,7 +78,7 @@ private fun Project.createNativeBenchmarkCompileTask(target: NativeBenchmarkTarg
7378
linkTask.apply {
7479
group = BenchmarksPlugin.BENCHMARKS_TASK_GROUP
7580
description = "Compile Native benchmark source files for '${compilationTarget.name}'"
76-
dependsOn("${compilationTarget.name}${BenchmarksPlugin.BENCHMARK_GENERATE_SUFFIX}")
81+
dependsOn(generateSourceTaskName(target))
7782

7883
// It's impossible to change output directory using the binaries DSL.
7984
// See https://youtrack.jetbrains.com/issue/KT-29395

plugin/main/src/kotlinx/benchmark/gradle/NativeSourceGeneratorTask.kt

Lines changed: 34 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ import org.gradle.api.tasks.*
66
import org.gradle.workers.*
77
import org.jetbrains.kotlin.config.*
88
import org.jetbrains.kotlin.descriptors.*
9-
import org.jetbrains.kotlin.konan.library.*
10-
import org.jetbrains.kotlin.konan.library.impl.*
11-
import org.jetbrains.kotlin.konan.properties.*
12-
import org.jetbrains.kotlin.konan.target.*
139
import org.jetbrains.kotlin.konan.util.*
14-
import org.jetbrains.kotlin.storage.*
10+
import org.jetbrains.kotlin.builtins.*
11+
import org.jetbrains.kotlin.serialization.konan.*
12+
import org.jetbrains.kotlin.storage.LockBasedStorageManager
13+
import org.jetbrains.kotlin.util.Logger
14+
import org.jetbrains.kotlin.library.*
15+
import org.jetbrains.kotlin.library.impl.*
16+
import org.jetbrains.kotlin.library.resolver.impl.*
1517
import java.io.*
16-
import java.nio.file.*
1718
import javax.inject.*
18-
import kotlin.reflect.jvm.*
1919

2020
@Suppress("UnstableApiUsage")
2121
@CacheableTask
@@ -59,6 +59,9 @@ open class NativeSourceGeneratorTask
5959
}
6060
}
6161

62+
private val Builtins = DefaultBuiltIns.Instance
63+
private val NativeFactories = KlibMetadataFactories( { Builtins }, NullFlexibleTypeDeserializer)
64+
6265
class NativeSourceGeneratorWorker
6366
@Inject constructor(
6467
private val title: String,
@@ -91,32 +94,30 @@ class NativeSourceGeneratorWorker
9194
if (nativeTarget.isEmpty())
9295
throw Exception("nativeTarget should be specified for API generator for native targets")
9396

94-
val hostManager = HostManager()
95-
val konanTarget = hostManager.targetByName(nativeTarget)
96-
val versionSpec = LanguageVersionSettingsImpl(
97-
LanguageVersion.LATEST_STABLE,
98-
ApiVersion.LATEST_STABLE
99-
)
100-
val ABI_VERSION = 8
101-
102-
val pathResolver = ProvidedPathResolver(dependencyPaths, konanTarget)
103-
val libraryResolver = pathResolver.libraryResolver(ABI_VERSION)
97+
val logger = object : Logger {
98+
override fun log(message: String) {}
99+
override fun error(message: String) = kotlin.error("e: $message")
100+
override fun warning(message: String) {}
101+
override fun fatal(message: String) = kotlin.error("e: $message")
102+
}
103+
val pathResolver = SeveralKlibComponentResolver(dependencyPaths.map { it.canonicalPath }, listOf(KotlinAbiVersion.CURRENT), logger)
104+
val libraryResolver = pathResolver.libraryResolver()
104105

105-
val factory = KonanFactories.DefaultDeserializedDescriptorFactory
106+
val factory = NativeFactories.DefaultDeserializedDescriptorFactory
106107

107108
val konanFile = org.jetbrains.kotlin.konan.file.File(lib.canonicalPath)
109+
val library = createKotlinLibrary(konanFile)
108110

109-
val library = reflectCreateKonanLibrary(konanFile, ABI_VERSION, konanTarget)
110-
val unresolvedDependencies = library.manifestProperties.propertyList(KLIB_PROPERTY_DEPENDS)
111+
val versionSpec = LanguageVersionSettingsImpl(LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE)
111112
val storageManager = LockBasedStorageManager("Inspect")
112113

113-
val module = factory.createDescriptorAndNewBuiltIns(library, versionSpec, storageManager)
114+
val module = factory.createDescriptorOptionalBuiltIns(library, versionSpec, storageManager, Builtins, null)
114115

115-
val dependencies = libraryResolver.resolveWithDependencies(unresolvedDependencies)
116-
val dependenciesResolved = KonanFactories.DefaultResolvedDescriptorsFactory.createResolved(
116+
val dependencies = libraryResolver.resolveWithDependencies(library.unresolvedDependencies)
117+
val dependenciesResolved = NativeFactories.DefaultResolvedDescriptorsFactory.createResolved(
117118
dependencies,
118119
storageManager,
119-
null,
120+
Builtins,
120121
versionSpec
121122
)
122123

@@ -127,61 +128,14 @@ class NativeSourceGeneratorWorker
127128
return module
128129
}
129130

130-
companion object {
131-
private fun reflectCreateKonanLibrary(
132-
libraryFile: org.jetbrains.kotlin.konan.file.File,
133-
abi: Int,
134-
konanTarget: KonanTarget
135-
): KonanLibrary {
136-
val clazz = Class.forName("org.jetbrains.kotlin.konan.library.KonanLibraryUtilsKt")
137-
val method = clazz.methods.single { it.name == "createKonanLibrary" }.kotlinFunction
138-
val params = method!!.parameters
139-
if (params[1].name == "currentAbiVersion") {
140-
// new mode
141-
return createKonanLibrary(libraryFile, abi, konanTarget, false)
142-
} else {
143-
return method.call(libraryFile, konanTarget, false, DefaultMetadataReaderImpl) as KonanLibrary
144-
}
145-
}
146-
}
147-
148-
149-
private class ProvidedPathResolver(private val dependencies: Set<File>, override val target: KonanTarget) :
150-
SearchPathResolverWithTarget {
151-
152-
override val searchRoots: List<org.jetbrains.kotlin.konan.file.File> get() = emptyList()
153-
154-
private val nameMap = dependencies
155-
// TODO: what's wrong with JARs? They seem common libs, how does native ignores them?
156-
.filter { it.extension != "jar" }
157-
.map {
158-
val file = org.jetbrains.kotlin.konan.file.File(it.absolutePath)
159-
// Need to load library to know its uniqueName, some libs like atomicfu has it different from klib file name
160-
reflectCreateKonanLibrary(file, 1, target)
161-
}
162-
.associateBy { it.uniqueName }
163-
.mapValues { it.value.libraryFile }
164-
165-
override fun resolve(givenPath: String): org.jetbrains.kotlin.konan.file.File {
166-
val path = Paths.get(givenPath)
167-
return when {
168-
path.isAbsolute -> org.jetbrains.kotlin.konan.file.File(path)
169-
else -> {
170-
val file = nameMap[givenPath]
171-
if (file != null)
172-
return file
173-
174-
println("Cannot resolve library $givenPath with the following dependencies:")
175-
println(dependencies.joinToString(prefix = " ", separator = "\n "))
176-
throw Exception("Cannot resolve library '$givenPath' with $nameMap")
177-
}
178-
}
179-
}
180-
181-
override fun defaultLinks(
182-
noStdLib: Boolean,
183-
noDefaultLibs: Boolean
184-
): List<org.jetbrains.kotlin.konan.file.File> =
185-
emptyList()
131+
private class SeveralKlibComponentResolver(
132+
klibFiles: List<String>,
133+
knownAbiVersions: List<KotlinAbiVersion>?,
134+
logger: Logger
135+
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
136+
emptyList(), klibFiles, knownAbiVersions, emptyList(),
137+
null, null, false, logger, emptyList()
138+
) {
139+
override fun libraryBuilder(file: org.jetbrains.kotlin.konan.file.File, isDefault: Boolean) = createKotlinLibrary(file, isDefault)
186140
}
187141
}

plugin/settings.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ pluginManagement {
22
repositories {
33
mavenCentral()
44
jcenter()
5-
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
6-
// maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
75
maven { url 'https://plugins.gradle.org/m2/' }
86
}
97
}

0 commit comments

Comments
 (0)