Dev News Daily ENDE

Swift 6.4 makes Swift Build the default and ships Subprocess 1.0

Swift 6.4 was released on 15 September, and it has drawn fresh attention this weekend as write-ups appeared. The Swift.org announcement lists the headline changes in tooling, concurrency and interoperability.

On tooling, Swift Package Manager now uses Swift Build as its default build system, so projects build the same way on Linux, macOS and Windows. SwiftPM can also generate a software bill of materials in SPDX or CycloneDX format (SE-0509). Debugging improves after a multi-release change to how the compiler records modules in debug information, and debug builds shrink because binary modules are no longer embedded. The Subprocess library, first released as 0.1 in 2025, reaches 1.0 as a stable, cross-platform way to launch and talk to other programs, built on Swift concurrency.

In the language, some P? and any P? no longer need parentheses (SE-0521). A new @diagnose attribute controls warnings in source, including promoting them to errors (SE-0522). Module selectors with :: disambiguate identically named APIs from different modules (SE-0491). defer blocks can now await asynchronous calls (SE-0493), and withTaskCancellationShield lets cleanup run to completion even if the surrounding task has been cancelled (SE-0504). Swift Testing and XCTest can now be mixed more safely during migration.

For performance, new array types hold non-copyable elements without copy-on-write overhead, and an Iterable protocol iterates without copying. Interoperability extends in several directions: Swift's Span bridges directly with C++20's std::span, Swift/Java interop gains async and callback support, and WebAssembly bridging through JavaScriptKit is up to 40 times faster, with the Wasm SDK available from Swift.org. Embedded Swift gains existential types and richer error handling.

Swift 6.4 makes Swift Build the default and ships Subprocess 1.0
Swift 6.4 makes Swift Build the default and ships Subprocess 1.0 — Dev News Daily

What it means

Two items stand out for teams outside Apple platforms. A single default build system across Linux, macOS and Windows removes a long-standing source of "works on my Mac" differences, and SBOM generation built into the package manager answers a compliance question that increasingly comes with any production dependency.

The concurrency additions are small but practical: awaiting in defer and shielding cleanup from cancellation close gaps that previously required workarounds with detached tasks. None of it forces rewrites; it removes friction for projects already adopting strict concurrency.

Written by Victoria Shinder.