Embedded Swift support - #357
Open
Joannis wants to merge 1 commit into
Open
Conversation
Contributor
Author
|
My experiments to run on ESP32c6 |
Member
|
@Joannis This is so cool! If you don't mind me pushing to your branch, I'll do some tweaks so that we can land this to main branch. |
Member
|
There are unrelated errors on CI introduced on |
Member
|
|
kateinoigakukun
added a commit
that referenced
this pull request
Jun 29, 2026
Extracted from #357 Co-Authored-By: Joannis Orlandos <joannis@orlandos.nl>
kateinoigakukun
added a commit
that referenced
this pull request
Jun 29, 2026
Extracted from #357 Co-Authored-By: Joannis Orlandos <joannis@orlandos.nl>
kateinoigakukun
added a commit
that referenced
this pull request
Jun 29, 2026
Extracted from #357 Co-Authored-By: Joannis Orlandos <joannis@orlandos.nl>
kateinoigakukun
added a commit
that referenced
this pull request
Jun 29, 2026
Extracted from #357 Co-Authored-By: Joannis Orlandos <joannis@orlandos.nl>
kateinoigakukun
added a commit
that referenced
this pull request
Jun 30, 2026
Extracted from #357 Co-Authored-By: Joannis Orlandos <joannis@orlandos.nl>
kkebo
pushed a commit
to kkebo/WasmKit
that referenced
this pull request
Jun 30, 2026
…ers (swiftwasm#369) Extracted from swiftwasm#357 Co-authored-by: Joannis Orlandos <joannis@orlandos.nl>
This was referenced Jul 27, 2026
kkebo
pushed a commit
to kkebo/WasmKit
that referenced
this pull request
Jul 27, 2026
Part of the Embedded Swift support work (swiftwasm#357), split out for incremental review. Adds a `MultiThread` package trait (enabled by default) and a `PlatformMutex` wrapper in `Sources/WasmKit/Platform/`: - With the trait enabled, `PlatformMutex` is backed by `Synchronization.Mutex`, forwarding the closure directly so the state type needs no `Sendable` bound. - With the trait disabled, it degrades to plain unsynchronized storage with the same non-copyable shape. This serves single-threaded environments such as bare-metal Embedded Swift targets, where the `Synchronization` module provides no `Mutex`. Disabling the trait is a promise that the process runs single-threaded, so the fallback carries `@unchecked Sendable`. `Interner` adopts the wrapper, replacing its direct `Mutex` use. Its lock property is annotated `nonisolated(unsafe)` because the single-threaded fallback mutates in place (`mutating withLock`), which `Sendable` checking cannot see through. The class conformance itself stays checked. The CMake build defines `MultiThread` unconditionally. No functional change with default traits.
This was referenced Jul 29, 2026
kateinoigakukun
added a commit
that referenced
this pull request
Jul 29, 2026
Builds WasmKit for ESP32-C6 via ESP-IDF v5.5 + Embedded Swift (one IDF component per SwiftPM module) and runs a wasm module on emulated ESP32-C3 in QEMU via Examples/embedded-esp32/smoke-test.sh. This example is based on the Embedded Swift support originally developed by Joannis Orlandos in #357. Co-authored-by: Joannis Orlandos <joannis@orlandos.nl>
kateinoigakukun
added a commit
that referenced
this pull request
Jul 29, 2026
Builds WasmKit for ESP32-C6 via ESP-IDF v5.5 + Embedded Swift (one IDF component per SwiftPM module) and runs a wasm module on emulated ESP32-C3 in QEMU via Examples/embedded-esp32/smoke-test.sh. A new build-embedded CI job compile-checks the engine for riscv32-none-none-eabi with Embedded Swift (Utilities/build-embedded.sh), so embedded compatibility is maintained without ESP-IDF on the runners. The Embedded Swift support in the engine was originally developed by Joannis Orlandos in #357.
kateinoigakukun
added a commit
that referenced
this pull request
Jul 29, 2026
Builds WasmKit for ESP32-C6 via ESP-IDF v5.5 + Embedded Swift (one IDF component per SwiftPM module) and runs a wasm module on emulated ESP32-C3 in QEMU via Examples/embedded-esp32/smoke-test.sh. A new build-embedded CI job compile-checks the engine for riscv32-none-none-eabi with Embedded Swift (Utilities/build-embedded.sh), so embedded compatibility is maintained without ESP-IDF on the runners. The Embedded Swift support in the engine was originally developed by Joannis Orlandos in #357.
kateinoigakukun
added a commit
that referenced
this pull request
Jul 29, 2026
Builds WasmKit for ESP32-C6 via ESP-IDF v5.5 + Embedded Swift (one IDF component per SwiftPM module) and runs a wasm module on emulated ESP32-C3 in QEMU via Examples/embedded-esp32/smoke-test.sh. A new build-embedded CI job compile-checks the engine for riscv32-none-none-eabi with Embedded Swift (Utilities/build-embedded.sh), so embedded compatibility is maintained without ESP-IDF on the runners. The Embedded Swift support in the engine was originally developed by Joannis Orlandos in #357. Co-authored-by: Joannis Orlandos <joannis@orlandos.nl>
Member
|
Is there anything else remaining on this branch that's not available on |
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.
No description provided.