Skip to content

Commit 558ea39

Browse files
authored
Update wasi interfaces to 0.2.6 (#14)
- pin rust to 1.91 Signed-off-by: Scott Andrews <scott@andrews.me>
1 parent 4ffcee4 commit 558ea39

12 files changed

Lines changed: 99 additions & 72 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,12 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v6
1616
- uses: actions-rust-lang/setup-rust-toolchain@v1
17-
with:
18-
toolchain: 1.84.1
19-
components: rustfmt
20-
target: wasm32-unknown-unknown,wasm32-wasip2
2117
- name: Install cargo binstall
2218
uses: cargo-bins/cargo-binstall@main
23-
- name: Install cargo component
24-
run: cargo binstall --force cargo-component
2519
- name: Install wkg
2620
run: cargo binstall --force wkg
21+
- name: Install cargo-component
22+
run: cargo binstall --force cargo-component
2723
- name: Install wasm-tools
2824
run: cargo binstall --force wasm-tools
2925
- name: Fetch wit
@@ -61,10 +57,6 @@ jobs:
6157
steps:
6258
- uses: actions/checkout@v6
6359
- uses: actions-rust-lang/setup-rust-toolchain@v1
64-
with:
65-
toolchain: 1.84.1
66-
components: rustfmt
67-
target: wasm32-unknown-unknown
6860
- name: Install cargo binstall
6961
uses: cargo-bins/cargo-binstall@main
7062
- name: Install wkg

Makefile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ components: $(foreach component,$(COMPONENTS),lib/$(component).wasm $(foreach co
2020
define BUILD_COMPONENT
2121

2222
lib/$1.wasm: Cargo.toml Cargo.lock wit/deps $(shell find components/$1 -type f)
23-
@$(eval TARGET := $(if $(findstring $1,keyvalue-to-filesystem),wasm32-wasip2,wasm32-unknown-unknown))
24-
cargo component build -p $1 --target $(TARGET) --release
25-
cp target/$(TARGET)/release/$(subst -,_,$1).wasm lib/$1.wasm
23+
cargo component build -p $1 --target wasm32-unknown-unknown --release
24+
cp target/wasm32-unknown-unknown/release/$(subst -,_,$1).wasm lib/$1.wasm
2625
cp components/$1/README.md lib/$1.wasm.md
2726

2827
lib/$1.debug.wasm: Cargo.toml Cargo.lock wit/deps $(shell find components/$1 -type f)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ A collection of utility components that remix wasi:cli types and interfaces.
2020
## Build
2121

2222
Prereqs:
23-
- a rust toolchain with a recent nightly (`rustup toolchain install nightly`)
23+
- a rust toolchain
2424
- [`cargo component`](https://github.com/bytecodealliance/cargo-component)
2525
- [`wkg`](https://github.com/bytecodealliance/wasm-pkg-tools)
2626

rust-toolchain.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[toolchain]
2+
channel = "1.91"
3+
targets = [ "wasm32-unknown-unknown", "wasm32-wasip2" ]
Lines changed: 53 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wasi:cli@0.2.3;
1+
package wasi:cli@0.2.6;
22

33
@since(version = 0.2.0)
44
interface environment {
@@ -28,6 +28,17 @@ interface exit {
2828
/// Exit the current instance and any linked instances.
2929
@since(version = 0.2.0)
3030
exit: func(status: result);
31+
32+
/// Exit the current instance and any linked instances, reporting the
33+
/// specified status code to the host.
34+
///
35+
/// The meaning of the code depends on the context, with 0 usually meaning
36+
/// "success", and other values indicating various types of failure.
37+
///
38+
/// This function does not return; the effect is analogous to a trap, but
39+
/// without the connotation that something bad has happened.
40+
@unstable(feature = cli-exit-with-code)
41+
exit-with-code: func(status-code: u8);
3142
}
3243

3344
@since(version = 0.2.0)
@@ -40,7 +51,7 @@ interface run {
4051
@since(version = 0.2.0)
4152
interface stdin {
4253
@since(version = 0.2.0)
43-
use wasi:io/streams@0.2.3.{input-stream};
54+
use wasi:io/streams@0.2.6.{input-stream};
4455

4556
@since(version = 0.2.0)
4657
get-stdin: func() -> input-stream;
@@ -49,7 +60,7 @@ interface stdin {
4960
@since(version = 0.2.0)
5061
interface stdout {
5162
@since(version = 0.2.0)
52-
use wasi:io/streams@0.2.3.{output-stream};
63+
use wasi:io/streams@0.2.6.{output-stream};
5364

5465
@since(version = 0.2.0)
5566
get-stdout: func() -> output-stream;
@@ -58,7 +69,7 @@ interface stdout {
5869
@since(version = 0.2.0)
5970
interface stderr {
6071
@since(version = 0.2.0)
61-
use wasi:io/streams@0.2.3.{output-stream};
72+
use wasi:io/streams@0.2.6.{output-stream};
6273

6374
@since(version = 0.2.0)
6475
get-stderr: func() -> output-stream;
@@ -134,11 +145,11 @@ world imports {
134145
@since(version = 0.2.0)
135146
import exit;
136147
@since(version = 0.2.0)
137-
import wasi:io/error@0.2.3;
148+
import wasi:io/error@0.2.6;
138149
@since(version = 0.2.0)
139-
import wasi:io/poll@0.2.3;
150+
import wasi:io/poll@0.2.6;
140151
@since(version = 0.2.0)
141-
import wasi:io/streams@0.2.3;
152+
import wasi:io/streams@0.2.6;
142153
@since(version = 0.2.0)
143154
import stdin;
144155
@since(version = 0.2.0)
@@ -156,33 +167,35 @@ world imports {
156167
@since(version = 0.2.0)
157168
import terminal-stderr;
158169
@since(version = 0.2.0)
159-
import wasi:clocks/monotonic-clock@0.2.3;
170+
import wasi:clocks/monotonic-clock@0.2.6;
160171
@since(version = 0.2.0)
161-
import wasi:clocks/wall-clock@0.2.3;
172+
import wasi:clocks/wall-clock@0.2.6;
173+
@unstable(feature = clocks-timezone)
174+
import wasi:clocks/timezone@0.2.6;
162175
@since(version = 0.2.0)
163-
import wasi:filesystem/types@0.2.3;
176+
import wasi:filesystem/types@0.2.6;
164177
@since(version = 0.2.0)
165-
import wasi:filesystem/preopens@0.2.3;
178+
import wasi:filesystem/preopens@0.2.6;
166179
@since(version = 0.2.0)
167-
import wasi:sockets/network@0.2.3;
180+
import wasi:sockets/network@0.2.6;
168181
@since(version = 0.2.0)
169-
import wasi:sockets/instance-network@0.2.3;
182+
import wasi:sockets/instance-network@0.2.6;
170183
@since(version = 0.2.0)
171-
import wasi:sockets/udp@0.2.3;
184+
import wasi:sockets/udp@0.2.6;
172185
@since(version = 0.2.0)
173-
import wasi:sockets/udp-create-socket@0.2.3;
186+
import wasi:sockets/udp-create-socket@0.2.6;
174187
@since(version = 0.2.0)
175-
import wasi:sockets/tcp@0.2.3;
188+
import wasi:sockets/tcp@0.2.6;
176189
@since(version = 0.2.0)
177-
import wasi:sockets/tcp-create-socket@0.2.3;
190+
import wasi:sockets/tcp-create-socket@0.2.6;
178191
@since(version = 0.2.0)
179-
import wasi:sockets/ip-name-lookup@0.2.3;
192+
import wasi:sockets/ip-name-lookup@0.2.6;
180193
@since(version = 0.2.0)
181-
import wasi:random/random@0.2.3;
194+
import wasi:random/random@0.2.6;
182195
@since(version = 0.2.0)
183-
import wasi:random/insecure@0.2.3;
196+
import wasi:random/insecure@0.2.6;
184197
@since(version = 0.2.0)
185-
import wasi:random/insecure-seed@0.2.3;
198+
import wasi:random/insecure-seed@0.2.6;
186199
}
187200
@since(version = 0.2.0)
188201
world command {
@@ -191,11 +204,11 @@ world command {
191204
@since(version = 0.2.0)
192205
import exit;
193206
@since(version = 0.2.0)
194-
import wasi:io/error@0.2.3;
207+
import wasi:io/error@0.2.6;
195208
@since(version = 0.2.0)
196-
import wasi:io/poll@0.2.3;
209+
import wasi:io/poll@0.2.6;
197210
@since(version = 0.2.0)
198-
import wasi:io/streams@0.2.3;
211+
import wasi:io/streams@0.2.6;
199212
@since(version = 0.2.0)
200213
import stdin;
201214
@since(version = 0.2.0)
@@ -213,33 +226,35 @@ world command {
213226
@since(version = 0.2.0)
214227
import terminal-stderr;
215228
@since(version = 0.2.0)
216-
import wasi:clocks/monotonic-clock@0.2.3;
229+
import wasi:clocks/monotonic-clock@0.2.6;
217230
@since(version = 0.2.0)
218-
import wasi:clocks/wall-clock@0.2.3;
231+
import wasi:clocks/wall-clock@0.2.6;
232+
@unstable(feature = clocks-timezone)
233+
import wasi:clocks/timezone@0.2.6;
219234
@since(version = 0.2.0)
220-
import wasi:filesystem/types@0.2.3;
235+
import wasi:filesystem/types@0.2.6;
221236
@since(version = 0.2.0)
222-
import wasi:filesystem/preopens@0.2.3;
237+
import wasi:filesystem/preopens@0.2.6;
223238
@since(version = 0.2.0)
224-
import wasi:sockets/network@0.2.3;
239+
import wasi:sockets/network@0.2.6;
225240
@since(version = 0.2.0)
226-
import wasi:sockets/instance-network@0.2.3;
241+
import wasi:sockets/instance-network@0.2.6;
227242
@since(version = 0.2.0)
228-
import wasi:sockets/udp@0.2.3;
243+
import wasi:sockets/udp@0.2.6;
229244
@since(version = 0.2.0)
230-
import wasi:sockets/udp-create-socket@0.2.3;
245+
import wasi:sockets/udp-create-socket@0.2.6;
231246
@since(version = 0.2.0)
232-
import wasi:sockets/tcp@0.2.3;
247+
import wasi:sockets/tcp@0.2.6;
233248
@since(version = 0.2.0)
234-
import wasi:sockets/tcp-create-socket@0.2.3;
249+
import wasi:sockets/tcp-create-socket@0.2.6;
235250
@since(version = 0.2.0)
236-
import wasi:sockets/ip-name-lookup@0.2.3;
251+
import wasi:sockets/ip-name-lookup@0.2.6;
237252
@since(version = 0.2.0)
238-
import wasi:random/random@0.2.3;
253+
import wasi:random/random@0.2.6;
239254
@since(version = 0.2.0)
240-
import wasi:random/insecure@0.2.3;
255+
import wasi:random/insecure@0.2.6;
241256
@since(version = 0.2.0)
242-
import wasi:random/insecure-seed@0.2.3;
257+
import wasi:random/insecure-seed@0.2.6;
243258

244259
@since(version = 0.2.0)
245260
export run;
Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package wasi:clocks@0.2.3;
1+
package wasi:clocks@0.2.6;
22

33
interface monotonic-clock {
4-
use wasi:io/poll@0.2.3.{pollable};
4+
use wasi:io/poll@0.2.6.{pollable};
55

66
type instant = u64;
77

@@ -27,3 +27,17 @@ interface wall-clock {
2727
resolution: func() -> datetime;
2828
}
2929

30+
interface timezone {
31+
use wall-clock.{datetime};
32+
33+
record timezone-display {
34+
utc-offset: s32,
35+
name: string,
36+
in-daylight-saving-time: bool,
37+
}
38+
39+
display: func(when: datetime) -> timezone-display;
40+
41+
utc-offset: func(when: datetime) -> s32;
42+
}
43+

wit/deps/wasi-filesystem-0.2.3/package.wit renamed to wit/deps/wasi-filesystem-0.2.6/package.wit

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package wasi:filesystem@0.2.3;
1+
package wasi:filesystem@0.2.6;
22

33
interface types {
4-
use wasi:io/streams@0.2.3.{input-stream, output-stream, error};
5-
use wasi:clocks/wall-clock@0.2.3.{datetime};
4+
use wasi:io/streams@0.2.6.{input-stream, output-stream, error};
5+
use wasi:clocks/wall-clock@0.2.6.{datetime};
66

77
type filesize = u64;
88

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wasi:io@0.2.3;
1+
package wasi:io@0.2.6;
22

33
interface error {
44
resource error {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wasi:random@0.2.3;
1+
package wasi:random@0.2.6;
22

33
interface random {
44
get-random-bytes: func(len: u64) -> list<u8>;
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
package wasi:sockets@0.2.3;
1+
package wasi:sockets@0.2.6;
22

33
interface network {
4+
use wasi:io/error@0.2.6.{error};
5+
46
resource network;
57

68
enum error-code {
@@ -57,6 +59,8 @@ interface network {
5759
ipv4(ipv4-socket-address),
5860
ipv6(ipv6-socket-address),
5961
}
62+
63+
network-error-code: func(err: borrow<error>) -> option<error-code>;
6064
}
6165

6266
interface instance-network {
@@ -66,7 +70,7 @@ interface instance-network {
6670
}
6771

6872
interface udp {
69-
use wasi:io/poll@0.2.3.{pollable};
73+
use wasi:io/poll@0.2.6.{pollable};
7074
use network.{network, error-code, ip-socket-address, ip-address-family};
7175

7276
record incoming-datagram {
@@ -115,9 +119,9 @@ interface udp-create-socket {
115119
}
116120

117121
interface tcp {
118-
use wasi:io/streams@0.2.3.{input-stream, output-stream};
119-
use wasi:io/poll@0.2.3.{pollable};
120-
use wasi:clocks/monotonic-clock@0.2.3.{duration};
122+
use wasi:io/streams@0.2.6.{input-stream, output-stream};
123+
use wasi:io/poll@0.2.6.{pollable};
124+
use wasi:clocks/monotonic-clock@0.2.6.{duration};
121125
use network.{network, error-code, ip-socket-address, ip-address-family};
122126

123127
enum shutdown-type {
@@ -166,7 +170,7 @@ interface tcp-create-socket {
166170
}
167171

168172
interface ip-name-lookup {
169-
use wasi:io/poll@0.2.3.{pollable};
173+
use wasi:io/poll@0.2.6.{pollable};
170174
use network.{network, error-code, ip-address};
171175

172176
resource resolve-address-stream {

0 commit comments

Comments
 (0)