From d189da39c0dbc3fa05edde292fdc5ef691c6b54b Mon Sep 17 00:00:00 2001 From: michalharakal Date: Fri, 16 Oct 2026 14:57:15 +0200 Subject: [PATCH 1/3] chore(samples): SKaiNET 0.60.0 for the seven engine-only samples --- GloVeEmbeddings/gradle/libs.versions.toml | 6 +++--- GloVeEmbeddings/settings.gradle.kts | 2 +- IrisDemo/gradle/libs.versions.toml | 2 +- MNISTDemo/gradle/libs.versions.toml | 2 +- MnistJavaDemo/README.md | 2 +- MnistJavaDemo/gradle/libs.versions.toml | 2 +- SinusApproximator/CHANGELOG.md | 5 +++++ SinusApproximator/gradle/libs.versions.toml | 2 +- TDALab/gradle/libs.versions.toml | 6 +++--- TDALab/settings.gradle.kts | 2 +- TinyTransformer/gradle/libs.versions.toml | 6 +++--- 11 files changed, 21 insertions(+), 16 deletions(-) diff --git a/GloVeEmbeddings/gradle/libs.versions.toml b/GloVeEmbeddings/gradle/libs.versions.toml index fd02b07..166de3d 100644 --- a/GloVeEmbeddings/gradle/libs.versions.toml +++ b/GloVeEmbeddings/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Must match the Kotlin version SKaiNET was built with: SKaiNET 0.40.1 ships -# klibs compiled with Kotlin 2.4.10, and an older compiler cannot read them +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.40.1" +skainet = "0.60.0" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/GloVeEmbeddings/settings.gradle.kts b/GloVeEmbeddings/settings.gradle.kts index 621c7ef..8beff3b 100644 --- a/GloVeEmbeddings/settings.gradle.kts +++ b/GloVeEmbeddings/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.40.1 is published there). + // Resolve everything from Maven Central (SKaiNET 0.60.0 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/IrisDemo/gradle/libs.versions.toml b/IrisDemo/gradle/libs.versions.toml index ae58e1e..9b86eb0 100644 --- a/IrisDemo/gradle/libs.versions.toml +++ b/IrisDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.40.1" +skainet = "0.60.0" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/MNISTDemo/gradle/libs.versions.toml b/MNISTDemo/gradle/libs.versions.toml index b0a6e80..a1008f3 100644 --- a/MNISTDemo/gradle/libs.versions.toml +++ b/MNISTDemo/gradle/libs.versions.toml @@ -19,7 +19,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.40.1" +skainet = "0.60.0" kotlinxIo = "0.8.2" ktorClientCore = "3.3.3" ktorClientPlugins = "3.1.1" diff --git a/MnistJavaDemo/README.md b/MnistJavaDemo/README.md index d1f62d3..fc18ca8 100644 --- a/MnistJavaDemo/README.md +++ b/MnistJavaDemo/README.md @@ -5,7 +5,7 @@ A CLI MNIST digit detector written in Java 21, demonstrating JVM interoperabilit ## Prerequisites - **Java 21+** (with preview features) -- **SKaiNET 0.40.1** -- resolved directly from Maven Central, no local publish needed +- **SKaiNET 0.60.0** -- resolved directly from Maven Central, no local publish needed - **GGUF model file** -- a trained MNIST CNN model in GGUF format ## Usage diff --git a/MnistJavaDemo/gradle/libs.versions.toml b/MnistJavaDemo/gradle/libs.versions.toml index d593767..2cd3e64 100644 --- a/MnistJavaDemo/gradle/libs.versions.toml +++ b/MnistJavaDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.40.1" +skainet = "0.60.0" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/SinusApproximator/CHANGELOG.md b/SinusApproximator/CHANGELOG.md index 24731a2..d5b10a1 100644 --- a/SinusApproximator/CHANGELOG.md +++ b/SinusApproximator/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.60.0] - 2026-10-16 + +### Changed +- Update to SKaiNET 0.60.0 from Maven Central (Kotlin stays at 2.4.10; the 0.60.0 klibs are built with 2.4.20 and load fine). + ## [0.40.1] - 2026-08-12 ### Changed diff --git a/SinusApproximator/gradle/libs.versions.toml b/SinusApproximator/gradle/libs.versions.toml index 537ff41..1cd4c91 100644 --- a/SinusApproximator/gradle/libs.versions.toml +++ b/SinusApproximator/gradle/libs.versions.toml @@ -24,7 +24,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.40.1" +skainet = "0.60.0" kotlinxIo = "0.8.2" [libraries] diff --git a/TDALab/gradle/libs.versions.toml b/TDALab/gradle/libs.versions.toml index fd02b07..166de3d 100644 --- a/TDALab/gradle/libs.versions.toml +++ b/TDALab/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Must match the Kotlin version SKaiNET was built with: SKaiNET 0.40.1 ships -# klibs compiled with Kotlin 2.4.10, and an older compiler cannot read them +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.40.1" +skainet = "0.60.0" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/TDALab/settings.gradle.kts b/TDALab/settings.gradle.kts index ff02e66..83cc785 100644 --- a/TDALab/settings.gradle.kts +++ b/TDALab/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.40.1 is published there). + // Resolve everything from Maven Central (SKaiNET 0.60.0 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/TinyTransformer/gradle/libs.versions.toml b/TinyTransformer/gradle/libs.versions.toml index 2557e6b..305abde 100644 --- a/TinyTransformer/gradle/libs.versions.toml +++ b/TinyTransformer/gradle/libs.versions.toml @@ -13,13 +13,13 @@ composeHotReload = "1.0.0" # render on macOS/Metal. AGP must also match skainet-ui's — Gradle composite # builds reject mixed AGP versions. composeMultiplatform = "1.11.1" -# Must match the Kotlin version SKaiNET was built with: SKaiNET 0.40.1 ships -# klibs compiled with Kotlin 2.4.10, and an older compiler cannot read them. +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them. kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.40.1" +skainet = "0.60.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } From 06c3a8f1709bb6574bee7cd0e8185d7d63753916 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Fri, 16 Oct 2026 14:57:15 +0200 Subject: [PATCH 2/3] fix(mnist-demo): CLI accuracy test calls the renamed loadWeightsFromBytes --- .../src/test/kotlin/sk/ainet/cli/MnistAccuracyTest.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MNISTDemo/cli/src/test/kotlin/sk/ainet/cli/MnistAccuracyTest.kt b/MNISTDemo/cli/src/test/kotlin/sk/ainet/cli/MnistAccuracyTest.kt index 6a988cb..8707b85 100644 --- a/MNISTDemo/cli/src/test/kotlin/sk/ainet/cli/MnistAccuracyTest.kt +++ b/MNISTDemo/cli/src/test/kotlin/sk/ainet/cli/MnistAccuracyTest.kt @@ -5,7 +5,7 @@ import sk.ainet.lang.model.classifyImage import sk.ainet.lang.model.classifyImageCNN import sk.ainet.lang.model.createMNISTMLP import sk.ainet.lang.model.createMNISTCNN -import sk.ainet.lang.model.loadGgufWeights +import sk.ainet.lang.model.loadWeightsFromBytes import java.io.DataInputStream import java.io.File import java.io.FileInputStream @@ -63,7 +63,7 @@ class MnistAccuracyTest { // Create model and load GGUF weights directly val model = createMNISTMLP() val modelBytes = modelFile.readBytes() - loadGgufWeights(model, modelBytes) + loadWeightsFromBytes(model, modelBytes) println("Model loaded from ${modelFile.absolutePath}: ${modelBytes.size} bytes") // Classify all test images @@ -106,7 +106,7 @@ class MnistAccuracyTest { // Create model and load GGUF weights val model = createMNISTMLP() val modelBytes = modelFile.readBytes() - loadGgufWeights(model, modelBytes) + loadWeightsFromBytes(model, modelBytes) var correct = 0 for (i in images.indices) { @@ -142,7 +142,7 @@ class MnistAccuracyTest { // Load GGUF weights val modelBytes = modelFile.readBytes() - loadGgufWeights(model, modelBytes) + loadWeightsFromBytes(model, modelBytes) println("CNN model loaded from ${modelFile.absolutePath}: ${modelBytes.size} bytes") // Classify all test images using CNN @@ -185,7 +185,7 @@ class MnistAccuracyTest { // Create CNN model and load GGUF weights val model = createMNISTCNN() val modelBytes = modelFile.readBytes() - loadGgufWeights(model, modelBytes) + loadWeightsFromBytes(model, modelBytes) var correct = 0 for (i in images.indices) { From d022892a3e2df1abe478ac999a0a2c4fb6c523ad Mon Sep 17 00:00:00 2001 From: michalharakal Date: Sat, 17 Oct 2026 13:17:46 +0200 Subject: [PATCH 3/3] chore(samples): SKaiNET 0.61.0 for the seven engine-only samples Pins and comments only. Verified locally: IrisDemo and MnistJavaDemo build; TinyTransformer, SinusApproximator, GloVeEmbeddings, TDALab and MNISTDemo run their jvmTest, desktop and wasm compile tasks (MNISTDemo also the cli compile) against 0.61.0 from Maven Central. --- GloVeEmbeddings/gradle/libs.versions.toml | 4 ++-- GloVeEmbeddings/settings.gradle.kts | 2 +- IrisDemo/gradle/libs.versions.toml | 2 +- MNISTDemo/gradle/libs.versions.toml | 2 +- MnistJavaDemo/README.md | 2 +- MnistJavaDemo/gradle/libs.versions.toml | 2 +- SinusApproximator/gradle/libs.versions.toml | 2 +- TDALab/gradle/libs.versions.toml | 4 ++-- TDALab/settings.gradle.kts | 2 +- TinyTransformer/gradle/libs.versions.toml | 4 ++-- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/GloVeEmbeddings/gradle/libs.versions.toml b/GloVeEmbeddings/gradle/libs.versions.toml index 166de3d..3378748 100644 --- a/GloVeEmbeddings/gradle/libs.versions.toml +++ b/GloVeEmbeddings/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships # klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.60.0" +skainet = "0.61.0" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/GloVeEmbeddings/settings.gradle.kts b/GloVeEmbeddings/settings.gradle.kts index 8beff3b..aae78d0 100644 --- a/GloVeEmbeddings/settings.gradle.kts +++ b/GloVeEmbeddings/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.60.0 is published there). + // Resolve everything from Maven Central (SKaiNET 0.61.0 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/IrisDemo/gradle/libs.versions.toml b/IrisDemo/gradle/libs.versions.toml index 9b86eb0..15e1e40 100644 --- a/IrisDemo/gradle/libs.versions.toml +++ b/IrisDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.60.0" +skainet = "0.61.0" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/MNISTDemo/gradle/libs.versions.toml b/MNISTDemo/gradle/libs.versions.toml index a1008f3..6bba61d 100644 --- a/MNISTDemo/gradle/libs.versions.toml +++ b/MNISTDemo/gradle/libs.versions.toml @@ -19,7 +19,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.60.0" +skainet = "0.61.0" kotlinxIo = "0.8.2" ktorClientCore = "3.3.3" ktorClientPlugins = "3.1.1" diff --git a/MnistJavaDemo/README.md b/MnistJavaDemo/README.md index fc18ca8..52822dc 100644 --- a/MnistJavaDemo/README.md +++ b/MnistJavaDemo/README.md @@ -5,7 +5,7 @@ A CLI MNIST digit detector written in Java 21, demonstrating JVM interoperabilit ## Prerequisites - **Java 21+** (with preview features) -- **SKaiNET 0.60.0** -- resolved directly from Maven Central, no local publish needed +- **SKaiNET 0.61.0** -- resolved directly from Maven Central, no local publish needed - **GGUF model file** -- a trained MNIST CNN model in GGUF format ## Usage diff --git a/MnistJavaDemo/gradle/libs.versions.toml b/MnistJavaDemo/gradle/libs.versions.toml index 2cd3e64..4b67529 100644 --- a/MnistJavaDemo/gradle/libs.versions.toml +++ b/MnistJavaDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.60.0" +skainet = "0.61.0" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/SinusApproximator/gradle/libs.versions.toml b/SinusApproximator/gradle/libs.versions.toml index 1cd4c91..3fa08f2 100644 --- a/SinusApproximator/gradle/libs.versions.toml +++ b/SinusApproximator/gradle/libs.versions.toml @@ -24,7 +24,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.60.0" +skainet = "0.61.0" kotlinxIo = "0.8.2" [libraries] diff --git a/TDALab/gradle/libs.versions.toml b/TDALab/gradle/libs.versions.toml index 166de3d..3378748 100644 --- a/TDALab/gradle/libs.versions.toml +++ b/TDALab/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships # klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.60.0" +skainet = "0.61.0" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/TDALab/settings.gradle.kts b/TDALab/settings.gradle.kts index 83cc785..9f1ea9a 100644 --- a/TDALab/settings.gradle.kts +++ b/TDALab/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.60.0 is published there). + // Resolve everything from Maven Central (SKaiNET 0.61.0 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/TinyTransformer/gradle/libs.versions.toml b/TinyTransformer/gradle/libs.versions.toml index 305abde..e264fcb 100644 --- a/TinyTransformer/gradle/libs.versions.toml +++ b/TinyTransformer/gradle/libs.versions.toml @@ -13,13 +13,13 @@ composeHotReload = "1.0.0" # render on macOS/Metal. AGP must also match skainet-ui's — Gradle composite # builds reject mixed AGP versions. composeMultiplatform = "1.11.1" -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.60.0 ships +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships # klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them. kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.60.0" +skainet = "0.61.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }