Stream: project-ffi-unwind

Topic: Broaden charter?


view this post on Zulip BatmanAoD (Kyle Strand) (Sep 26 2020 at 22:02):

@Amanieu @nikomatsakis

Would it be appropriate to broaden our charter now that we are considering longjmp et al.?

Here's our current mission statement:

To extend the language to support unwinding that crosses FFI boundaries.

I think this should be broadened to:

To extend the language to support control-flow constructs that cross between language boundaries without causing undefined behavior.

view this post on Zulip Amanieu (Sep 26 2020 at 22:50):

I thought longjmp was always part of the charter...

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 26 2020 at 22:54):

It's currently mentioned as "maybe in scope". The current charter has the mission statement above, followed by a bunch of bullet points that are sort of... speculative.

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 26 2020 at 22:54):

https://github.com/rust-lang/project-ffi-unwind/blob/master/charter.md

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:17):

I think that's appropriate

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:17):

I feel like my original understanding of the effort was a bit off; there was less "platform by platform wrangling" than I expected

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:18):

I am debating about the new phrasing, it's somewhat broad, but perhaps reasonable

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:18):

in particular I'm pondering about things like C++-to-rust exception interop, which we initially kind of ruled out of scope

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:18):

I'm somewhat opposed to "major additions" in this direction, at least not without considering as part of an overall prioritization, but targeted efforts (like figuring out the interaction with catch_unwind)

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:18):

may make sense

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:19):

I'd like to get concrete users involved who are requesting them, though

view this post on Zulip nikomatsakis (Sep 28 2020 at 14:19):

longjmp has concrete users

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 15:58):

I think my top priority remains "is it possible to write code without undefined behavior, given unusual legacy APIs?"

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 15:59):

It doesn't have to be easy or "powerful" or full-featured...just not UB.

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 16:00):

So the reason we have "extend the language" in there is that we thought it was pretty much a certainty that we'd be making cross-language unwinding opt-in.

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 16:00):

Similarly, for longjmp, we are leaning towards an explicit opt-in.

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 16:01):

Those are both technically "extending the language" even though they're pretty minimal, and the language-level change isn't really the core concern.

view this post on Zulip BatmanAoD (Kyle Strand) (Sep 28 2020 at 16:04):

I'm not sure how (or if) this intent of minimalism should be expressed in the charter, though.

view this post on Zulip BatmanAoD (Kyle Strand) (Apr 22 2021 at 18:00):

@nikomatsakis reviving an old topic: here's a pull request with this as our new mission statement:

To extend the language to avoid undefined behavior when using control-flow constructs that cross between language boundaries.

https://github.com/rust-lang/project-ffi-unwind/pull/34


Last updated: Jan 26 2022 at 08:34 UTC