You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support the extended fork's GraalVM native-image and Kotlin/Native desktop paths as user choices #191
Support the two extra runtime paths that compose-multiplatform-extended / compose-multiplatform-core-extended provide, as additional choices for users, next to the upstream JetBrains Compose paths that stay the default:
GraalVM native-image desktop app: a single executable with the AWT-free window, input, window chrome and resize finished in the fork.
Kotlin/Native desktop app: the fork's K/N UI targets with window, input and accessibility moved into the fork.
python-multiplatform should be able to support both: the upcall path is a build-time table with no runtime reflection (AGENTS.md §12.3, §13), which is exactly what a closed-world native image and Kotlin/Native need. The native-image upcall entry point is already verified (docs/platforms/graal-native-image-verification.md), but no Compose window runs through native-image today, and desktop K/N has no interpreter target yet.
Work (once the fork ships the paths)
Gradle plugin: let an app choose upstream Compose (default), extended GraalVM, or extended K/N; stage PYTHONHOME and the generated tables for each.
Desktop Kotlin/Native target for the interpreter (macOS, Linux, mingwX64) if the K/N path needs it.
sample/: one build per path; the notebook E2E (python-multiplatform-compose/fixtures/notebook-e2e) runs on each.
Requirements already given to the fork side (darkpyonix leader, 2026-10-04)
The upcall table approach stays; no runtime reflection.
When
After torchnative, in python-multiplatform's turn, and after the fork finishes both paths.
Done when
The same pythonx-compose app runs unchanged on upstream Compose, extended GraalVM and extended K/N desktop builds, each with the notebook E2E passing in CI.
Activity
b-re-w commentedon Oct 4, 2026
Fork entry points (ComposeRust designer, 2026-10-04): module
extended/window/common(fork PR #34, extended 8c7d11215a5), packageorg.thisisthepy.compose.window, targets jvm, macosArm64, linuxX64, linuxArm64, Kotlin stdlib only. Platform layersnative/macos,native/linux,graalvm/macos,graalvm/linux,windows-sharedimplementWindowPlatform(open, pump, measure, requestFrame, present, systemTheme, setTitle, setMinimumSize, setVisibility, clipboard, setImeSpot, showContextMenu, close) withWindowListenercallbacks; GraalVM layers call C via @cfunction and come back through a reflection-free table. Upstream public API is guarded by fork PR #36 (extended-public-api.yml). Embedder hooks inandroidx.compose.ui.internal(fork #19) need #192.Merge pull request #243 from thisisthepy/feat/fork-desktop-paths-doc
Merge pull request #250 from thisisthepy/feat/notebook-e2e-native-image