-
Notifications
You must be signed in to change notification settings - Fork 48
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
Meeting proposal: rename "object safety" to "dyn compatibility" #286
Comments
We talked about this at today's meeting, and we're generally in favor of making this change. Starting an FCP to confirm. @rfcbot merge |
Team member @joshtriplett has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! cc @rust-lang/lang-advisors: FCP proposed for lang, please feel free to register concerns. |
@rfcbot reviewed I agree that dyn compatible is a better term to describe which traits may be used with |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
cc @ehuss |
I'll open draft PRs for rustc and the std lib shortly. Edit: |
I've created a tracking issue for this here: |
The final comment period, with a disposition to merge, as per the review above, is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. This will be merged soon. |
…mpat, r=compiler-errors Compiler: Rename "object safe" to "dyn compatible" Completed T-lang FCP: rust-lang/lang-team#286 (comment). Tracking issue: rust-lang#130852 Excludes `compiler/rustc_codegen_cranelift` (to be filed separately). Includes Stable MIR. Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
Rollup merge of rust-lang#130826 - fmease:compiler-mv-obj-safe-dyn-compat, r=compiler-errors Compiler: Rename "object safe" to "dyn compatible" Completed T-lang FCP: rust-lang/lang-team#286 (comment). Tracking issue: rust-lang#130852 Excludes `compiler/rustc_codegen_cranelift` (to be filed separately). Includes Stable MIR. Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
…pat, r=ibraheemdev Library: Rename "object safe" to "dyn compatible" Completed T-lang FCP: rust-lang/lang-team#286 (comment). Tracking issue: rust-lang#130852 Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
Rollup merge of rust-lang#130827 - fmease:library-mv-obj-save-dyn-compat, r=ibraheemdev Library: Rename "object safe" to "dyn compatible" Completed T-lang FCP: rust-lang/lang-team#286 (comment). Tracking issue: rust-lang#130852 Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
…pat, r=notriddle rustdoc: Rename "object safe" to "dyn compatible" Supersedes rust-lang#126554: 1. In line with [T-lang's latest resolution](rust-lang/lang-team#286 (comment)). 2. More comprehensive: Not only updates user-facing text but also source code. Part of rust-lang#130852. Doesn't update rustdoc-JSON (will be filed separately). r? `@notriddle` (rust-lang/lang-team#286) `@GuillaumeGomez` (for visibility)
Rollup merge of rust-lang#131594 - fmease:rustdoc-mv-obj-safe-dyn-compat, r=notriddle rustdoc: Rename "object safe" to "dyn compatible" Supersedes rust-lang#126554: 1. In line with [T-lang's latest resolution](rust-lang/lang-team#286 (comment)). 2. More comprehensive: Not only updates user-facing text but also source code. Part of rust-lang#130852. Doesn't update rustdoc-JSON (will be filed separately). r? `@notriddle` (rust-lang/lang-team#286) `@GuillaumeGomez` (for visibility)
…triddle rustdoc: Rename "object safe" to "dyn compatible" Supersedes #126554: 1. In line with [T-lang's latest resolution](rust-lang/lang-team#286 (comment)). 2. More comprehensive: Not only updates user-facing text but also source code. Part of #130852. Doesn't update rustdoc-JSON (will be filed separately). r? `@notriddle` (rust-lang/lang-team#286) `@GuillaumeGomez` (for visibility)
…raheemdev Library: Rename "object safe" to "dyn compatible" Completed T-lang FCP: rust-lang/lang-team#286 (comment). Tracking issue: rust-lang/rust#130852 Regarding https://github.com/rust-lang/rust/labels/relnotes, I guess I will manually open a https://github.com/rust-lang/rust/labels/relnotes-tracking-issue since this change affects everything (compiler, library, tools, docs, books, everyday language). r? ghost
To be honest, the whole "trait object" term is awful.
See, for example, here for an example of confusion: Frankly, I'd be happy to see one day an RFC covering reduction of the amount of self-inflicted and arbitrarily homegrown terminology in Rust, with the case of UFCS term misuse being an obvious example of this from the past. |
Summary
Instead of calling them "object safe," refer to traits that support vtables as being "dyn compatible."
Background reading
https://internals.rust-lang.org/t/object-safety-is-a-terrible-term/21025
About this issue
This issue corresponds to a lang-team design meeting proposal. It corresponds to a possible topic of discussion that may be scheduled for deeper discussion during one of our design meetings.
The text was updated successfully, but these errors were encountered: