Skip to content

Move exception handling to phase 4 - #389

Closed
yoshuawuyts wants to merge 1 commit into
WebAssembly:mainfrom
yoshuawuyts:exceptions-phase-4
Closed

yoshuawuyts wants to merge 1 commit into
WebAssembly:mainfrom
yoshuawuyts:exceptions-phase-4

Conversation

@yoshuawuyts

Copy link
Copy Markdown
Member

Exception handling has been voted to move to phase 4 (ref). This patch reflects that change in the feature tracker on the website. Thanks!

@dschuff

dschuff commented Jul 17, 2024

Copy link
Copy Markdown
Member

This one I think is actually going to take some more nuance. What the browsers have shipped already is actually not the full current spec, it's what the spec now calls Legacy Exception Handling (specified in a spec appendix). Probably for the purposes of the website I think it would make sense to treat this as 2 separate features (maybe called "legacy exception handling" and "exception references" or something like that. None of the browsers have actually shipped the latter yet, but Chrome and Firefox have implementations behind a flag that we could also document here.

@yoshuawuyts

Copy link
Copy Markdown
Member Author

That makes sense to me. Follow up question though: how should we treat legacy spec features? Would these also be considered tier 4 and therefore "stable" because they're part of this spec? Or should we perhaps put these in a new, separate section clarifying that it's considered "legacy" and should not be relied on?

I'm personally not familiar with the contents of the spec, nor did I attend the meeting in which the vote was held, so I don't really know how Legacy Exception Handling has been discussed.

@dschuff

dschuff commented Jul 17, 2024

Copy link
Copy Markdown
Member

regarding legacy features, EH is really an, um, exceptional case here. There aren't (and hopefully won't be in the future) other cases where a feature was shipped and then retrofitted this way before phase 4.

We didn't discuss the legacy status in this meeting (it really was just an acknowledgement that we'd completed all the steps, and making the formal vote); the background, changing the proposal and handling the legacy spec was discussed previously on github and in the October meeting last year.
We do want to encourage users to use the new spec if possible, and eventually will have toolchains default to using exnref; even though on the web, the legacy instructions will only actually be removed if usage gets sufficiently low, and that may never happen. I'm not sure having a separate section in this table is the right way to do that or not. For now, at least until exnref ships in some browsers, it probably makes sense to keep them together.

@rossberg

rossberg commented Jul 18, 2024

Copy link
Copy Markdown
Member

Legacy EH should definitely not be considered phase 4, since it never reached that state. And there is no obligation for engines to implement it — in fact, they are encouraged to not implement it.

Not sure how to represent that in the table. But if we include it at all, then I concur with @dschuff that it should be separate from the new proposal, and it should somehow clearly be marked as legacy (i.e., to be deprecated).

Perhaps it would be adequate to move legacy features to the very bottom of the table, since they are to be considered on their way out, not in?

@dschuff

dschuff commented Sep 25, 2024

Copy link
Copy Markdown
Member

This is now done in #390. Thanks for raising this!

@dschuff dschuff closed this Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants