You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/articles/wasm-getting-started.md
+27-13Lines changed: 27 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,24 +13,29 @@ WebAssembly support in Swift started out as a community project. Any instruction
13
13
standardized ABI and system interfaces, and from its inception Wasm support in Swift targeted [WebAssembly System
14
14
Interface](https://wasi.dev/), which made porting Swift core libraries to this platform much easier.
15
15
16
-
With Swift 6.2 and development snapshots you can easily cross-compile and run Wasm modules with Swift SDKs for WASI distributed on [swift.org](https://swift.org/download).
16
+
Starting with Swift 6.2 and development snapshots you can easily cross-compile and run Wasm modules with Swift SDKs for Wasm distributed on [swift.org](https://swift.org/download).
17
17
The distributed artifact bundles also include support for the experimental Embedded Swift mode.
18
18
19
19
## Installation
20
20
21
-
1.[Install `swiftly` per the instructions](https://www.swift.org/install/) for the platform that you're bulding on.
3. Select the installed toolchain with `swiftly use 6.2-snapshot`.
30
+
1.[Install `swiftly` per the instructions](https://www.swift.org/install/) for the platform that you're bulding on.
26
31
27
-
4. Navigate to [the downloads page](https://www.swift.org/download/) and find the “Swift SDK for WASI” section. Find a URL of a version that exactly matches the version from step 2.
28
-
If the corresponding snapshot version is not available for the Swift SDK, you’ll have to install the matching toolchain first.
32
+
2. Install Swift {{ release_name }} with `swiftly install {{ release_name }}`, note the exact snapshot date component in the output of this command.
29
33
30
-
5. Press "Copy install command" link for the selected Swift SDK to get the installation command, then run it in your terminal application. The command would look like this:
34
+
3. Select the installed toolchain with `swiftly use {{ release_name }}`.
31
35
36
+
4. Run a command in your terminal application to install Swift SDKs for Wasm.
32
37
```
33
-
swift sdk install <swift_sdk_url> --checksum <checksum_value>
38
+
{{ command }}
34
39
```
35
40
36
41
6. Run `swift sdk list` to verify the Swift SDK was installed and note its ID in the output. Two Swift SDKs will be installed,
@@ -41,7 +46,7 @@ one with support for all Swift features, and the other with a subset of features
41
46
| `swift-<version>_wasm` | Supports all Swift features |
42
47
| `swift-<version>_wasm-embedded` | Supports a subset of features allowed in the experimental [Embedded Swift mode](#embedded-swift-support) |
43
48
44
-
7. In the future, after installing or selecting a new version of the toolchain with `swiftly` make sure to follow steps 3-6 to install a Swift SDK exactly matching the toolchain version.
49
+
7. In the future, after installing or selecting a new version of the toolchain with `swiftly` make sure to install and use an exactly matching Swift SDK version.
45
50
46
51
## Building and Running
47
52
@@ -72,15 +77,15 @@ struct wasi_test {
72
77
Build your package with the following command, substituting the ID from step 5 of [the "Installation" section](#installation) above.
73
78
74
79
```
75
-
swift build --swift-sdk <swift_sdk_id>
80
+
swift build --swift-sdk {{ tag }}_wasm
76
81
```
77
82
78
-
Recent toolchain snapshots that are compatible with Swift SDKs for WASI also include
83
+
Recent toolchain snapshots that are compatible with Swift SDKs for Wasm also include
79
84
[WasmKit](https://github.com/swiftwasm/wasmkit/), which is a Wasm runtime that `swift run` can delegate to for
80
85
execution. To run the freshly built module, use `swift run` with the same `--swift-sdk` option:
81
86
82
87
```
83
-
swift run --swift-sdk <swift_sdk_id>
88
+
swift run --swift-sdk {{ tag }}_wasm
84
89
```
85
90
86
91
You should see the following output:
@@ -99,5 +104,14 @@ Hello from WASI!
99
104
allowing the toolchain to produce Wasm binaries that are multiple orders of magnitude smaller. One of the Swift SDKs in the artifact bundle you've installed
100
105
with the `swift sdk install` command is tailored specifically for Embedded Swift.
101
106
102
-
To build with Embedded Swift SDK, pass its ID as noted in `swift sdk list` output (which has an `-embedded` suffix) in the `--swift-sdk` option.
107
+
To build with Embedded Swift SDK, pass its ID as noted in `swift sdk list` output (which has an `-embedded` suffix) in the `--swift-sdk` option. For example:
0 commit comments