diff --git a/design/mvp/Async.md b/design/mvp/Async.md index 38e9bdd4..716d1a36 100644 --- a/design/mvp/Async.md +++ b/design/mvp/Async.md @@ -23,6 +23,7 @@ summary of the motivation and animated sketch of the design in action. * [Backpressure](#backpressure) * [Returning](#returning) * [Examples](#examples) +* [Bindings Generation](#bindings-generation) * [Interaction with multi-threading](#interaction-with-multi-threading) * [Interaction with the start function](#interaction-with-the-start-function) * [TODO](#todo) @@ -629,6 +630,11 @@ return values from `task.wait` in the previous example. The precise meaning of these values is defined by the Canonical ABI. +## Bindings Generation + +TODO + + ## Interaction with multi-threading For now, the integration between multi-threading (via [`thread.spawn`]) and diff --git a/design/mvp/Binary.md b/design/mvp/Binary.md index 8026c608..3a318266 100644 --- a/design/mvp/Binary.md +++ b/design/mvp/Binary.md @@ -214,7 +214,11 @@ valtype ::= i: => i | pvt: => pvt resourcetype ::= 0x3f 0x7f f?:? => (resource (rep i32) (dtor f)?) | 0x3e 0x7f f: cb?:? => (resource (rep i32) (dtor async f (callback cb)?)) -functype ::= 0x40 ps: rs: => (func ps rs) +functype ::= 0x40 sig: => (func sig) + | 0x3d attrs: sig: => (func attrs sig) +funcattrs ::= 0x00 => + | 0x01 => non-blocking +funcsig ::= ps: rs: => ps rs paramlist ::= lt*:vec() => (param lt)* resultlist ::= 0x00 t: => (result t) | 0x01 0x00 => @@ -492,6 +496,7 @@ named once. * The opcodes (for types, canon built-ins, etc) should be re-sorted * The two `list` type codes should be merged into one with an optional immediate. * The `0x00` prefix byte of `importname'` and `exportname'` will be removed or repurposed. +* Merge the two `functype` opcodes [`core:byte`]: https://webassembly.github.io/spec/core/binary/values.html#binary-byte diff --git a/design/mvp/Explainer.md b/design/mvp/Explainer.md index c7d5c878..cd1d76c0 100644 --- a/design/mvp/Explainer.md +++ b/design/mvp/Explainer.md @@ -560,7 +560,7 @@ defvaltype ::= bool valtype ::= | resourcetype ::= (resource (rep i32) (dtor async? (callback )?)?) -functype ::= (func (param "