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
{{ message }}
This repository was archived by the owner on Apr 25, 2025. It is now read-only.
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](#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
+18-5Lines changed: 18 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -7,11 +7,13 @@ 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 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
+
10
13
The repository is a clone
11
-
of [WebAssembly/spec](https://github.com/WebAssembly/spec), and is rebased on the spec of its dependent proposal [WebAssembly/reference-types](https://github.com/WebAssembly/reference-types).
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).
12
15
13
-
The remainder of the document is contents of the [README.md](https://github.com/WebAssembly/reference-types/blob/master/README.md)
14
-
document of that repository.
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).
15
17
16
18
# Reference Types Proposal for WebAssembly
17
19
@@ -20,9 +22,20 @@ document of that repository.
20
22
This repository is a clone of [github.com/WebAssembly/spec/](https://github.com/WebAssembly/spec/).
21
23
It is meant for discussion, prototype specification and implementation of a proposal to add support for basic reference types to WebAssembly.
22
24
23
-
* See the [overview](proposals/reference-types/Overview.md) for a summary of the proposal.
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.
0 commit comments