Skip to content

Support Embedded targets without a concurrency runtime#29

Merged
colemancda merged 3 commits into
masterfrom
feature/embedded-no-concurrency
Jul 23, 2026
Merged

Support Embedded targets without a concurrency runtime#29
colemancda merged 3 commits into
masterfrom
feature/embedded-no-concurrency

Conversation

@colemancda

Copy link
Copy Markdown
Member

Summary

Allows CoreModel to compile for Embedded Swift targets whose stdlib ships no _Concurrency slice (e.g. bare-metal ARM like the Nintendo DS's ARM946E-S, armv5te-none-none-eabi).

  • ModelStorage (async requirements) and the InMemoryModelStorage actor are now gated on canImport(_Concurrency) instead of assuming a concurrency runtime. No change on any platform that has one, including Embedded wasm.
  • InMemoryStorage — the synchronous, typed-throws backing store introduced with the in-memory store — is now public, so concurrency-less Embedded consumers have a usable storage API (it already elides its lock under Embedded).

Testing

  • swift build + swift test on macOS: 22 tests pass.
  • SWIFT_EMBEDDED=1 swift build --swift-sdk swift-6.3.3-RELEASE_wasm-embedded --target CoreModel: builds as before.
  • Direct swiftc -target armv5te-none-none-eabi -enable-experimental-feature Embedded over all CoreModel sources (with FoundationEmbedded prebuilt): compiles clean — previously failed on the async protocol and actor.

@colemancda
colemancda merged commit 11627a7 into master Jul 23, 2026
25 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant