release/0.23.0: lazy parameter init + GGUF unsigned metadata#590
Merged
michalharakal merged 6 commits intodevelopfrom May 2, 2026
Merged
release/0.23.0: lazy parameter init + GGUF unsigned metadata#590michalharakal merged 6 commits intodevelopfrom
michalharakal merged 6 commits intodevelopfrom
Conversation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…read Adds a POSIX-pread-backed RandomAccessSource so K/N consumers can read GGUF files of arbitrary size instead of slurping into a single ByteArray (capped at ~2 GiB / Int.MAX_VALUE bytes). pread is positional and atomic, so concurrent reads are safe without locking. - New PosixPreadRandomAccessSource in skainet-io-core's nativeMain (covers macosArm64, linuxX64, linuxArm64, iosArm64, iosSimulatorArm64). - skainet-io-gguf's nativeMain factory delegates to it instead of returning null. Behaviour matches the JVM actual: returns null on open/stat failure so callers cleanly fall back to the legacy reader. - 11 nativeTest cases covering size, partial reads, offset/length variants, EOF/argument validation, idempotent close, and missing-file null return. Fixes #589 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…read-random-access-source feat(gguf): implement createRandomAccessSource on Kotlin/Native via pread
…LM links CHANGELOG: add 0.23.0 entries for PR #591 — `PosixPreadRandomAccessSource` under Added and the GGUF >2 GiB load failure under Fixed. README: remove the SKaiNET-LLM ecosystem-table row and the matching Explore row; SKaiNET-LLM repo is 404. Reroute the LLM-inference entry to SKaiNET-transformers, which is the active LLM application layer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Quickstart import now pins skainet-bom:0.23.0. - "What's New" rewritten for 0.23.0: placeholder API + DSL OOM fix (PR #588) and the K/N pread random-access fix (PR #591). Older 0.22.0 / 0.22.2 highlights moved out of the README; CHANGELOG.md remains the canonical full history (link already in place). - BOM caveat about 0.22.2 being the first correctly-coordinated publish is retained — still actionable for anyone trying to import older BOMs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Earlier rotation cut both 0.22.0 and 0.22.2 entirely; restore them as one-line bullets under "Recent releases" so the README still gives a sense of recent shape without duplicating the changelog. Adds 0.22.1 to the list (was missing before). Long-form descriptions remain in CHANGELOG.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepares 0.23.0. Carries the contents of:
hotfix/0.22.2) — already merged intodevelop: BOM coords + GGUF unsigned-metadata accessorsfeature/dsl-lazy-zero-init) — already merged intodevelop: lazy zero-init for parameter placeholders, closing DSL eagerly allocates zero tensors for every Linear, OOMs on real models #587Plus the version-prep commit on this branch:
chore(release): prepare 0.23.0— bumpsVERSION_NAMEfrom0.22.2to0.23.0, adds a[0.23.0]block toCHANGELOG.mddescribing the newTensorDataFactory.placeholderAPI and the eager-zero-init fix.Why a minor bump (not patch)
#588adds a new public method to a public interface (TensorDataFactory.placeholder(shape, dtype)). It has a default implementation so it's source-compatible for callers; binary-compatible for any consumer that doesn't override the interface. New API surface → minor bump per semver.E2E verification
Published locally via
./gradlew publishToMavenLocal -PRELEASE_SIGNING_ENABLED=false -PsignAllPublications=falseand consumed from SKaiNET-transformers (fix/apertus-real-loading, PR#98) withskainet = "0.23.0"and-PuseLocalSkaiNet=falseto bypass the composite build::skainet-lang:skainet-lang-core:jvmTest— 614 tests across 80 suites green (upstream).unsloth/Apertus-8B-Instruct-2509-GGUF(Q4_K_S, 4.7 GB on disk) —ApertusNetworkLoader.fromGguf().load<FP32, Float>(ctx)succeeds in 12 GB heap (was OOMing at 12 GB), 35 top-level modules constructed in 16 s.:llm-core:jvmTest :llm-inference:apertus:jvmTest(downstream, against published 0.23.0) — 100 tests, 0 failures.Tag and publish
Once merged, tag
0.23.0on thedevelopmerge commit (matching the 0.22.x convention — annotated tag points to the release-prep commit on the release branch tip). The release workflow auto-publishes to Maven Central on tag push.🤖 Generated with Claude Code