Skip to content

io-core: add androidNativeArm32/Arm64 targets (posix nativeMain already covers them) #835

Description

@michalharakal

Summary

skainet-io-core builds every native target (iosArm64, iosSimulatorArm64, macosArm64, linuxX64,
linuxArm64) but not androidNativeArm32 / androidNativeArm64, which blocks on-device
(Android/edge NPU — 32-bit ARM SoCs, arm64 phones) consumers that need engine tokenizers
(TokenizerFactory, SentencePieceTokenizer, byte-level BPE decode).

Why it's trivial

  • The native RandomAccessSource actual is PosixPreadRandomAccessSource (posix pread) in a
    shared nativeMain — androidNative supports posix pread.
  • commonMain deps are only skainet-lang-core (already androidNative) + kotlinx
    (io-core / coroutines / serialization-json — all androidNative-capable).

So the targets just need declaring; no new actuals.

Verification

./gradlew :skainet-io:skainet-io-core:compileKotlinAndroidNativeArm64 and …Arm32 compile clean.

Not included

skainet-io-safetensors also lacks androidNative but additionally depends on
skainet-compile-core / skainet-compile-dag (not androidNative), so it needs a separate,
larger effort. On-device weight loading for compiled models bakes weights into the vmfb, so
io-core (tokenizer decode) is the piece actually needed on device.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions