diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..917660a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.wasm \ No newline at end of file diff --git a/wasip2/cli/wit.lock b/wasip2/cli/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/cli/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/cli/wit.toml b/wasip2/cli/wit.toml new file mode 100644 index 00000000..bbb7b153 --- /dev/null +++ b/wasip2/cli/wit.toml @@ -0,0 +1,11 @@ +version = "0.2.1" + +[dependencies] +"wasi:io" = { path = "../io" } +"wasi:clocks" = { path = "../clocks" } +"wasi:filesystem" = { path = "../filesystem" } +"wasi:sockets" = { path = "../sockets" } +"wasi:random" = { path = "../random" } + +[registries] +default = "https://ghcr.io/webassembly" diff --git a/wasip2/clocks/monotonic-clock.wit b/wasip2/clocks/monotonic-clock.wit index cae2363b..3c24840c 100644 --- a/wasip2/clocks/monotonic-clock.wit +++ b/wasip2/clocks/monotonic-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.0; +package wasi:clocks@0.2.1; /// WASI Monotonic Clock is a clock API intended to let users measure elapsed /// time. /// @@ -10,7 +10,7 @@ package wasi:clocks@0.2.0; @since(version = 0.2.0) interface monotonic-clock { @since(version = 0.2.0) - use wasi:io/poll@0.2.0.{pollable}; + use wasi:io/poll@0.2.1.{pollable}; /// An instant in time, in nanoseconds. An instant is relative to an /// unspecified initial value, and can only be compared to instances from @@ -35,7 +35,7 @@ interface monotonic-clock { resolution: func() -> duration; /// Create a `pollable` which will resolve once the specified instant - /// has occured. + /// has occurred. @since(version = 0.2.0) subscribe-instant: func( when: instant, diff --git a/wasip2/clocks/timezone.wit b/wasip2/clocks/timezone.wit index 3c286889..212da668 100644 --- a/wasip2/clocks/timezone.wit +++ b/wasip2/clocks/timezone.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.0; +package wasi:clocks@0.2.1; @unstable(feature = clocks-timezone) interface timezone { diff --git a/wasip2/clocks/wall-clock.wit b/wasip2/clocks/wall-clock.wit index 4b08d71e..6be069a3 100644 --- a/wasip2/clocks/wall-clock.wit +++ b/wasip2/clocks/wall-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.0; +package wasi:clocks@0.2.1; /// WASI Wall Clock is a clock API intended to let users query the current /// time. The name "wall" makes an analogy to a "clock on the wall", which /// is not necessarily monotonic as it may be reset. diff --git a/wasip2/clocks/wit.lock b/wasip2/clocks/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/clocks/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/clocks/wit.toml b/wasip2/clocks/wit.toml new file mode 100644 index 00000000..c8d21e1f --- /dev/null +++ b/wasip2/clocks/wit.toml @@ -0,0 +1,7 @@ +version = "0.2.1" + +[dependencies] +"ricochet:io" = { path = "../io" } + +[registries] +default = "https://ghcr.io/" diff --git a/wasip2/clocks/world.wit b/wasip2/clocks/world.wit index 76a9206c..9251ac64 100644 --- a/wasip2/clocks/world.wit +++ b/wasip2/clocks/world.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.0; +package wasi:clocks@0.2.1; @since(version = 0.2.0) world imports { diff --git a/wasip2/filesystem/preopens.wit b/wasip2/filesystem/preopens.wit index 08094ab3..ca2f726a 100644 --- a/wasip2/filesystem/preopens.wit +++ b/wasip2/filesystem/preopens.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.2.0; +package wasi:filesystem@0.2.1; @since(version = 0.2.0) interface preopens { diff --git a/wasip2/filesystem/types.wit b/wasip2/filesystem/types.wit index 4900ae2c..db3d9686 100644 --- a/wasip2/filesystem/types.wit +++ b/wasip2/filesystem/types.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.2.0; +package wasi:filesystem@0.2.1; /// WASI filesystem is a filesystem API primarily intended to let users run WASI /// programs that access their files on their existing filesystems, without /// significant overhead. @@ -26,9 +26,9 @@ package wasi:filesystem@0.2.0; @since(version = 0.2.0) interface types { @since(version = 0.2.0) - use wasi:io/streams@0.2.0.{input-stream, output-stream, error}; + use wasi:io/streams@0.2.1.{input-stream, output-stream, error}; @since(version = 0.2.0) - use wasi:clocks/wall-clock@0.2.0.{datetime}; + use wasi:clocks/wall-clock@0.2.1.{datetime}; /// File size or length of a region within a file. @since(version = 0.2.0) @@ -83,7 +83,7 @@ interface types { /// WASI. At this time, it should be interpreted as a request, and not a /// requirement. data-integrity-sync, - /// Requests that reads be performed at the same level of integrety + /// Requests that reads be performed at the same level of integrity /// requested for writes. This is similar to `O_RSYNC` in POSIX. /// /// The precise semantics of this operation have not yet been defined for diff --git a/wasip2/filesystem/wit.lock b/wasip2/filesystem/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/filesystem/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/filesystem/wit.toml b/wasip2/filesystem/wit.toml new file mode 100644 index 00000000..d61dd4e1 --- /dev/null +++ b/wasip2/filesystem/wit.toml @@ -0,0 +1,8 @@ +version = "0.2.1" + +[dependencies] +"wasi:io" = { path = "../io" } +"wasi:clocks" = { path = "../clocks" } + +[registries] +default = "https://ghcr.io/" diff --git a/wasip2/filesystem/world.wit b/wasip2/filesystem/world.wit index c8d99f56..af0146cb 100644 --- a/wasip2/filesystem/world.wit +++ b/wasip2/filesystem/world.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.2.0; +package wasi:filesystem@0.2.1; @since(version = 0.2.0) world imports { diff --git a/wasip2/http/wit.lock b/wasip2/http/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/http/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/http/wit.toml b/wasip2/http/wit.toml new file mode 100644 index 00000000..b55a943e --- /dev/null +++ b/wasip2/http/wit.toml @@ -0,0 +1,14 @@ +version = "0.2.1" + +[dependencies] +"wasi:cli" = { path = "../cli" } +"wasi:random" = { path = "../random" } +"wasi:io" = { path = "../io" } +"wasi:clocks" = { path = "../clocks" } + +# not used by http/proxy, but included to allow full contents of wasi-cli to validate +"wasi:filesystem" = { path = "../filesystem" } +"wasi:sockets" = { path = "../sockets" } + +[registries] +default = "https://ghcr.io/" diff --git a/wasip2/io/error.wit b/wasip2/io/error.wit index 7e66dbba..4ea29c46 100644 --- a/wasip2/io/error.wit +++ b/wasip2/io/error.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.0; +package wasi:io@0.2.1; @since(version = 0.2.0) interface error { diff --git a/wasip2/io/poll.wit b/wasip2/io/poll.wit index cbdc960f..b25ac729 100644 --- a/wasip2/io/poll.wit +++ b/wasip2/io/poll.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.0; +package wasi:io@0.2.1; /// A poll API intended to let users wait for I/O events on multiple handles /// at once. diff --git a/wasip2/io/streams.wit b/wasip2/io/streams.wit index a57f2043..b697e24d 100644 --- a/wasip2/io/streams.wit +++ b/wasip2/io/streams.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.0; +package wasi:io@0.2.1; /// WASI I/O is an I/O abstraction API which is currently focused on providing /// stream types. @@ -112,6 +112,10 @@ interface streams { /// promptly, which could even be zero. To wait for the stream to be ready to /// accept data, the `subscribe` function to obtain a `pollable` which can be /// polled for using `wasi:io/poll`. + /// + /// Dropping an `output-stream` while there's still an active write in + /// progress may result in the data being lost. Before dropping the stream, + /// be sure to fully flush your writes. @since(version = 0.2.0) resource output-stream { /// Check readiness for writing. This function never blocks. @@ -192,7 +196,7 @@ interface streams { blocking-flush: func() -> result<_, stream-error>; /// Create a `pollable` which will resolve once the output-stream - /// is ready for more writing, or an error has occured. When this + /// is ready for more writing, or an error has occurred. When this /// pollable is ready, `check-write` will return `ok(n)` with n>0, or an /// error. /// @@ -247,7 +251,7 @@ interface streams { /// Read from one stream and write to another. /// - /// The behavior of splice is equivelant to: + /// The behavior of splice is equivalent to: /// 1. calling `check-write` on the `output-stream` /// 2. calling `read` on the `input-stream` with the smaller of the /// `check-write` permitted length and the `len` provided to `splice` diff --git a/wasip2/io/wit.lock b/wasip2/io/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/io/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/io/wit.toml b/wasip2/io/wit.toml new file mode 100644 index 00000000..8d16a47b --- /dev/null +++ b/wasip2/io/wit.toml @@ -0,0 +1 @@ +version = "0.2.1" diff --git a/wasip2/io/world.wit b/wasip2/io/world.wit index f5c09879..6405a4e4 100644 --- a/wasip2/io/world.wit +++ b/wasip2/io/world.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.0; +package wasi:io@0.2.1; @since(version = 0.2.0) world imports { diff --git a/wasip2/random/insecure-seed.wit b/wasip2/random/insecure-seed.wit index 4cce6285..7e708dc5 100644 --- a/wasip2/random/insecure-seed.wit +++ b/wasip2/random/insecure-seed.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.0; +package wasi:random@0.2.1; /// The insecure-seed interface for seeding hash-map DoS resistance. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/wasip2/random/insecure.wit b/wasip2/random/insecure.wit index 3cea0c4a..3cdb53df 100644 --- a/wasip2/random/insecure.wit +++ b/wasip2/random/insecure.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.0; +package wasi:random@0.2.1; /// The insecure interface for insecure pseudo-random numbers. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/wasip2/random/random.wit b/wasip2/random/random.wit index 41c3a036..2b5035d1 100644 --- a/wasip2/random/random.wit +++ b/wasip2/random/random.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.0; +package wasi:random@0.2.1; /// WASI Random is a random data API. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/wasip2/random/wit.lock b/wasip2/random/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/random/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/random/wit.toml b/wasip2/random/wit.toml new file mode 100644 index 00000000..8d16a47b --- /dev/null +++ b/wasip2/random/wit.toml @@ -0,0 +1 @@ +version = "0.2.1" diff --git a/wasip2/random/world.wit b/wasip2/random/world.wit index b5560a67..c615e96d 100644 --- a/wasip2/random/world.wit +++ b/wasip2/random/world.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.0; +package wasi:random@0.2.1; @since(version = 0.2.0) world imports { diff --git a/wasip2/sockets/ip-name-lookup.wit b/wasip2/sockets/ip-name-lookup.wit index 0368b480..dc56f300 100644 --- a/wasip2/sockets/ip-name-lookup.wit +++ b/wasip2/sockets/ip-name-lookup.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface ip-name-lookup { @since(version = 0.2.0) - use wasi:io/poll@0.2.0.{pollable}; + use wasi:io/poll@0.2.1.{pollable}; @since(version = 0.2.0) use network.{network, error-code, ip-address}; diff --git a/wasip2/sockets/tcp.wit b/wasip2/sockets/tcp.wit index e4a62101..bae5a29e 100644 --- a/wasip2/sockets/tcp.wit +++ b/wasip2/sockets/tcp.wit @@ -1,11 +1,11 @@ @since(version = 0.2.0) interface tcp { @since(version = 0.2.0) - use wasi:io/streams@0.2.0.{input-stream, output-stream}; + use wasi:io/streams@0.2.1.{input-stream, output-stream}; @since(version = 0.2.0) - use wasi:io/poll@0.2.0.{pollable}; + use wasi:io/poll@0.2.1.{pollable}; @since(version = 0.2.0) - use wasi:clocks/monotonic-clock@0.2.0.{duration}; + use wasi:clocks/monotonic-clock@0.2.1.{duration}; @since(version = 0.2.0) use network.{network, error-code, ip-socket-address, ip-address-family}; diff --git a/wasip2/sockets/udp.wit b/wasip2/sockets/udp.wit index 48e753ca..b289e494 100644 --- a/wasip2/sockets/udp.wit +++ b/wasip2/sockets/udp.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface udp { @since(version = 0.2.0) - use wasi:io/poll@0.2.0.{pollable}; + use wasi:io/poll@0.2.1.{pollable}; @since(version = 0.2.0) use network.{network, error-code, ip-socket-address, ip-address-family}; diff --git a/wasip2/sockets/wit.lock b/wasip2/sockets/wit.lock new file mode 100644 index 00000000..b7329043 --- /dev/null +++ b/wasip2/sockets/wit.lock @@ -0,0 +1,3 @@ +# This file is automatically generated by wit. +# It is not intended for manual editing. +version = 1 diff --git a/wasip2/sockets/wit.toml b/wasip2/sockets/wit.toml new file mode 100644 index 00000000..dff8feb6 --- /dev/null +++ b/wasip2/sockets/wit.toml @@ -0,0 +1,5 @@ +version = "0.2.1" + +[dependencies] +"wasi:clocks" = { path = "../clocks" } +"wasi:io" = { path = "../io" } diff --git a/wasip2/sockets/world.wit b/wasip2/sockets/world.wit index a1f7d14b..a1d42670 100644 --- a/wasip2/sockets/world.wit +++ b/wasip2/sockets/world.wit @@ -1,4 +1,4 @@ -package wasi:sockets@0.2.0; +package wasi:sockets@0.2.1; @since(version = 0.2.0) world imports {