Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tracking issue for ffi-unwind #36

Open
nikomatsakis opened this issue Feb 1, 2022 · 1 comment
Open

tracking issue for ffi-unwind #36

nikomatsakis opened this issue Feb 1, 2022 · 1 comment

Comments

@nikomatsakis
Copy link
Contributor

Summary

Working out the rules for cross-language unwinding as well as longjmp.

Status

This section lists the efforts that we are working towards.

"C-unwind" ABI

The "C-unwind" ABI allows you to invoke foreign functions that may unwind using the native ABI.

Interaction with catch_unwind

We need to define what happens when foreign exceptions interact with catch_unwind.

longjmp compatibility

We need to define the conditions in which it is legal to longjmp through Rust frames. We've done some initial conversation about this.

Links

@BatmanAoD
Copy link
Member

"C-unwind" is fully stabilized.

catch_unwind is now safe to use with "foreign" exceptions, although the implementation currently just aborts. We would like to permit disposing, and/or catching & rethrowing.

The converse, C++ or other runtimes catching Rust panic objects and either disposing or rethrowing, is not yet defined. We currently always abort.

No progress yet on longjmp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Feature Complete
Development

No branches or pull requests

2 participants