[compiler][update] 1.3-M2-eap-33 / build: 1.3-M1-eap-77

This commit is contained in:
Vasily Levchenko
2018-08-17 11:06:38 +03:00
parent 8f7bcf2688
commit c78d070455
34 changed files with 253 additions and 55 deletions
+6
View File
@@ -108,6 +108,12 @@ sourceSets {
}
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile project(':Interop:Runtime')
+6
View File
@@ -59,6 +59,12 @@ model {
}
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile "org.jetbrains.kotlin:kotlin-reflect:$buildKotlinVersion"
+7
View File
@@ -23,6 +23,13 @@ apply plugin: 'application'
mainClassName = "org.jetbrains.kotlin.native.interop.gen.jvm.MainKt"
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile "org.jetbrains.kotlin:kotlin-compiler:$buildKotlinVersion"
+1 -1
View File
@@ -32,7 +32,7 @@ apply plugin: org.jetbrains.kotlin.NativeInteropPlugin
// (gets applied to this project and all its subprojects)
allprojects {
repositories {
maven { url kotlinCompilerRepo }
maven { url buildKotlinCompilerRepo }
}
}
@@ -152,6 +152,7 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
override fun configureLanguageFeatures(collector: MessageCollector) = super.configureLanguageFeatures(collector).also {
it[LanguageFeature.InlineClasses] = LanguageFeature.State.ENABLED // TODO: remove after updating to 1.3.
it[LanguageFeature.ReleaseCoroutines] = LanguageFeature.State.DISABLED
}
}
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.backend.konan
import org.jetbrains.kotlin.backend.common.ir.addSimpleDelegatingConstructor
import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName
import org.jetbrains.kotlin.backend.konan.descriptors.enumEntries
import org.jetbrains.kotlin.backend.konan.irasdescriptors.typeWith
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.descriptors.impl.*
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.builtins.transformSuspendFunctionToRuntimeFunctionTy
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotated
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.Flags
import org.jetbrains.kotlin.metadata.deserialization.VersionRequirement
@@ -160,9 +161,9 @@ class KonanDescriptorSerializer private constructor(
builder.typeTable = typeTableProto
}
val requirement = serializeVersionRequirement(classDescriptor)
val requirement = serializeVersionRequirements(classDescriptor)
if (requirement != null) {
builder.versionRequirement = requirement
builder.addAllVersionRequirement(requirement)
}
val versionRequirementTableProto = versionRequirementTable.serialize()
@@ -254,12 +255,12 @@ class KonanDescriptorSerializer private constructor(
}
}
val requirement = serializeVersionRequirement(descriptor)
val requirement = serializeVersionRequirements(descriptor)
if (requirement != null) {
builder.versionRequirement = requirement
builder.addAllVersionRequirement(requirement)
}
else if (descriptor.isSuspendOrHasSuspendTypesInSignature()) {
builder.versionRequirement = writeVersionRequirement(LanguageFeature.Coroutines)
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
}
extension.serializeProperty(descriptor, builder, versionRequirementTable)
@@ -337,12 +338,12 @@ class KonanDescriptorSerializer private constructor(
}
}
val requirement = serializeVersionRequirement(descriptor)
val requirement = serializeVersionRequirements(descriptor)
if (requirement != null) {
builder.versionRequirement = requirement
builder.addAllVersionRequirement(requirement)
}
else if (descriptor.isSuspendOrHasSuspendTypesInSignature()) {
builder.versionRequirement = writeVersionRequirement(LanguageFeature.Coroutines)
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
}
// TODO: K/N & Contracts???
@@ -375,12 +376,12 @@ class KonanDescriptorSerializer private constructor(
builder.addValueParameter(local.valueParameter(valueParameterDescriptor))
}
val requirement = serializeVersionRequirement(descriptor)
val requirement = serializeVersionRequirements(descriptor)
if (requirement != null) {
builder.versionRequirement = requirement
builder.addAllVersionRequirement(requirement)
}
else if (descriptor.isSuspendOrHasSuspendTypesInSignature()) {
builder.versionRequirement = writeVersionRequirement(LanguageFeature.Coroutines)
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
}
extension.serializeConstructor(descriptor, builder)
@@ -435,9 +436,9 @@ class KonanDescriptorSerializer private constructor(
builder.setExpandedType(local.type(expandedType))
}
val requirement = serializeVersionRequirement(descriptor)
val requirement = serializeVersionRequirements(descriptor)
if (requirement != null) {
builder.versionRequirement = requirement
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
}
builder.addAllAnnotation(descriptor.annotations.map { extension.annotationSerializer.serializeAnnotation(it) })
@@ -521,7 +522,7 @@ class KonanDescriptorSerializer private constructor(
}
/* Konan needs public modifier */
public fun typeId(type: KotlinType) = typeTable[type(type)]
fun typeId(type: KotlinType) = typeTable[type(type)]
internal fun type(type: KotlinType): ProtoBuf.Type.Builder {
val builder = ProtoBuf.Type.newBuilder()
@@ -674,9 +675,29 @@ class KonanDescriptorSerializer private constructor(
return versionRequirementTable[requirement]
}
// Returns index into versionRequirementTable, or null if there's no @RequireKotlin on the descriptor
private fun serializeVersionRequirement(descriptor: DeclarationDescriptor): Int? {
val annotation = descriptor.annotations.findAnnotation(RequireKotlinNames.FQ_NAME) ?: return null
private fun getClassifierId(descriptor: ClassifierDescriptorWithTypeParameters): Int =
stringTable.getFqNameIndex(descriptor)
private fun getSimpleNameIndex(name: Name): Int =
stringTable.getStringIndex(name.asString())
private fun getTypeParameterId(descriptor: TypeParameterDescriptor): Int =
typeParameters.intern(descriptor)
private fun getAccessorFlags(accessor: PropertyAccessorDescriptor): Int = Flags.getAccessorFlags(
hasAnnotations(accessor),
ProtoEnumFlags.visibility(normalizeVisibility(accessor)),
ProtoEnumFlags.modality(accessor.modality),
!accessor.isDefault,
accessor.isExternal,
accessor.isInline
)
private fun serializeVersionRequirements(descriptor: DeclarationDescriptor): List<Int> =
descriptor.annotations
.filter { it.fqName == RequireKotlinNames.FQ_NAME }
.mapNotNull(::serializeVersionRequirementFromRequireKotlin)
private fun serializeVersionRequirementFromRequireKotlin(annotation: AnnotationDescriptor): Int? {
val args = annotation.allValueArguments
val versionString = (args[RequireKotlinNames.VERSION] as? StringValue)?.value ?: return null
@@ -721,23 +742,8 @@ class KonanDescriptorSerializer private constructor(
return versionRequirementTable[proto]
}
private fun getClassifierId(descriptor: ClassifierDescriptorWithTypeParameters): Int =
stringTable.getFqNameIndex(descriptor)
private fun getSimpleNameIndex(name: Name): Int =
stringTable.getStringIndex(name.asString())
private fun getTypeParameterId(descriptor: TypeParameterDescriptor): Int =
typeParameters.intern(descriptor)
private fun getAccessorFlags(accessor: PropertyAccessorDescriptor): Int = Flags.getAccessorFlags(
hasAnnotations(accessor),
ProtoEnumFlags.visibility(normalizeVisibility(accessor)),
ProtoEnumFlags.modality(accessor.modality),
!accessor.isDefault,
accessor.isExternal,
accessor.isInline
)
private fun writeVersionRequirementDependingOnCoroutinesVersion(): Int =
writeVersionRequirement(if (this.extension.releaseCoroutines()) LanguageFeature.ReleaseCoroutines else LanguageFeature.Coroutines)
companion object {
@JvmStatic
+1 -1
View File
@@ -24,7 +24,7 @@ buildscript {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
maven {
url kotlinCompilerRepo
url buildKotlinCompilerRepo
}
}
+9
View File
@@ -14,8 +14,17 @@
* limitations under the License.
*/
buildscript {
ext.rootBuildDirectory = "$rootDir/.."
apply from: "$rootBuildDirectory/gradle/loadRootProperties.gradle"
apply from: "$rootBuildDirectory/gradle/kotlinGradlePlugin.gradle"
}
allprojects {
repositories {
maven {
url buildKotlinCompilerRepo
}
maven {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
+3
View File
@@ -25,6 +25,9 @@ buildscript {
apply plugin: 'kotlin'
repositories {
maven {
url buildKotlinCompilerRepo
}
maven {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
+7
View File
@@ -19,6 +19,8 @@ buildscript {
gradleProperties = new Properties()
gradleProperties.load(new FileInputStream("$projectDir/../../gradle.properties"))
buildKotlinVersion = gradleProperties."buildKotlinVersion"
buildKotlinCompilerRepo = gradleProperties."buildKotlinCompilerRepo"
}
apply from: '../../gradle/kotlinGradlePlugin.gradle'
@@ -29,6 +31,11 @@ apply plugin: 'kotlin'
// We reuse the source code from the Project in buildSrc.
sourceSets.main.kotlin.srcDirs = ["$projectDir/../../shared/src/main/kotlin"]
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
}
+6
View File
@@ -27,6 +27,12 @@ jar {
archiveName = "${project.name}.jar"
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile "org.jetbrains.kotlin:kotlin-native-shared:$konanVersion"
@@ -27,6 +27,12 @@ jar {
archiveName = "${project.name}.jar"
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:konan.descriptors:$konanVersion"
compile "org.jetbrains.kotlin:konan.metadata:$konanVersion"
+6
View File
@@ -37,6 +37,12 @@ jar {
archiveName = "${project.name}.jar"
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}"
compile "com.google.protobuf:protobuf-java:${protobufVersion}"
+5 -4
View File
@@ -15,11 +15,12 @@
#
# A version of the Kotlin "toolchain" (compiler, runtime, stdlib etc) used by the build script.
buildKotlinVersion=1.2.50
buildKotlinVersion=1.3-M1-eap-77
buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/
remoteRoot=konan_tests
kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.2.70-dev-1218,tag:kotlin-native,pinned:true/artifacts/content/maven
kotlinVersion=1.2.70-dev-1218
testDataVersion=1226829:id
kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M2_CompilerAllPlugins),number:1.3-M2-eap-33,tag:kotlin-native,pinned:true/artifacts/content/maven
kotlinVersion=1.3-M2-eap-33
testKotlinVersion=1.2.70-dev-1327
konanVersion=0.9
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
+9 -1
View File
@@ -2,9 +2,17 @@ if (!hasProperty('buildKotlinVersion')) {
throw new GradleException('Please ensure the "buildKotlinVersion" property is defined before applying this script.')
}
if (!hasProperty('buildKotlinCompilerRepo')) {
throw new GradleException('Please ensure the "buildKotlinCompilerRepo" property is defined before applying this script.')
}
project.buildscript.repositories {
maven {
url = 'https://cache-redirector.jetbrains.com/maven-central'
url buildKotlinCompilerRepo
}
maven {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
}
+6
View File
@@ -46,6 +46,12 @@ konanArtifacts {
}
}
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile project(path: ':backend.native', configuration: 'cli_bc')
+1 -1
View File
@@ -4,7 +4,7 @@ buildscript {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
maven {
url kotlinCompilerRepo
url buildKotlinCompilerRepo
}
}
+1 -1
View File
@@ -13,7 +13,7 @@ buildscript {
url 'https://cache-redirector.jetbrains.com/maven-central'
}
maven {
url kotlinCompilerRepo
url buildKotlinCompilerRepo
}
}
@@ -0,0 +1,36 @@
/*
* Copyright 2010-2018 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package kotlin.coroutines
// TODO: implement them right.
//@PublishedApi
@SinceKotlin("1.3")
/* actual */ class SafeContinuation<in T>
/* actual */ constructor(
private val delegate: Continuation<T>,
initialResult: Any?
) : Continuation<T> {
override val context: CoroutineContext
get() = TODO("unimplemented")
/* actual */ constructor(delegate: Continuation<T>) : this(delegate, /*UNDECIDED*/ null)
@PublishedApi
internal fun getOrThrow(): Any? = TODO("unimplemented")
override fun resumeWith(result: SuccessOrFailure<T>):Unit = TODO("unimplemented")
}
@@ -0,0 +1,37 @@
/*
* Copyright 2010-2018 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package kotlin.coroutines.intrinsics
import kotlin.coroutines.*
// TODO: implement them right.
@SinceKotlin("1.3")
public /* actual */ fun <T> (suspend () -> T).createCoroutineUnintercepted(
completion: Continuation<T>
): Continuation<Unit> {
TODO("Unimplemented")
}
@SinceKotlin("1.3")
public /* actual */ fun <R, T> (suspend R.() -> T).createCoroutineUnintercepted(
receiver: R,
completion: Continuation<T>
): Continuation<Unit> {
TODO("Unimplemented")
}
@SinceKotlin("1.3")
public /* actual */ fun <T> Continuation<T>.intercepted(): Continuation<T> = TODO("unimplemented")
@@ -18,12 +18,7 @@ package kotlin.random
import kotlin.native.worker.AtomicLong
import kotlin.system.getTimeNanos
abstract class Random {
abstract fun nextInt(): Int
abstract fun nextInt(bound: Int): Int
abstract fun nextLong(): Long
abstract class NativeRandom {
/**
* A default pseudo-random linear congruential generator.
*/
@@ -74,5 +69,17 @@ abstract class Random {
* Returns a pseudo-random Long number.
*/
override fun nextLong(): Long = (nextInt().toLong() shl 32) + nextInt().toLong()
override fun nextBits(bitCount: Int): Int = TODO("unimplemented")
}
}
}
internal actual fun defaultPlatformRandom(): Random = NativeRandom
internal actual fun fastLog2(value: Int): Int = TODO("unimplemented")
internal actual fun doubleFromParts(hi26: Int, low27: Int): Double = TODO("unimplemented")
// TODO: common stdlib Random hasn't got seed, this is workaround for running K/N tests.
var Random.seed:Long
get() = NativeRandom.seed
set(value) { NativeRandom.seed = value }
@@ -24,6 +24,14 @@ fun fromUtf8Array(array: ByteArray, start: Int, size: Int) = array.stringFromUtf
@Deprecated("Use String.toUtf8()", ReplaceWith("string.toUtf8(start, end)"))
fun toUtf8Array(string: String, start: Int, size: Int) : ByteArray = string.toUtf8(start, size)
/**
* Clears the content of this string builder making it empty.
*
* @sample samples.text.Strings.clearStringBuilder
*/
@SinceKotlin("1.3")
public actual fun StringBuilder.clear(): StringBuilder = apply { setLength(0) }
/**
* Converts an UTF-8 array into a [String]. Replaces invalid input sequences with a default character.
*/
@@ -6,6 +6,9 @@ buildscript {
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
}
maven {
url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/"
}
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:${project.property('konan.plugin.version')}"
+3
View File
@@ -7,6 +7,9 @@ subprojects {
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
}
maven {
url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/"
}
}
dependencies {
+1
View File
@@ -2,6 +2,7 @@ buildscript {
repositories {
mavenCentral()
maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
maven { url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/" }
}
dependencies {
+3
View File
@@ -6,6 +6,9 @@ buildscript {
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
}
maven {
url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/"
}
}
dependencies {
+4 -1
View File
@@ -6,6 +6,9 @@ buildscript {
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
}
maven {
url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/"
}
}
dependencies {
@@ -47,4 +50,4 @@ task warning {
println "Note: You may need to specify LD_LIBRARY_PATH or DYLD_LIBRARY_PATH env variables to $tensorflowHome/lib if the TensorFlow dynamic library cannot be found."
}
}
}
+4 -1
View File
@@ -6,6 +6,9 @@ buildscript {
maven {
url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
}
maven {
url "https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_13M1_Compiler),number:1.3-M1-eap-77,branch:default:any/artifacts/content/maven/"
}
}
dependencies {
@@ -47,4 +50,4 @@ task warning {
println "Note: You may need to specify LD_LIBRARY_PATH or DYLD_LIBRARY_PATH env variables to $torchHome/lib if the ATen dynamic library cannot be found."
}
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ version = konanVersion
repositories {
mavenCentral()
maven {
url kotlinCompilerRepo
url buildKotlinCompilerRepo
}
}
+3
View File
@@ -24,6 +24,9 @@ buildscript {
apply plugin: 'kotlin'
repositories {
maven {
url buildKotlinCompilerRepo
}
mavenCentral()
}
@@ -57,7 +57,7 @@ version = KonanVersion.Companion.CURRENT.toString()
repositories {
mavenCentral()
maven {
url kotlinCompilerRepo
url buildKotlinCompilerRepo
}
}
@@ -104,6 +104,7 @@ pluginUnderTestMetadata {
test {
systemProperty("kotlin.version", buildKotlinVersion)
systemProperty("kotlin.repo", buildKotlinCompilerRepo)
if (project.hasProperty("konan.home")) {
systemProperty("konan.home", project.property("konan.home"))
} else {
@@ -22,9 +22,13 @@ import java.nio.file.Paths
class MultiplatformSpecification extends BaseKonanSpecification {
public static final String KOTLIN_VERSION = System.getProperty("kotlin.version")
public static final String KOTLIN_REPO = System.getProperty("kotlin.repo")
public static final String DEFAULT_COMMON_BUILD_FILE_CONTENT = """\
buildscript {
repositories {
maven {
url = '$KOTLIN_REPO'
}
maven {
url = 'https://cache-redirector.jetbrains.com/jcenter'
}
@@ -37,6 +41,9 @@ class MultiplatformSpecification extends BaseKonanSpecification {
apply plugin: 'kotlin-platform-common'
repositories {
maven {
url = '$KOTLIN_REPO'
}
maven {
url = 'https://cache-redirector.jetbrains.com/jcenter'
}
+6
View File
@@ -20,6 +20,12 @@ buildscript {
apply plugin: 'kotlin'
repositories {
maven {
url buildKotlinCompilerRepo
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$buildKotlinVersion"
compile project(':backend.native')