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
This PR adds the dependency to multi-value to the exception handling proposal text and to the README.
I wrote an explanation of this dependency on the proposal text, but it's easier to see this once the verification and execution steps of `br_on_exn` and of `try` blocks are written out, as done [here](WebAssembly#87 (comment)) by @rossberg :
Validation:
```
ft = t1* -> t2*
C, label t2* |- e1* : t1* -> t2*
C, label t2* |- e2* : exnref -> t2*
-----------------------------------
C |- try ft e1* catch e2* end : ft
C_label(l) = C_exn(x) = t*
-------------------------------------
C |- br_on_exn l x : exnref -> exnref
```
Execution:
```
v^n (try ft e1* catch e2* end) --> catch_m{e2*} (label_m{} v^n e1* end) end)
(iff ft = t1^n -> t2^m)
S; F; catch_m{e*} T[v^n (throw a)] end --> S; F; label_m{} (exn a v^n) e* end
(iff S_exn(a) = {typ t^n})
F; (exn a v*) (br_on_exn l x) --> F; v* (br l)
(iff F_exn(x) = a)
```
Concerning the functionality of `try`-`catch` blocks, note especially the passing of `v^n` values into a `label_m{}`.
Concerning the functionality of `br_on_exn`, note especially the execution step resulting in a `br` instruction.
[proposal](https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md) for
8
+
adding exception handling to WebAssembly.
9
+
10
+
The exception handling proposal depends on the [reference-types](https://github.com/WebAssembly/reference-types) proposal
11
+
and on the [multi-value](https://github.com/WebAssembly/multi-value) proposal.
12
+
13
+
The repository is a clone
14
+
of [WebAssembly/spec](https://github.com/WebAssembly/spec), first rebased on the spec of its dependency [reference-types](https://github.com/WebAssembly/reference-types), and then merged with the other dependency [multi-value](https://github.com/WebAssembly/multi-value).
15
+
16
+
The remainder of the document has contents of the two README files of the dependencies: [reference-types/README.md](https://github.com/WebAssembly/reference-types/blob/master/README.md) and [multi-value/README.md](https://github.com/WebAssembly/multi-value/blob/master/README.md).
17
+
>>>>>>> Dependencies in proposal (#99)
2
18
3
19
# Reference Types Proposal for WebAssembly
4
20
5
21
This repository is a clone of [github.com/WebAssembly/spec/](https://github.com/WebAssembly/spec/).
6
22
It is meant for discussion, prototype specification and implementation of a proposal to add support for basic reference types to WebAssembly.
7
23
8
-
* See the [overview](proposals/reference-types/Overview.md) for a summary of the proposal.
24
+
* See the [overview](https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md) for a summary of the proposal.
25
+
26
+
* See the [modified spec](https://webassembly.github.io/reference-types/) for details.
This repository is a clone of [github.com/WebAssembly/spec/](https://github.com/WebAssembly/spec/).
33
+
It is meant for discussion, prototype specification and implementation of a proposal to add support for returning multiple values to WebAssembly.
34
+
35
+
* See the [overview](https://github.com/WebAssembly/multi-value/blob/master/proposals/multi-value/Overview.md) for a summary of the proposal.
9
36
10
-
* See the [modified spec](https://webassembly.github.io/reference-types/core/) for details.
37
+
* See the [modified spec](https://webassembly.github.io/multi-value/) for details.
11
38
12
39
The repository is now based on the [bulk operations proposal](proposals/bulk-memory-operations/Overview.md) and includes all respective changes.
0 commit comments