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.
Copy file name to clipboardExpand all lines: README.md
+31-6
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,39 @@ holds a
7
7
[proposal](https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md) for
8
8
adding exception handling to WebAssembly.
9
9
10
-
The repository is a copy
11
-
of [WebAssembly/spec](https://github.com/WebAssembly/spec).
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
12
13
-
The remainder of the document is contents of the
14
-
original [README.md](https://github.com/WebAssembly/spec/blob/master/README.md)
15
-
document of that repository.
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).
16
15
17
-
## spec
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).
This repository is a clone of [github.com/WebAssembly/spec/](https://github.com/WebAssembly/spec/).
23
+
It is meant for discussion, prototype specification and implementation of a proposal to add support for basic reference types to WebAssembly.
24
+
25
+
* See the [overview](https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md) for a summary of the proposal.
26
+
27
+
* 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/).
34
+
It is meant for discussion, prototype specification and implementation of a proposal to add support for returning multiple values to WebAssembly.
35
+
36
+
* See the [overview](https://github.com/WebAssembly/multi-value/blob/master/proposals/multi-value/Overview.md) for a summary of the proposal.
37
+
38
+
* See the [modified spec](https://webassembly.github.io/multi-value/) for details.
39
+
40
+
Original `README` from upstream repository follows...
41
+
42
+
# spec
18
43
19
44
This repository holds a prototypical reference implementation for WebAssembly,
20
45
which is currently serving as the official specification. Eventually, we expect
0 commit comments