diff options
| author | Luke Wagner <mail@lukewagner.name> | 2015-04-30 13:37:31 -0500 |
|---|---|---|
| committer | Luke Wagner <mail@lukewagner.name> | 2015-04-30 13:37:31 -0500 |
| commit | 31bbe91dcde90a488ae1b4e5c28bcd9602751ecc (patch) | |
| tree | c0f05f68ef634f4055974772e12593d76c0d9b03 | |
| parent | 665e0d2008b6c8f4f6eebd05e85117201200de5c (diff) | |
| parent | 319f547467938026dd3ff49d224ecd8198af5f7d (diff) | |
| download | nanowasm-design-31bbe91dcde90a488ae1b4e5c28bcd9602751ecc.tar.gz | |
Merge pull request #9 from WebAssembly/setjmp-note
clarify setjmp/longjmp limitations when implemented using exceptions
| -rw-r--r-- | EssentialPostV1Features.md | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/EssentialPostV1Features.md b/EssentialPostV1Features.md index 455cfa6..90e2885 100644 --- a/EssentialPostV1Features.md +++ b/EssentialPostV1Features.md @@ -23,8 +23,13 @@ in [future versions](FutureFeatures.md). ## Zero-cost Exception Handling * Developer access to stack unwinding and inspection. -* This will be used to implement `setjmp`/`longjmp` (instead of the usual - opposite approach). +* This may be used to implement `setjmp`/`longjmp` (instead of the usual + opposite approach). This can enable all of the defined behavior of + `setjmp`/`longjmp`, namely unwinding the stack, but does not allow + the undefined behavior case of jumping forward to a stack that + was already unwound (which is sometimes used to implement coroutines; + however, explicit coroutine support is being considered separately + anyhow). ## Signature-restricted Proper Tail Calls * This can also be used to support `goto` and irreducible control flow. |
