From 90ff5b8ec0d940137609ccb9ea431e28740cec04 Mon Sep 17 00:00:00 2001 From: follower Date: Sat, 25 Mar 2023 09:15:46 +1300 Subject: [PATCH] Add links to other Rust ABI-related work. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a9ed7f2..86c9109 100644 --- a/README.md +++ b/README.md @@ -84,4 +84,10 @@ However, our experience in software engineering has shown that type-size matters My hope with `stabby` comes in two flavors: - Adoption in the Rust ecosystem: this is my least favorite option, but this would at least let people have a better time with Rust in situations where they need dynamic linkage. -- Triggering a discussion about providing not a stable, but versionned ABI for Rust: `stabby` essentially provides a versionned ABI already through the selected version of the `stabby-abi` crate. However, having a library implement type-layout, which is normally the compiler's job, forces abi-stability to be per-type explicit, instead of applicable to a whole compilation unit. In my opinion, a `abi = "1.xx"` (where `xx` would be a subset of `rustc`'s version that the compiler team is willing to support for a given amount of time) key in the cargo manifest would be a much better way to do this. \ No newline at end of file +- Triggering a discussion about providing not a stable, but versionned ABI for Rust: `stabby` essentially provides a versionned ABI already through the selected version of the `stabby-abi` crate. However, having a library implement type-layout, which is normally the compiler's job, forces abi-stability to be per-type explicit, instead of applicable to a whole compilation unit. In my opinion, a `abi = "1.xx"` (where `xx` would be a subset of `rustc`'s version that the compiler team is willing to support for a given amount of time) key in the cargo manifest would be a much better way to do this. + +# Related work + + * [Rust ABI Wiki](https://slightknack.github.io/rust-abi-wiki/intro/intro.html) + * "[Experimental feature gate proposal `interoperable_abi` #105586](https://github.com/rust-lang/rust/pull/105586)" + * "[RFC: result_ffi_guarantees #3391](https://github.com/rust-lang/rfcs/pull/3391)"