I'm excited to provide an update on our latest progress in the Swift for Wasm ecosystem! This month the community focused on improvements to Swift and JavaScript interop, debugger support in WasmKit, and Wasm compatibility in SwiftNIO.
Here's a detailed list of notable changes merged or still in progress, prepared with help from @kateinoigakukun, @krodak, and @scottm:
Swift Toolchain
- [WIP] Code-size and performance improvements to the calling convention: swift#85358;
- Bump default stack size to 128K to fix OOM crash with Swift Testing: swift-driver#2026.
JavaScriptKit
- BridgeJS: Add Swift -> JS closure support #463;
- BridgeJS: Namespaced elements in Exports #468;
- BridgeJS: Global namespace configuration option #469;
- JavaScriptKit 0.37.0 released with multiple improvements to the interop and SwiftPM plugin functionality, including changes mentioned above;
- BridgeJS: Fixed support for multiple parameters of stack-based types in Exports #472.
WasmKit
- Fixed multiple bugs in remote debugging functionality #222;
- Implemented breakpoint commands and fixed breakpoint API applied to non-trivial call stacks #225.
SwiftNIO
- Improved error handling when calling
.waitfrom Wasm #3421; - NIOFoundationCompat compiles to Wasm #3422.
Thank you for reading, and please feel free to add any comments or suggestions if we missed anything!