feat(backend-native-cpu): iOS/macOS Kotlin/Native targets with embedded kernel archives (#959) - #962
Merged
Conversation
aharakal
previously approved these changes
Aug 11, 2026
michalharakal
dismissed
aharakal’s stale review
August 11, 2026 14:53
The merge-base changed after approval.
aharakal
previously approved these changes
Aug 11, 2026
michalharakal
dismissed
aharakal’s stale review
August 11, 2026 14:59
The merge-base changed after approval.
…ed kernel archives (#959) iosArm64 + iosSimulatorArm64 + macosArm64 join the module through the existing wireSkainetKernels cinterop/embedding seam (#941/#942). Three Apple CMake lanes (macOS host only; CMake first-class iOS support, no toolchain file) produce the Mach-O static archives — device: iphoneos SDK, min iOS 12.0; simulator: iphonesimulator SDK, min 14.0; macOS: arm64, min 11.0, static-only. No -march is passed: the #958 runtime FEAT_DotProd dispatch serves A12 through M-series from one archive. Archive-dir precedence mirrors the Linux pair: injected -PskainetKernelsIosArm64Dir / -PskainetKernelsIosSimulatorArm64Dir / -PskainetKernelsMacosArm64Dir > macOS-host heuristic > bindings-only with a loud cinterop warning. The shared nativeTest parity suites gain iosSimulatorArm64Test / macosArm64Test on macOS hosts; the multiarch macos-14 PR lane runs both. On non-macOS hosts the whole Apple task family is disabled — module build + root assemble verified green on Linux with the targets declared. Refs #920
michalharakal
force-pushed
the
feature/ios-native-kernel-targets-959
branch
from
August 11, 2026 15:10
ebcfc53 to
3acf18a
Compare
aharakal
approved these changes
Aug 11, 2026
This was referenced Aug 11, 2026
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.
First of two PRs for #959 (iOS kernel track of #920). Stacked on #961 (the Apple dotprod dispatch — this PR's archives compile at baseline and need that dispatch to be correct on A12); the first commit here is #961's, and this becomes a one-commit diff once it merges.
What's new:
iosArm64(),iosSimulatorArm64(),macosArm64()wired through the existingwireSkainetKernelscinterop/embedding seam — zero changes to the seam itself. Source sets join the hand-wirednativeMain/nativeTest;NativeKnKernelProviderand the 7 parity suites need no code changes.onlyIfgated): device archive against theiphoneosSDK (min iOS 12.0), simulator againstiphonesimulator(min 14.0), macosArm64 plain arm64 (min 11.0,SKAINET_STATIC_ONLY— the FFM dylib still comes from the regular host build). Deployment minimums match K/N's, so the K/N link never warns. No-march: one device archive serves A12 (no dotprod) through A18/M-series via the perf(backend-native-cpu): runtime FEAT_DotProd dispatch for Apple arm64 Q4_K/Q6_K kernels (#958) #961 runtime dispatch.-PskainetKernelsIosArm64Dir/-PskainetKernelsIosSimulatorArm64Dir/-PskainetKernelsMacosArm64Dir(CI) > macOS-host heuristic (local dev) > bindings-only with the established loud cinterop warning.native-cpu-multiarch.ymlmacos-14 leg now runsmacosArm64Test(native on the M-series runner — dispatch fast arm) andiosSimulatorArm64Test(same parity suites in the simulator).Verified on a Linux host (the highest-risk item — Apple targets joining the commonized cinterop set):
:skainet-backend-native-cpu:buildand rootassemblegreen,compileKotlinIosArm64correctly SKIPPED, Linux K/N tests unaffected. The real archive build + simulator/native test execution is exercised by this PR's own macos-14 lane.Follow-up PR (same issue): publish.yml plumbing (build + upload + inject the three archives at release) and the kernel-support-matrix
native-cinteroptier.