This issue is to collect currently unstable Rust features that we either need or would like to have for CPython, inspired by Rust-for-Linux/linux#2
Required
These unstable features are needed to properly support Rust in CPython. There aren't reasonable workarounds to these.
Nice to have
These unstable features may have workarounds, such as running on nightly in CI, but would be ideally stabilized.
To other org members: please feel free to edit this issue as seen fit.
This issue is to collect currently unstable Rust features that we either need or would like to have for CPython, inspired by Rust-for-Linux/linux#2
Required
These unstable features are needed to properly support Rust in CPython. There aren't reasonable workarounds to these.
-Zbuild-stdhttps://doc.rust-lang.org/cargo/reference/unstable.html#build-stdThis is both for platform support and potentially reducing binary size. It also is a prerequisite for sanitizer support.
Nice to have
These unstable features may have workarounds, such as running on nightly in CI, but would be ideally stabilized.
-Zsanitizer=addresshttps://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html-Zsanitizer=memoryhttps://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html-Zsanitizer=threadhttps://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.htmlfeature(arbitrary_self_types)https://doc.rust-lang.org/unstable-book/language-features/arbitrary-self-types.htmlFor better abstractions over generic Python object APIs and specific types. PyO3 current uses type-specific traits to implement an ergonomic API over these types.
macro_metavar_expr_concathttps://doc.rust-lang.org/stable/unstable-book/language-features/macro-metavar-expr-concat.htmlThis would make defining modules via
PyModExport_<module name>in a declarative macro nicer. We could potentially use a proc macro instead.To other org members: please feel free to edit this issue as seen fit.