Proposal to remove unwind
#153
Description
unwind
is similar to catch_all
and in the semantics we've settled on it is also strictly less expressive than catch_all
. unwind
can be defined in terms of catch_all
and rethrow
, so any program that uses unwind
could equivalently use catch_all
and rethrow
instead.
unwind
was originally meant to be a forward-compatibility feature bridging the gap between the current EH proposal and some future proposal for additional non-local control flow. My personal concern about this is that we have not discussed making an exception to WebAssembly's usual backwards compatibility guarantees for unwind
, and it is not possible to both maintain backwards compatibility and allow for a graceful transition to different (currently unspecified) semantics.
Since unwind
does not increase the expressiveness of the proposal and does not seem useful for other reasons such as forward compatibility, I propose that we simplify the proposal by removing it.
Does that sound reasonable, @aheejin, @RossTate, @rossberg, and @ioannad?