Diggory
(Diggory)
1
Hello, I am looking to learn more about the concurrency pitches/proposals by using the experimental toolchain
- Implementation: Available in recent
main snapshots behind the flag -Xfrontend -enable-experimental-concurrency
I have the toolchain installed and Xcode is aware of it.
I created a simple Swift Package with some simple async code just to play about. Xcode, correctly warned that the features aren't available unless the -Xfrontend flag is passed.
If the Package.swift manifest is altered to include that flag in the SwiftSettings, then Xcode is satisfied and code checking appears to work.
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "ConcurrencyExperiment",
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "ConcurrencyExperiment",
dependencies: [],
swiftSettings: [
.unsafeFlags(["-Xfrontend -enable-experimental-concurrency"])
]
),
.testTarget(
name: "ConcurrencyExperimentTests",
dependencies: ["ConcurrencyExperiment"]),
]
)
However, neither Xcode, nor SPM from the command line appear to be able to build from the package, giving the error:
Xcode:
<unknown>:0: error: unknown argument: '-Xfrontend -enable-experimental-concurrency'%
SwiftPM:
/Library/Developer/Toolchains/swift-PR-35059-806.xctoolchain/usr/bin/swift build <unknown>:0: error: unknown argument: '-Xfrontend -enable-experimental-concurrency'%
Am I using SPM wrongly here, am I making an obvious error, or should I expect this to work?
Thanks.
2 Likes
MarSe32m
(Sebastian Toivonen)
2
Try separating "-Xfrontend" from "-enable-experimental-concurrency" like this
.unsafeFlags(["-Xfrontend", "-enable-experimental-concurrency"])
This works for me atleast with the latest snapshot from swift.org
6 Likes
Diggory
(Diggory)
3
Fabulous, thanks very much!
1 Like