Skip to content

Conversation

@cfallin
Copy link
Member

@cfallin cfallin commented Nov 17, 2025

Noticed while reviewing another docs update: we still state that the exceptions proposal is not fuzzed, and has no C API support. Neither is true anymore, AFAIK:

Noticed while reviewing another docs update: we still state that the
exceptions proposal is not fuzzed, and has no C API support. Neither is
true anymore, AFAIK:

- We fuzz exceptions via our usual infrastructure and we had a number of
  fuzzbugs come in when we first merged support.
- We added C API support for enabling exceptions in bytecodealliance#11861.
@cfallin cfallin requested a review from a team as a code owner November 17, 2025 19:49
@cfallin cfallin requested review from alexcrichton and rvolosatovs and removed request for a team and rvolosatovs November 17, 2025 19:49
@cfallin
Copy link
Member Author

cfallin commented Nov 17, 2025

(This'll be a merge conflict with #12036, sorry Alex! And if you disagree that we have enough fuzzing to check the box here I'm happy to remove that part; we don't have a specific target of course but we do fuzz it overall)

@alexcrichton
Copy link
Member

For the C API I believe one missing piece is bindings for exnref values. I don't think that the type is plumbed in the API yet nor the ability to create/manage the references. I think all the pieces are there, however, and it's mostly just a matter of copying the anyref constructors/inspectors/etc for exnref as well.

For fuzzing I could go sort of either way myself. On one hand the preexisting wasm-smith-based fuzzing is good in that it creates interesting shapes of code. In that sense I feel like it fuzzes the compiler side of exceptions relatively well. On the other hand though, like with most other wasm-smith-based-fuzzing, I feel like it's probably leaving quite a lot on the table in terms of runtime-handling fuzzing. For example I suspect everything either immediately throws-and-doesn't-catch or never throws because intersting payloads are never on the stack (or something like that). In that sense I do think there's very real space for a more interesting fuzzer exceptions-wise, primarily focused on the runtime behavior of exceptions as opposed to the compile-time-behavior. I don't have a concrete idea though what such a fuzzer would precisely be fuzzing, and whether we block on that for enabling exceptions, I'm not sure. Perhaps a good meeting topic as well?

At the very least though adding a 🚧 symbol plus a footnote explaining the current situation is definitely ok though.

@cfallin
Copy link
Member Author

cfallin commented Nov 17, 2025

Good points! I had completely forgotten about the host-API-creates-exnrefs side of the C API -- indeed we'll want that. Updated both host API and fuzzing to 🚧 and we can talk about fuzzing more in the next meeting.

@cfallin cfallin enabled auto-merge November 17, 2025 21:32
@cfallin cfallin added this pull request to the merge queue Nov 17, 2025
Merged via the queue into bytecodealliance:main with commit 3f285db Nov 17, 2025
45 checks passed
@cfallin cfallin deleted the exceptions-fuzzed-and-c-api branch November 17, 2025 22:05
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.

2 participants