Merge branch 'refs/heads/beta/kotlin2.0.0' into dev

This commit is contained in:
Alexander Nozik 2024-07-07 11:03:48 +03:00
commit 2d309e050b
14 changed files with 23 additions and 98 deletions

View File

@ -1,6 +1,5 @@
@file:Suppress("UNUSED_VARIABLE") @file:Suppress("UNUSED_VARIABLE")
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
import space.kscience.kmath.benchmarks.addBenchmarkProperties import space.kscience.kmath.benchmarks.addBenchmarkProperties
plugins { plugins {
@ -81,7 +80,7 @@ benchmark {
// Setup configurations // Setup configurations
targets { targets {
register("jvm") register("jvm")
register("js") // register("js")
} }
fun kotlinx.benchmark.gradle.BenchmarkConfiguration.commonConfiguration() { fun kotlinx.benchmark.gradle.BenchmarkConfiguration.commonConfiguration() {
@ -152,18 +151,12 @@ benchmark {
} }
} }
kotlin.sourceSets.all { kotlin {
with(languageSettings) { jvmToolchain(11)
optIn("kotlin.contracts.ExperimentalContracts") compilerOptions {
optIn("kotlin.ExperimentalUnsignedTypes") optIn.addAll(
optIn("space.kscience.kmath.UnstableKMathAPI") "space.kscience.kmath.UnstableKMathAPI"
} )
}
tasks.withType<KotlinJvmCompile> {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all" + "-Xlambdas=indy"
} }
} }

View File

@ -16,7 +16,7 @@ allprojects {
} }
group = "space.kscience" group = "space.kscience"
version = "0.4.0" version = "0.4.1-dev"
} }
subprojects { subprojects {

View File

@ -1,4 +1,5 @@
plugins { plugins {
kotlin("jvm") version "1.9.23"
`kotlin-dsl` `kotlin-dsl`
`version-catalog` `version-catalog`
} }
@ -25,10 +26,8 @@ dependencies {
} }
kotlin { kotlin {
jvmToolchain { jvmToolchain(11)
languageVersion.set(JavaLanguageVersion.of(11)) compilerOptions {
} optIn.add("kotlin.OptIn")
sourceSets.all {
languageSettings.optIn("kotlin.OptIn")
} }
} }

View File

@ -9,6 +9,7 @@ org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4096m org.gradle.jvmargs=-Xmx4096m
org.gradle.parallel=true org.gradle.parallel=true
org.gradle.workers.max=4 org.gradle.workers.max=4
toolsVersion=0.15.2-kotlin-1.9.22
toolsVersion=0.15.4-kotlin-2.0.0
#kotlin.experimental.tryK2=true #kotlin.experimental.tryK2=true
#kscience.wasm.disabled=true #kscience.wasm.disabled=true

View File

@ -4,11 +4,6 @@
*/ */
@file:Suppress( @file:Suppress(
"INTERFACE_WITH_SUPERCLASS",
"OVERRIDING_FINAL_MEMBER",
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
"CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
"ObjectPropertyName", "ObjectPropertyName",
"ClassName", "ClassName",
) )

View File

@ -4,10 +4,6 @@
*/ */
@file:Suppress( @file:Suppress(
"INTERFACE_WITH_SUPERCLASS",
"OVERRIDING_FINAL_MEMBER",
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
"CONFLICTING_OVERLOADS",
"PropertyName", "PropertyName",
"ClassName", "ENUM_CLASS_IN_EXTERNAL_DECLARATION_WARNING", "ClassName", "ENUM_CLASS_IN_EXTERNAL_DECLARATION_WARNING",
) )

View File

@ -6,10 +6,6 @@
@file:JsQualifier("WebAssembly") @file:JsQualifier("WebAssembly")
@file:Suppress( @file:Suppress(
"INTERFACE_WITH_SUPERCLASS",
"OVERRIDING_FINAL_MEMBER",
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
"ClassName", "ClassName",
) )
@ -22,78 +18,34 @@ import org.w3c.fetch.Response
import space.kscience.kmath.internal.tsstdlib.PromiseLike import space.kscience.kmath.internal.tsstdlib.PromiseLike
import kotlin.js.Promise import kotlin.js.Promise
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") internal external interface CompileError
internal external interface CompileError {
companion object {
var prototype: CompileError
}
}
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
internal external interface Global { internal external interface Global {
var value: Any var value: Any
fun valueOf(): Any fun valueOf(): Any
companion object {
var prototype: Global
}
} }
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
@JsName("Instance") @JsName("Instance")
internal external interface Instance1 { internal external interface Instance1 {
var exports: Exports var exports: Exports
companion object {
var prototype: Instance
}
} }
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") internal external interface LinkError
internal external interface LinkError {
companion object {
var prototype: LinkError
}
}
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
internal external interface Memory { internal external interface Memory {
var buffer: ArrayBuffer var buffer: ArrayBuffer
fun grow(delta: Number): Number fun grow(delta: Number): Number
companion object {
var prototype: Memory
}
} }
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
@JsName("Module")
internal external interface Module1 {
companion object {
var prototype: Module
fun customSections(moduleObject: Module, sectionName: String): Array<ArrayBuffer>
fun exports(moduleObject: Module): Array<ModuleExportDescriptor>
fun imports(moduleObject: Module): Array<ModuleImportDescriptor>
}
}
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") internal external interface RuntimeError
internal external interface RuntimeError {
companion object {
var prototype: RuntimeError
}
}
@Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE")
internal external interface Table { internal external interface Table {
var length: Number var length: Number
fun get(index: Number): Function<*>? fun get(index: Number): Function<*>?
fun grow(delta: Number): Number fun grow(delta: Number): Number
fun set(index: Number, value: Function<*>?) fun set(index: Number, value: Function<*>?)
companion object {
var prototype: Table
}
} }
internal external interface GlobalDescriptor { internal external interface GlobalDescriptor {

View File

@ -3,13 +3,6 @@
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@file:Suppress(
"INTERFACE_WITH_SUPERCLASS",
"OVERRIDING_FINAL_MEMBER",
"RETURN_TYPE_MISMATCH_ON_OVERRIDE",
"CONFLICTING_OVERLOADS",
"NO_EXPLICIT_VISIBILITY_IN_API_MODE_WARNING",
)
package space.kscience.kmath.internal.webassembly package space.kscience.kmath.internal.webassembly

View File

@ -12,8 +12,6 @@ import space.kscience.kmath.expressions.Symbol
import space.kscience.kmath.operations.Algebra import space.kscience.kmath.operations.Algebra
import space.kscience.kmath.operations.Float64Field import space.kscience.kmath.operations.Float64Field
import space.kscience.kmath.operations.Int32Ring import space.kscience.kmath.operations.Int32Ring
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
import space.kscience.kmath.asm.compile as asmCompile import space.kscience.kmath.asm.compile as asmCompile
import space.kscience.kmath.asm.compileToExpression as asmCompileToExpression import space.kscience.kmath.asm.compileToExpression as asmCompileToExpression
@ -43,7 +41,6 @@ private object PrimitiveAsmCompilerTestContext : CompilerTestContext {
internal actual inline fun runCompilerTest(action: CompilerTestContext.() -> Unit) { internal actual inline fun runCompilerTest(action: CompilerTestContext.() -> Unit) {
contract { callsInPlace(action, InvocationKind.EXACTLY_ONCE) }
action(GenericAsmCompilerTestContext) action(GenericAsmCompilerTestContext)
action(PrimitiveAsmCompilerTestContext) action(PrimitiveAsmCompilerTestContext)
} }

View File

@ -6,7 +6,6 @@
package space.kscience.kmath.nd package space.kscience.kmath.nd
import space.kscience.kmath.UnsafeKMathAPI import space.kscience.kmath.UnsafeKMathAPI
import kotlin.jvm.JvmInline
/** /**
* A read-only ND shape * A read-only ND shape

View File

@ -159,7 +159,7 @@ class Rational {
override fun equals(other: Any?): Boolean = override fun equals(other: Any?): Boolean =
when (other) { when (other) {
is Rational -> numerator == other.numerator && denominator == other.denominator is Rational -> numerator == other.numerator && denominator == other.denominator
is Int -> numerator == other && denominator == 1L is Int -> numerator == other.toLong() && denominator == 1L
is Long -> numerator == other && denominator == 1L is Long -> numerator == other && denominator == 1L
else -> false else -> false
} }

View File

@ -33,7 +33,7 @@ public interface Histogram<in T : Any, out V, out B : Bin<T, V>> {
/** /**
* Find existing bin, corresponding to given coordinates * Find existing bin, corresponding to given coordinates
*/ */
public operator fun get(point: Point<out T>): B? public operator fun get(point: Point<T>): B?
/** /**
* Dimension of the histogram * Dimension of the histogram
@ -57,7 +57,7 @@ public interface HistogramBuilder<in T, V> {
/** /**
* Increment appropriate bin with given value * Increment appropriate bin with given value
*/ */
public fun putValue(point: Point<out T>, value: V = defaultValue) public fun putValue(point: Point<T>, value: V = defaultValue)
} }

View File

@ -42,7 +42,7 @@ public interface Histogram1DBuilder<in T : Any, V : Any> : HistogramBuilder<T, V
*/ */
public fun putValue(at: T, value: V = defaultValue) public fun putValue(at: T, value: V = defaultValue)
override fun putValue(point: Point<out T>, value: V) { override fun putValue(point: Point<T>, value: V) {
require(point.size == 1) { "Only points with single value could be used in Histogram1D" } require(point.size == 1) { "Only points with single value could be used in Histogram1D" }
putValue(point[0], value) putValue(point[0], value)
} }

View File

@ -93,7 +93,7 @@ public class UniformHistogramGroupND<V : Any, A : Field<V>>(
val hBuilder = object : HistogramBuilder<Double, V> { val hBuilder = object : HistogramBuilder<Double, V> {
override val defaultValue: V get() = valueAlgebraND.elementAlgebra.one override val defaultValue: V get() = valueAlgebraND.elementAlgebra.one
override fun putValue(point: Point<out Double>, value: V) = with(valueAlgebraND.elementAlgebra) { override fun putValue(point: Point<Double>, value: V) = with(valueAlgebraND.elementAlgebra) {
val index = getIndexOrNull(point) val index = getIndexOrNull(point)
ndCounter[index].add(value) ndCounter[index].add(value)
} }