From d265be0b485d3ec6d0978506a0dedf4d5db9404a Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Tue, 25 Jun 2019 14:06:01 +0300 Subject: [PATCH 1/7] Add missing overrides used for common inliner --- .../src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt | 10 +++++++--- .../kotlin/backend/konan/lower/FunctionInlining.kt | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt index 25fca1e401e..9f3ff636d7b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt @@ -328,7 +328,7 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab override val getContinuation = internalFunction("getContinuation") - val returnIfSuspended = internalFunction("returnIfSuspended") + override val returnIfSuspended = internalFunction("returnIfSuspended") val coroutineLaunchpad = internalFunction("coroutineLaunchpad") @@ -336,6 +336,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab val konanCoroutineContextGetter = internalFunction("getCoroutineContext") + override val suspendCoroutineUninterceptedOrReturn = konanSuspendCoroutineUninterceptedOrReturn + + override val coroutineGetContext = konanCoroutineContextGetter + private val coroutinesIntrinsicsPackage = context.builtIns.builtInsModule.getPackage( context.config.configuration.languageVersionSettings.coroutinesIntrinsicsPackageFqName()).memberScope @@ -345,10 +349,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab val continuationClassDescriptor = coroutinesPackage .getContributedClassifier(Name.identifier("Continuation"), NoLookupLocation.FROM_BACKEND) as ClassDescriptor - val coroutineContextGetter = coroutinesPackage + override val coroutineContextGetter = symbolTable.referenceSimpleFunction(coroutinesPackage .getContributedVariables(Name.identifier("coroutineContext"), NoLookupLocation.FROM_BACKEND) .single() - .getter!! + .getter!!) override val coroutineImpl get() = TODO() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index 963926e2369..f49c88dbcf5 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -70,7 +70,7 @@ internal class FunctionInlining(val context: Context) : IrElementTransformerVoid descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) -> context.ir.symbols.konanSuspendCoroutineUninterceptedOrReturn.owner - descriptor == context.ir.symbols.coroutineContextGetter -> + descriptor == context.ir.symbols.coroutineContextGetter.owner.descriptor -> context.ir.symbols.konanCoroutineContextGetter.owner else -> (symbol.owner as? IrSimpleFunction)?.resolveFakeOverride() ?: symbol.owner From 0146589725a8ff7b8c08c2f61e68e650a1b23508 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 2 Jul 2019 05:51:13 +0300 Subject: [PATCH 2/7] Minor: fix modifier order in Numbers.kt --- runtime/src/main/kotlin/kotlin/Numbers.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/runtime/src/main/kotlin/kotlin/Numbers.kt b/runtime/src/main/kotlin/kotlin/Numbers.kt index 579f716d845..32870951547 100644 --- a/runtime/src/main/kotlin/kotlin/Numbers.kt +++ b/runtime/src/main/kotlin/kotlin/Numbers.kt @@ -13,38 +13,38 @@ import kotlin.native.internal.IntrinsicType * Not-a-Number (NaN) value, `false` otherwise. */ @SymbolName("Kotlin_Double_isNaN") -external public actual fun Double.isNaN(): Boolean +public actual external fun Double.isNaN(): Boolean /** * Returns `true` if the specified number is a * Not-a-Number (NaN) value, `false` otherwise. */ @SymbolName("Kotlin_Float_isNaN") -external public actual fun Float.isNaN(): Boolean +public actual external fun Float.isNaN(): Boolean /** * Returns `true` if this value is infinitely large in magnitude. */ @SymbolName("Kotlin_Double_isInfinite") -external public actual fun Double.isInfinite(): Boolean +public actual external fun Double.isInfinite(): Boolean /** * Returns `true` if this value is infinitely large in magnitude. */ @SymbolName("Kotlin_Float_isInfinite") -external public actual fun Float.isInfinite(): Boolean +public actual external fun Float.isInfinite(): Boolean /** * Returns `true` if the argument is a finite floating-point value; returns `false` otherwise (for `NaN` and infinity arguments). */ @SymbolName("Kotlin_Double_isFinite") -external public actual fun Double.isFinite(): Boolean +public actual external fun Double.isFinite(): Boolean /** * Returns `true` if the argument is a finite floating-point value; returns `false` otherwise (for `NaN` and infinity arguments). */ @SymbolName("Kotlin_Float_isFinite") -external public actual fun Float.isFinite(): Boolean +public actual external fun Float.isFinite(): Boolean /** * Returns a bit representation of the specified floating-point value as [Long] @@ -72,7 +72,7 @@ public actual inline fun Double.Companion.fromBits(bits: Long): Double = kotlin. @PublishedApi @TypedIntrinsic(IntrinsicType.REINTERPRET) -external internal fun fromBits(bits: Long): Double +internal external fun fromBits(bits: Long): Double /** * Returns a bit representation of the specified floating-point value as [Int] @@ -100,4 +100,4 @@ public actual inline fun Float.Companion.fromBits(bits: Int): Float = kotlin.fro @PublishedApi @TypedIntrinsic(IntrinsicType.REINTERPRET) -external internal fun fromBits(bits: Int): Float +internal external fun fromBits(bits: Int): Float From ff4c932e67f6073aa500b796ec0717d3f23bad0a Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 21 Jun 2019 05:16:17 +0300 Subject: [PATCH 3/7] Actual implementations for bit functions --- runtime/src/main/kotlin/kotlin/Numbers.kt | 151 ++++++++++++++++++ .../src/main/kotlin/kotlin/random/Random.kt | 3 - 2 files changed, 151 insertions(+), 3 deletions(-) diff --git a/runtime/src/main/kotlin/kotlin/Numbers.kt b/runtime/src/main/kotlin/kotlin/Numbers.kt index 32870951547..65043fc7dd6 100644 --- a/runtime/src/main/kotlin/kotlin/Numbers.kt +++ b/runtime/src/main/kotlin/kotlin/Numbers.kt @@ -101,3 +101,154 @@ public actual inline fun Float.Companion.fromBits(bits: Int): Float = kotlin.fro @PublishedApi @TypedIntrinsic(IntrinsicType.REINTERPRET) internal external fun fromBits(bits: Int): Float + + +/** + * Counts the number of set bits in the binary representation of this [Int] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.countOneBits(): Int { + var v = this + v = (v and 0x55555555) + (v.ushr(1) and 0x55555555) + v = (v and 0x33333333) + (v.ushr(2) and 0x33333333) + v = (v and 0x0F0F0F0F) + (v.ushr(4) and 0x0F0F0F0F) + v = (v and 0x00FF00FF) + (v.ushr(8) and 0x00FF00FF) + v = (v and 0x0000FFFF) + (v.ushr(16)) + return v +} + +/** + * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Int] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.countLeadingZeroBits(): Int = TODO() + +/** + * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Int] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.countTrailingZeroBits(): Int = TODO() +// Int.SIZE_BITS - (this or -this).inv().countLeadingZeroBits() + +/** + * Returns a number having a single bit set in the position of the most significant set bit of this [Int] number, + * or zero, if this number is zero. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.takeHighestOneBit(): Int = + if (this == 0) 0 else 1.shl(Int.SIZE_BITS - 1 - countLeadingZeroBits()) + +/** + * Returns a number having a single bit set in the position of the least significant set bit of this [Int] number, + * or zero, if this number is zero. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.takeLowestOneBit(): Int = + this and -this + +/** + * Rotates the binary representation of this [Int] number left by the specified [bitCount] number of bits. + * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side. + * + * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count: + * `number.rotateLeft(-n) == number.rotateRight(n)` + * + * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally + * `number.rotateLeft(n) == number.rotateLeft(n % 32)` + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.rotateLeft(bitCount: Int): Int = + shl(bitCount) or ushr(Int.SIZE_BITS - bitCount) + + +/** + * Rotates the binary representation of this [Int] number right by the specified [bitCount] number of bits. + * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side. + * + * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count: + * `number.rotateRight(-n) == number.rotateLeft(n)` + * + * Rotating by a multiple of [Int.SIZE_BITS] (32) returns the same number, or more generally + * `number.rotateRight(n) == number.rotateRight(n % 32)` + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Int.rotateRight(bitCount: Int): Int = + shl(Int.SIZE_BITS - bitCount) or ushr(bitCount) + + +/** + * Counts the number of set bits in the binary representation of this [Long] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.countOneBits(): Int = TODO() +// high.countOneBits() + low.countOneBits() + +/** + * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Long] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.countLeadingZeroBits(): Int = TODO() + +/** + * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Long] number. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.countTrailingZeroBits(): Int = TODO() + +/** + * Returns a number having a single bit set in the position of the most significant set bit of this [Long] number, + * or zero, if this number is zero. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.takeHighestOneBit(): Long = TODO() + +/** + * Returns a number having a single bit set in the position of the least significant set bit of this [Long] number, + * or zero, if this number is zero. + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.takeLowestOneBit(): Long = + this and -this + +/** + * Rotates the binary representation of this [Long] number left by the specified [bitCount] number of bits. + * The most significant bits pushed out from the left side reenter the number as the least significant bits on the right side. + * + * Rotating the number left by a negative bit count is the same as rotating it right by the negated bit count: + * `number.rotateLeft(-n) == number.rotateRight(n)` + * + * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally + * `number.rotateLeft(n) == number.rotateLeft(n % 64)` + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +public actual fun Long.rotateLeft(bitCount: Int): Long = + shl(bitCount) or ushr(Long.SIZE_BITS - bitCount) + +/** + * Rotates the binary representation of this [Long] number right by the specified [bitCount] number of bits. + * The least significant bits pushed out from the right side reenter the number as the most significant bits on the left side. + * + * Rotating the number right by a negative bit count is the same as rotating it left by the negated bit count: + * `number.rotateRight(-n) == number.rotateLeft(n)` + * + * Rotating by a multiple of [Long.SIZE_BITS] (64) returns the same number, or more generally + * `number.rotateRight(n) == number.rotateRight(n % 64)` + */ +@SinceKotlin("1.3") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Long.rotateRight(bitCount: Int): Long = + shl(Long.SIZE_BITS - bitCount) or ushr(bitCount) diff --git a/runtime/src/main/kotlin/kotlin/random/Random.kt b/runtime/src/main/kotlin/kotlin/random/Random.kt index ee2b4e56cb5..9d1942152f1 100644 --- a/runtime/src/main/kotlin/kotlin/random/Random.kt +++ b/runtime/src/main/kotlin/kotlin/random/Random.kt @@ -36,8 +36,5 @@ internal object NativeRandom : Random() { internal actual fun defaultPlatformRandom(): Random = NativeRandom -internal actual fun fastLog2(value: Int): Int = - 31 - value.numberOfLeadingZeros() - internal actual fun doubleFromParts(hi26: Int, low27: Int): Double = (hi26.toLong().shl(27) + low27) / (1L shl 53).toDouble() From be40916ff6a9a0cb8523bf2d1d3442051a014b6d Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Wed, 26 Jun 2019 18:28:40 +0700 Subject: [PATCH 4/7] Added implementations for takeHighestOneBit, countTrailingZeroBits, countLeadingZeroBits, countOneBits --- runtime/src/main/cpp/Operator.cpp | 11 ++++ runtime/src/main/kotlin/kotlin/Numbers.kt | 61 ++++++++++++++++------- 2 files changed, 54 insertions(+), 18 deletions(-) diff --git a/runtime/src/main/cpp/Operator.cpp b/runtime/src/main/cpp/Operator.cpp index 5bfb2e5c0c9..1fc2673fabf 100644 --- a/runtime/src/main/cpp/Operator.cpp +++ b/runtime/src/main/cpp/Operator.cpp @@ -67,4 +67,15 @@ ALWAYS_INLINE KBoolean Kotlin_Double_isNaN(KDouble a) { return isnan(a) ALWAYS_INLINE KBoolean Kotlin_Double_isInfinite(KDouble a) { return isinf(a); } ALWAYS_INLINE KBoolean Kotlin_Double_isFinite(KDouble a) { return isfinite(a); } +//--- Bit operations ---------------------------------------------------------// + +ALWAYS_INLINE KInt Kotlin_Int_countOneBits(KInt value) { return __builtin_popcount(value); } +ALWAYS_INLINE KInt Kotlin_Long_countOneBits(KLong value) { return __builtin_popcountll(value); } + +ALWAYS_INLINE KInt Kotlin_Int_countTrailingZeroBits(KInt value) { return __builtin_ctz(value); } +ALWAYS_INLINE KInt Kotlin_Long_countTrailingZeroBits(KLong value) { return __builtin_ctzll(value); } + +ALWAYS_INLINE KInt Kotlin_Int_countLeadingZeroBits(KInt value) { return __builtin_clz(value); } +ALWAYS_INLINE KInt Kotlin_Long_countLeadingZeroBits(KLong value) { return __builtin_clzll(value); } + } // extern "C" diff --git a/runtime/src/main/kotlin/kotlin/Numbers.kt b/runtime/src/main/kotlin/kotlin/Numbers.kt index 65043fc7dd6..af8a62f6ce9 100644 --- a/runtime/src/main/kotlin/kotlin/Numbers.kt +++ b/runtime/src/main/kotlin/kotlin/Numbers.kt @@ -108,30 +108,38 @@ internal external fun fromBits(bits: Int): Float */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Int.countOneBits(): Int { - var v = this - v = (v and 0x55555555) + (v.ushr(1) and 0x55555555) - v = (v and 0x33333333) + (v.ushr(2) and 0x33333333) - v = (v and 0x0F0F0F0F) + (v.ushr(4) and 0x0F0F0F0F) - v = (v and 0x00FF00FF) + (v.ushr(8) and 0x00FF00FF) - v = (v and 0x0000FFFF) + (v.ushr(16)) - return v -} +@SymbolName("Kotlin_Int_countOneBits") +public actual external fun Int.countOneBits(): Int + +/** + * Counts the number of consecutive most significant bits that are zero in the binary representation of [Int] [value]. + * Returns undefined result for zero [value]. + */ +@SymbolName("Kotlin_Int_countLeadingZeroBits") +private external fun countLeadingZeroBits(value: Int): Int /** * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Int] number. */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Int.countLeadingZeroBits(): Int = TODO() +public actual fun Int.countLeadingZeroBits(): Int = + if (this == 0) Int.SIZE_BITS else countLeadingZeroBits(this) + +/** + * Counts the number of consecutive least significant bits that are zero in the binary representation of [Int] [value]. + * Returns undefined result for zero [value]. + */ +@SymbolName("Kotlin_Int_countTrailingZeroBits") +private external fun countTrailingZeroBits(value: Int): Int /** * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Int] number. */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Int.countTrailingZeroBits(): Int = TODO() -// Int.SIZE_BITS - (this or -this).inv().countLeadingZeroBits() +public actual fun Int.countTrailingZeroBits(): Int = + if (this == 0) Int.SIZE_BITS else countTrailingZeroBits(this) /** * Returns a number having a single bit set in the position of the most significant set bit of this [Int] number, @@ -140,7 +148,7 @@ public actual fun Int.countTrailingZeroBits(): Int = TODO() @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.takeHighestOneBit(): Int = - if (this == 0) 0 else 1.shl(Int.SIZE_BITS - 1 - countLeadingZeroBits()) + if (this == 0) 0 else 1.shl(Int.SIZE_BITS - 1 - countLeadingZeroBits(this)) /** * Returns a number having a single bit set in the position of the least significant set bit of this [Int] number, @@ -188,22 +196,38 @@ public actual fun Int.rotateRight(bitCount: Int): Int = */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Long.countOneBits(): Int = TODO() -// high.countOneBits() + low.countOneBits() +@SymbolName("Kotlin_Long_countOneBits") +public actual external fun Long.countOneBits(): Int + +/** + * Counts the number of consecutive most significant bits that are zero in the binary representation of [Long] [value]. + * Returns undefined result for zero [value]. + */ +@SymbolName("Kotlin_Long_countLeadingZeroBits") +private external fun countLeadingZeroBits(value: Long): Int /** * Counts the number of consecutive most significant bits that are zero in the binary representation of this [Long] number. */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Long.countLeadingZeroBits(): Int = TODO() +public actual fun Long.countLeadingZeroBits(): Int = + if (this == 0L) Long.SIZE_BITS else countLeadingZeroBits(this) + +/** + * Counts the number of consecutive least significant bits that are zero in the binary representation of [Long] [value]. + * Returns undefined result for zero [value]. + */ +@SymbolName("Kotlin_Long_countTrailingZeroBits") +private external fun countTrailingZeroBits(value: Long): Int /** * Counts the number of consecutive least significant bits that are zero in the binary representation of this [Long] number. */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Long.countTrailingZeroBits(): Int = TODO() +public actual fun Long.countTrailingZeroBits(): Int = + if (this == 0L) Long.SIZE_BITS else countTrailingZeroBits(this) /** * Returns a number having a single bit set in the position of the most significant set bit of this [Long] number, @@ -211,7 +235,8 @@ public actual fun Long.countTrailingZeroBits(): Int = TODO() */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun Long.takeHighestOneBit(): Long = TODO() +public actual fun Long.takeHighestOneBit(): Long = + if (this == 0L) 0L else 1L.shl(Long.SIZE_BITS - 1 - countLeadingZeroBits(this)) /** * Returns a number having a single bit set in the position of the least significant set bit of this [Long] number, From 28724409bf2057215feb1b204cfe9772bc63e67c Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 5 Jul 2019 20:11:11 +0300 Subject: [PATCH 5/7] Inline SIZE_BITS constant values while constant propagation is not available --- runtime/src/main/kotlin/kotlin/Numbers.kt | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/runtime/src/main/kotlin/kotlin/Numbers.kt b/runtime/src/main/kotlin/kotlin/Numbers.kt index af8a62f6ce9..8b6874d18d9 100644 --- a/runtime/src/main/kotlin/kotlin/Numbers.kt +++ b/runtime/src/main/kotlin/kotlin/Numbers.kt @@ -102,6 +102,7 @@ public actual inline fun Float.Companion.fromBits(bits: Int): Float = kotlin.fro @TypedIntrinsic(IntrinsicType.REINTERPRET) internal external fun fromBits(bits: Int): Float +// TODO: Replace 32 and 64 literals with Int/Long.SIZE_BITS constants when constant propagation is working /** * Counts the number of set bits in the binary representation of this [Int] number. @@ -124,7 +125,7 @@ private external fun countLeadingZeroBits(value: Int): Int @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.countLeadingZeroBits(): Int = - if (this == 0) Int.SIZE_BITS else countLeadingZeroBits(this) + if (this == 0) 32 else countLeadingZeroBits(this) /** * Counts the number of consecutive least significant bits that are zero in the binary representation of [Int] [value]. @@ -139,7 +140,7 @@ private external fun countTrailingZeroBits(value: Int): Int @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.countTrailingZeroBits(): Int = - if (this == 0) Int.SIZE_BITS else countTrailingZeroBits(this) + if (this == 0) 32 else countTrailingZeroBits(this) /** * Returns a number having a single bit set in the position of the most significant set bit of this [Int] number, @@ -148,7 +149,7 @@ public actual fun Int.countTrailingZeroBits(): Int = @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.takeHighestOneBit(): Int = - if (this == 0) 0 else 1.shl(Int.SIZE_BITS - 1 - countLeadingZeroBits(this)) + if (this == 0) 0 else 1.shl(32 - 1 - countLeadingZeroBits(this)) /** * Returns a number having a single bit set in the position of the least significant set bit of this [Int] number, @@ -172,7 +173,7 @@ public actual fun Int.takeLowestOneBit(): Int = @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.rotateLeft(bitCount: Int): Int = - shl(bitCount) or ushr(Int.SIZE_BITS - bitCount) + shl(bitCount) or ushr(32 - bitCount) /** @@ -188,7 +189,7 @@ public actual fun Int.rotateLeft(bitCount: Int): Int = @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Int.rotateRight(bitCount: Int): Int = - shl(Int.SIZE_BITS - bitCount) or ushr(bitCount) + shl(32 - bitCount) or ushr(bitCount) /** @@ -212,7 +213,7 @@ private external fun countLeadingZeroBits(value: Long): Int @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Long.countLeadingZeroBits(): Int = - if (this == 0L) Long.SIZE_BITS else countLeadingZeroBits(this) + if (this == 0L) 64 else countLeadingZeroBits(this) /** * Counts the number of consecutive least significant bits that are zero in the binary representation of [Long] [value]. @@ -227,7 +228,7 @@ private external fun countTrailingZeroBits(value: Long): Int @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Long.countTrailingZeroBits(): Int = - if (this == 0L) Long.SIZE_BITS else countTrailingZeroBits(this) + if (this == 0L) 64 else countTrailingZeroBits(this) /** * Returns a number having a single bit set in the position of the most significant set bit of this [Long] number, @@ -236,7 +237,7 @@ public actual fun Long.countTrailingZeroBits(): Int = @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Long.takeHighestOneBit(): Long = - if (this == 0L) 0L else 1L.shl(Long.SIZE_BITS - 1 - countLeadingZeroBits(this)) + if (this == 0L) 0L else 1L.shl(64 - 1 - countLeadingZeroBits(this)) /** * Returns a number having a single bit set in the position of the least significant set bit of this [Long] number, @@ -260,7 +261,7 @@ public actual fun Long.takeLowestOneBit(): Long = @SinceKotlin("1.3") @ExperimentalStdlibApi public actual fun Long.rotateLeft(bitCount: Int): Long = - shl(bitCount) or ushr(Long.SIZE_BITS - bitCount) + shl(bitCount) or ushr(64 - bitCount) /** * Rotates the binary representation of this [Long] number right by the specified [bitCount] number of bits. @@ -276,4 +277,4 @@ public actual fun Long.rotateLeft(bitCount: Int): Long = @ExperimentalStdlibApi @kotlin.internal.InlineOnly public actual inline fun Long.rotateRight(bitCount: Int): Long = - shl(Long.SIZE_BITS - bitCount) or ushr(bitCount) + shl(64 - bitCount) or ushr(bitCount) From 782b6d8534524f60bd30663203a1f668a6712f74 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 3 Jul 2019 02:25:33 +0300 Subject: [PATCH 6/7] Remove previous internal implementations of bit extensions --- .../main/kotlin/kotlin/collections/HashMap.kt | 6 ++-- .../main/kotlin/kotlin/collections/IntUtil.kt | 32 ------------------- 2 files changed, 4 insertions(+), 34 deletions(-) delete mode 100644 runtime/src/main/kotlin/kotlin/collections/IntUtil.kt diff --git a/runtime/src/main/kotlin/kotlin/collections/HashMap.kt b/runtime/src/main/kotlin/kotlin/collections/HashMap.kt index 63893db0d85..4757343ccd1 100644 --- a/runtime/src/main/kotlin/kotlin/collections/HashMap.kt +++ b/runtime/src/main/kotlin/kotlin/collections/HashMap.kt @@ -511,9 +511,11 @@ actual class HashMap private constructor( const val INITIAL_MAX_PROBE_DISTANCE = 2 const val TOMBSTONE = -1 - fun computeHashSize(capacity: Int): Int = (capacity.coerceAtLeast(1) * 3).highestOneBit() + @UseExperimental(ExperimentalStdlibApi::class) + fun computeHashSize(capacity: Int): Int = (capacity.coerceAtLeast(1) * 3).takeHighestOneBit() - fun computeShift(hashSize: Int): Int = hashSize.numberOfLeadingZeros() + 1 + @UseExperimental(ExperimentalStdlibApi::class) + fun computeShift(hashSize: Int): Int = hashSize.countLeadingZeroBits() + 1 } internal open class Itr( diff --git a/runtime/src/main/kotlin/kotlin/collections/IntUtil.kt b/runtime/src/main/kotlin/kotlin/collections/IntUtil.kt deleted file mode 100644 index d2d901fa059..00000000000 --- a/runtime/src/main/kotlin/kotlin/collections/IntUtil.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license - * that can be found in the LICENSE file. - */ - -package kotlin.collections - -internal fun Int.highestOneBit() : Int { - var index = 31 - - while (index >= 0) { - var mask = (1 shl index) - if ((mask and this) != 0) { - return mask - } - index-- - } - return 0 -} - -internal fun Int.numberOfLeadingZeros() : Int { - var index = 31 - - while (index >= 0) { - var mask = (1 shl index) - if ((mask and this) != 0) { - return 31 - index - } - index-- - } - return 0 -} \ No newline at end of file From 3c748747004e056dd0326c63c44fcc428a4033ad Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Thu, 11 Jul 2019 19:21:18 +0300 Subject: [PATCH 7/7] [kotlin compiler][update] 1.3.50-dev-2110 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 6ea33986fa0 - psi2ir: Provide substituted descriptor for property references (3 часа назад) * 1968fd7fcb4 - (tag: build-1.3.50-dev-2101) Remove check for files count for mirror elements set in light classes (5 часов назад) * e0c5f897fb8 - (tag: build-1.3.50-dev-2093) KotlinGenerateToStringAction: should generate .contentToString instead java.util.Arrays.toString #KT-27563 Fixed (6 часов назад) * 43c6049f026 - (tag: build-1.3.50-dev-2092) FIR2IR: set origin correctly for synthetic property accesses (6 часов назад) * c6a09dba4ed - FIR: consider Java default constructors as primary ones (6 часов назад) * 2ceffa241b3 - FIR: make Java default constructor visibility same with class visibility (6 часов назад) * 14bbbb5bf58 - FIR: add test for synthetic property access (6 часов назад) * c35d7eab70f - Refactor FIR symbols to make them and their FIR element types more clear (6 часов назад) * 701b9ce1664 - (tag: build-1.3.50-dev-2078) (minor) Minor corrections in K/A/30GradleIT#testOmittedStdlibVersion (17 часов назад) * 15feeddc461 - Allow omitting version of standard artifacts when kotlin-android plugin is used (17 часов назад) * 0aa80d1912a - (tag: build-1.3.50-dev-2074) Fix org.jetbrains.kotlin.native.disabledTargets registered as extension (22 часа назад) * 26a8c16166a - (tag: build-1.3.50-dev-2073) Fix Gradle task input annotations for Gradle 5.5 checks (22 часа назад) * e804b58f5f1 - (tag: build-1.3.50-dev-2072) Fix getting logger factory in 182 (22 часа назад) * 4516902aaf6 - (tag: build-1.3.50-dev-2068) Fix metadata transformation for non-published dependencies, KT-32225 (23 часа назад) * dbc8007c639 - Fix visibility for MPP dependencies from non-root source sets, KT-32204 (23 часа назад) * 0da55e82842 - (tag: build-1.3.50-dev-2064) Unregister custom logger after use in AbstractGradleMultiplatformWizardTest (25 часов назад) * 5d35bebacd2 - (tag: build-1.3.50-dev-2057) Keyword completion: use proper prefix matcher for keyword completion (27 часов назад) * ee37a0aa9f3 - (tag: build-1.3.50-dev-2055) Inline callable: keep all usages inside annotation entries (28 часов назад) * eb00af6b969 - CFG: mark annotation arguments as "used as expressions" #KT-24596 Fixed (28 часов назад) * b24b8bfb285 - BindingContextUtils: fix warnings (28 часов назад) * b97f187cf67 - ControlFlowInformationProvider: fix warnings (28 часов назад) * 5e94f537ef1 - Refactoring: use isUsedAsExpression instead of USED_AS_EXPRESSION slice (28 часов назад) * 5afa5de1d74 - ReplaceWith: don't keep class literal & callable reference in inlining (28 часов назад) * 615aa265f5f - Inline: do more precise check before adding this@Labeled #KT-30762 Fixed (28 часов назад) * 6605e0dfc01 - (tag: build-1.3.50-dev-2053) Update test 'moveMultipleFIlesWithImplicitPrefix' (29 часов назад) * d2b85355481 - Move/copy refactoring: add base support of implicit package prefix #KT-29720 Fixed (29 часов назад) * 7c547d8c5a8 - Minor: clean up copy refactoring (29 часов назад) * 1a9abaeb2ac - Clean up move refactoring (29 часов назад) * beba1d82fcf - ReplaceJavaStaticMethodWithKotlinAnalogInspection: add CommentSaver for case with transform to extension (29 часов назад) * 56d2961cd92 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: add more tests (29 часов назад) * 82bf21f1958 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: rename `isApplicable(call, context)` to `isApplicableInContext` (29 часов назад) * 71c0b3caa0c - ReplaceJavaStaticMethodWithKotlinAnalogInspection: clean up comments (29 часов назад) * 8314dbffd5e - ReplaceJavaStaticMethodWithKotlinAnalogInspection: introduce Transformation for extension with non-null arguments (29 часов назад) * 8b8858b223b - ReplaceJavaStaticMethodWithKotlinAnalogInspection: introduce Transformation for extension with non-null receiver (29 часов назад) * d47a7234bb0 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: apply inspection on idea module (29 часов назад) * 026949a7583 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: remove non-implemented cases (29 часов назад) * 632158cd523 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: simplify Transform for default action (29 часов назад) * 3aa2401f199 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: introduce Transform interface #KT-32454 Fixed (29 часов назад) * 835532c2069 - ReplaceJavaStaticMethodWithKotlinAnalogInspection: move to move to inspections.jdk2k subpackage (29 часов назад) * b2a60795dab - ReplaceJavaStaticMethodWithKotlinAnalogInspection: add more cases for Arrays #KT-32512 Fixed #KT-30124 Fixed (29 часов назад) * 24caca1882e - ReplaceJavaStaticMethodWithKotlinAnalogInspection: fix false positive for 'Arrays.copyOf' #KT-32477 (29 часов назад) * 4a8dbeda1b8 - (tag: build-1.3.50-dev-2051) Gradle, webpack: add conventional archive properties (30 часов назад) * b6ca323a5e3 - Gradle, karma, webpack: add required dependencies (30 часов назад) * 8b622955fee - Gradle, js, minor: fix typos, formatting and imports (30 часов назад) * b68582656ee - Gradle, DtsResolver: use canonical path to avoid files duplication (30 часов назад) * 80068c0a401 - Gradle, js: fix task annotations (30 часов назад) * 3c606c27a19 - Gradle, js: support generating kotlin external declarations from .d.ts (30 часов назад) * 2fb4d23f1e9 - Gradle, js, KotlinProjectNpmResolution: index by compilation (30 часов назад) * 7332290ece0 - Gradle, js, NpmDependency: getDependenciesRecursively (30 часов назад) * 50e07330f46 - Gradle, js, resolver, requireInstalled: close resolving if kotlinNpmResolve is up-to-date (30 часов назад) * 1860097c081 - Gradle, js, npm resolver: support custom package json entries, index files and extensions (30 часов назад) * 88fa396d261 - Gradle, js, resolver: don't skip reading lock file while skipping package manager execution (30 часов назад) * d1789b07adf - Gradle, js, yarn: store resolved version and integrity hash to NpmDependency (30 часов назад) * d051748e2b0 - Gradle, js, npm: support scopes (30 часов назад) * 5e6c76a6e74 - Gradle, execWithProgress: report description as first progress (30 часов назад) * 638554ba1cf - Gradle, JS, resolver: don't add files that are not existed, add kjsm files (30 часов назад) * bcf894aba3a - Gradle, JS, resolver: return null if npm dependency being resolved before kotlinNpmInstall (30 часов назад) * 8b0dffe1826 - Gradle, JS, compilation resolver: close dependent compilation resolver when it's packageJson task is up-to-date (30 часов назад) * 3658ad785f1 - Gradle, JS, NpmResolutionManager: cleanup and document states (30 часов назад) * 327d75dc5d4 - Gradle, JS: Extract NpmResolutionManager (30 часов назад) * 982f08ce7ac - Gradle, JS: replace NodeJs plugin and extension with NpmResolver plugin (30 часов назад) * 2f90742809c - Gradle, JS: rework nodejs extensions and plugins (30 часов назад) * 24f08a614e8 - Gradle, GradleNodeModulesCache: use new ProcessedFilesCache API (30 часов назад) * fd2d99e2059 - Gradle, ProcessedFilesCache: use file as target type (not string) (30 часов назад) * 96794038313 - Gradle, ProcessedFilesCache: optimize serialization (30 часов назад) * dff48b251d2 - Gradle, JS: rework extension registering and resolver phasing (30 часов назад) * f4dcc18baf1 - Gradle, JS: rework NpmResolver (30 часов назад) * 196e3f968ee - (tag: build-1.3.50-dev-2049) New J2K: fix generating nj2k tests bunch files (30 часов назад) * cabc26184b1 - New J2K: convert single Java static import statements (30 часов назад) * b18350e9c8d - New J2K: fix ExceptionInInitializerError in JKJavaPrimitiveTypeImpl (30 часов назад) * f0dd21790a4 - New J2K: add plain text copy-paste conversion test for new J2K (30 часов назад) * 041677ab1bd - New J2K: force use old j2k for all not file/copy-paste conversions (30 часов назад) * 8f69cca2b3b - New J2K: enable new J2K by default (30 часов назад) * ba3927b5809 - New J2K: add default null value to property with type parameter type when it is implicit in Java (30 часов назад) * 9d6338afb27 - New J2K: do not fail conversion if some of post-processings throws exception (30 часов назад) * a9865e5d7b7 - New J2K: check for element validity before applying fix in diagnostic-based post processings (30 часов назад) * 236f62be2a2 - New J2K, minor: refactor code builder (30 часов назад) * 934425e86a5 - New J2K: rearrange and optimize some post-processings (30 часов назад) * 370f113b782 - New J2K: run add/remove modifiers post-processings only single time && do not call resolve in them for some corner cases (30 часов назад) * 3e04bfb1562 - New J2K: do not print modifiers which are going to be removed in postprocessing (30 часов назад) * 0b7b16162d9 - (tag: build-1.3.50-dev-2046) 182: scripts, pass File finding script definition instead of File.name (31 час назад) * 6ab46204cb6 - (tag: build-1.3.50-dev-2041) [JS IR BE] Properly handle primary constructors (32 часа назад) * a1123454186 - [JS IR BE] Fix builtin constructor lowering (32 часа назад) * 131158df655 - [JS IR BE] Refact MultipleCatchLowering (32 часа назад) * 1605dc32513 - [JS IR BE] Remove unused classifier symbol from IrTypeOperatorCall builder (32 часа назад) * 69c4db82d47 - (tag: build-1.3.50-dev-2040) Uast: `IdeaKotlinUastResolveProviderService` analyze as `BodyResolveMode.PARTIAL_WITH_CFA` (32 часа назад) * fda5692fc6e - (tag: build-1.3.50-dev-2039) RemoveCurlyBracesFromTemplateInspection: add heuristic to change severity Change severity to INFORMATION if a variable hasn't whitespace around & add an option to return the old behavior #KT-31717 Fixed (32 часа назад) * e4d0c2cb0ea - (tag: build-1.3.50-dev-2038) Scripts: switch ScriptReportSink to new scripting API (33 часа назад) * bd0f9472221 - Refactor script reports: introduce getter, check that report are changed inside attach method (33 часа назад) * 68b45ce1dca - FromFileAttributeScriptDependenciesLoader should be applicable when there are scriptCompilationConfiguration file attribute (33 часа назад) * 923e89db69c - Provide toString method for ScriptCompilationConfigurationWrapper (33 часа назад) * 7215e03a473 - Scripts: rewrite search without usage of legacy script definition (33 часа назад) * 4853190752c - Scratch: should always have default script definition (33 часа назад) * b0c9339deea - Scripts: search for script definition using PsiFile instead of file name (33 часа назад) * fbe965be9d6 - Scripts: pass File finding script definition instead of File.name (33 часа назад) * ac4df86fa66 - (tag: build-1.3.50-dev-2037) Fix performance test compilation (33 часа назад) * 9da630a1acb - (tag: build-1.3.50-dev-2036) Fix compilation of KotlinMPPGradleProjectResolver in bunch 192 (2 дня назад) * 3c41db654a7 - (tag: build-1.3.50-dev-2034) Fix performance test compilation for 192 (2 дня назад) * 7d14fb756d3 - (tag: build-1.3.50-dev-2032) Make Duration storageUnit inline val to avoid state initialization (2 дня назад) * f7fc5d2ffaf - (tag: build-1.3.50-dev-2031) Fix codegen for JvmOverloads with more than 32 parameters (2 дня назад) * 40633768bc6 - (tag: build-1.3.50-dev-2028) Implement dependency deduplication in order to reduce memory consumption during import process (2 дня назад) * 09c2b2800cc - Migrate collections to arrays for memory optimisation during import process (2 дня назад) * f6f072693ad - Fully disable editing target platforms for HMPP modules. Show java target platform version in Facets (2 дня назад) * c98ad923bd2 - Import list of pure kotlin source roots from gradle in facet settings for inspections #KT-32300 Fixed (2 дня назад) * 2665fff373b - Import package prefix from MPP projects (2 дня назад) * 2b6f566d58f - Import package prefix from gradle #KT-19693 Fixed (2 дня назад) * dbec626a49b - (tag: build-1.3.50-dev-2024) Fix performance test compilation for 182 (2 дня назад) * ffb65b26551 - (tag: build-1.3.50-dev-2021) Build: Fix kotlinBuildProperties, should always proguard on teamcity (2 дня назад) * 8605ad66304 - Build: Upgrade gradle to 5.5 (2 дня назад) * a6be6f4986c - (tag: build-1.3.50-dev-2019) Use Class.forName instead of ClassLoader.loadClass in reflection (2 дня назад) * 72d74ff8886 - (tag: build-1.3.50-dev-2011) Add build gradle kts performance tests (2 дня назад) * c292380aff1 - (tag: build-1.3.50-dev-2005) Improve Kotlin/Native disabled targets warning, KT-29693 (2 дня назад) * dabb7bb4960 - (tag: build-1.3.50-dev-1999) Fix new inference CLI tests on Windows (2 дня назад) * b82c32a8079 - (tag: build-1.3.50-dev-1995) Use default target for android tests (2 дня назад) * d4fb76c1da2 - (tag: build-1.3.50-dev-1994) [JS IR BE] Fix overriding property of Throwable (2 дня назад) * d9c6d387157 - [JS IR BE] Fix private members lowering (2 дня назад) * 7573fcde53c - (tag: build-1.3.50-dev-1991, tag: build-1.3.50-dev-1990) Demote new experimental capitalize overloads in overload resolution (3 дня назад) * 686bcb830e4 - (tag: build-1.3.50-dev-1982) Bit query and bit rotation functions for UInt, ULong, UShort, UByte (3 дня назад) * 39bdf34b9f6 - Use common implementation of fastLog2 based on countLeadingZeroBits (3 дня назад) * f8724654a18 - Bit query and bit rotation functions for Int, Long, Short, Byte (3 дня назад) * 32fc131d62f - Rename jvm actuals from Numbers to NumbersJVM (3 дня назад) * da8fb3a1958 - (tag: build-1.3.50-dev-1979) JVM_IR: Respect -Xno-param-assertions (3 дня назад) * dd20b740308 - Split GenerateNotNullAssertionsTests into standard box and bytecode tests (3 дня назад) * dfd0042a5b1 - (tag: build-1.3.50-dev-1978, tag: build-1.3.50-dev-1976) Do not create single element list if only one candidate (3 дня назад) * f434248cb79 - FIR property getter: take return type from property even if it's error (3 дня назад) * d96c66adac4 - FIR: partially implement invoke resolution (3 дня назад) * 2ca0056cd07 - (tag: build-1.3.50-dev-1971) ReplaceGuardClause inspection: check contracts availability (3 дня назад) * 8cbcb66197a - ReplaceGuardClause inspection: don't report when argument is not String (3 дня назад) * 90b0ea73dcc - Add inspection for check/require/checkNotNull/requireNotNull (3 дня назад) * 64780293d34 - (tag: build-1.3.50-dev-1969) "Redundant visibility modifier" inspection: don't report for property getter (3 дня назад) * a96a938f877 - (tag: build-1.3.50-dev-1965) Fix creating of the script definition from legacy template (3 дня назад) * d3810bfcaea - (tag: build-1.3.50-dev-1964) Add `operator` modifier by inspection on idea module (3 дня назад) * 795dcfa8ffd - Minor: clean up some quickfixes & refactorings (3 дня назад) * 9ba7907b815 - (tag: build-1.3.50-dev-1955, tag: build-1.3.50-dev-1950) Fix compatibility issues with third-party plugins (3 дня назад) * 36e1149e518 - Light classes: Fix getTextOffset() and getTextRange() for property accessors (3 дня назад) * 7078302e6c8 - Light classes: Fix getTextOffset() for identifiers (3 дня назад) * 0f4085066f5 - Debugger: Do not assume we are inside the class body when in '}' (KT-15259) (3 дня назад) * a8efb349ed9 - Debugger, minor: Remove debugger labels in dispatch receivers (3 дня назад) * 8f20f0b9638 - Debugger: Do not calculate default source file if an alternative one is available (3 дня назад) * d45bbaabcdc - Debugger: Fix missing NOPs in optimized Unit.INSTANCE calls (KT-31702) (3 дня назад) * f60bf5cb97c - KT-31127: register only generated Java sources to AGP (3 дня назад) * 2c102ecd570 - Replicate old backend's naming logic for captured receiver parameter and extension receiver parameters. (3 дня назад) * 9760c156a48 - Debugger: Fix breakpoints on if/loops with constant conditions (KT-14421) (3 дня назад) * 6fc801afd20 - Debugger: Make calls to LocalVariableProxyImpl.type lazy (3 дня назад) * 91565076e2d - Debugger: Fix property accessor evaluation in scripts (KT-23526) (3 дня назад) * 6686ed2e380 - Evaluator: Do not report parsing error on empty block/expression (KT-11938) (3 дня назад) * 6d7d524b9b4 - Debugger: Fix 'expect fun' evaluation from common code (KT-26742) (3 дня назад) * 873f4a1b08d - Debugger: Accept empty code fragment contexts (KT-19556) (3 дня назад) * 188ed82081a - Debugger: Handle closure receivers came from outer callables properly (KT-31709) (3 дня назад) * 577f32740e8 - Debugger: Fix isDumb contract in evaluator (KT-31510) (3 дня назад) * c2f0286183c - Debugger: Prefer the closest captured values (3 дня назад) * 4fe6431b0f1 - Debugger: Disable value rendering in watches by default (KT-19084) (3 дня назад) * 0f3d85716c9 - Debugger: Fix test, synthetic this variable is now hidden in Kotlin variables mode (3 дня назад) * 1eab78124a3 - Debugger: Fix private member priority test (3 дня назад) * 54f78a29201 - Debugger: Remove debugger-related hacks in resolution (3 дня назад) * b4f515a4366 - Debugger: Support Kotlin variables for inlined lambdas inside inline functions (KT-31418) (3 дня назад) * afa0bec6f63 - Debugger: Change the inline depth calculation heuristics, fix debugging for inlined lambdas (KT-30919) (3 дня назад) * 9c9d2b5ad4a - Minor: Rename constant to match its meaning (3 дня назад) * 5777592024f - Debugger: Support captured values (KT-30740) (3 дня назад) * f16459df324 - Pill: Support 'runtimeOnly' dependency configuration (3 дня назад) * 6eefea6715c - (tag: build-1.3.50-dev-1929) Add tests for obsolete issues (5 дней назад) * 675f01ee80c - (tag: build-1.3.50-dev-1923) [JS IR BE] Set Throwable subtype name in extendThrowable function (6 дней назад) * 4379780ff87 - (tag: build-1.3.50-dev-1919) Fixed extra argument in function call after rebase (6 дней назад) * 80ddac64e09 - (tag: build-1.3.50-dev-1917) Add serializers for primitive arrays to default types list (6 дней назад) * cfceeb1e8c7 - (tag: build-1.3.50-dev-1915) Implement direct bindings to script properties mapping in the JSR-223 implementation (6 дней назад) * 4940f64265c - Refactor scripting infrastructure - convert usages to the new entities (6 дней назад) * 80ada5113ef - Fix flaky test (6 дней назад) --- gradle.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 275b1e5a609..baa661d31e8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,11 +18,11 @@ buildKotlinVersion=1.3.50-dev-787 buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.50-dev-787,branch:default:any,pinned:true/artifacts/content/maven remoteRoot=konan_tests -kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.50-dev-1741,branch:default:any,pinned:true/artifacts/content/maven -kotlinVersion=1.3.50-dev-1741 -kotlinStdlibRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.50-dev-1741,branch:default:any,pinned:true/artifacts/content/maven -kotlinStdlibVersion=1.3.50-dev-1741 -testKotlinCompilerVersion=1.3.50-dev-1455 +kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.50-dev-2110,branch:default:any,pinned:true/artifacts/content/maven +kotlinVersion=1.3.50-dev-2110 +kotlinStdlibRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.50-dev-2110,branch:default:any,pinned:true/artifacts/content/maven +kotlinStdlibVersion=1.3.50-dev-2110 +testKotlinCompilerVersion=1.3.50-dev-2110 konanVersion=1.3.50 org.gradle.jvmargs='-Dfile.encoding=UTF-8' org.gradle.workers.max=4