Home Explore Blog CI



rustc

2nd chunk of `src/stabilization_guide.md`
a2e573d8649fb00425922b35b9cb9875b3408009c6ea5e440000000100000879
[rust-lang/rust#44494][report1] and [rust-lang/rust#28237][report2] (these links
will bring you directly to the comment containing the stabilization report).


## FCP

If any member of the team responsible for tracking this
feature agrees with stabilizing this feature, they will
start the FCP (final-comment-period) process by commenting

```text
@rfcbot fcp merge
```

The rest of the team members will review the proposal. If the final
decision is to stabilize, we proceed to do the actual code modification.

## Stabilization PR

*This is for stabilizing language features.  If you are stabilizing a library
feature, see [the stabilization chapter of the std dev guide][std-guide-stabilization] instead.*

Once we have decided to stabilize a feature, we need to have
a PR that actually makes that stabilization happen. These kinds
of PRs are a great way to get involved in Rust, as they take
you on a little tour through the source code.

Here is a general guide to how to stabilize a feature --
every feature is different, of course, so some features may
require steps beyond what this guide talks about.

Note: Before we stabilize any feature, it's the rule that it
should appear in the documentation.

### Updating the feature-gate listing

There is a central listing of unstable feature-gates in
[`compiler/rustc_feature/src/unstable.rs`]. Search for the `declare_features!`
macro. There should be an entry for the feature you are aiming
to stabilize, something like (this example is taken from
[rust-lang/rust#32409]:

```rust,ignore
// pub(restricted) visibilities (RFC 1422)
(unstable, pub_restricted, "CURRENT_RUSTC_VERSION", Some(32409)),
```

The above line should be moved to [`compiler/rustc_feature/src/accepted.rs`].
Entries in the `declare_features!` call are sorted, so find the correct place.
When it is done, it should look like:

```rust,ignore
// pub(restricted) visibilities (RFC 1422)
(accepted, pub_restricted, "CURRENT_RUSTC_VERSION", Some(32409)),
// note that we changed this
```

(Even though you will encounter version numbers in the file of past changes,
you should not put the rustc version you expect your stabilization to happen in,

Title: Final Comment Period and Stabilization PR
Summary
After a stabilization report is written, a team member initiates the FCP (Final Comment Period) by using the `@rfcbot fcp merge` command. If the team agrees, a stabilization PR is created to modify the code. Stabilizing a feature involves updating the feature-gate listing by moving the feature's entry from `compiler/rustc_feature/src/unstable.rs` to `compiler/rustc_feature/src/accepted.rs` within the `declare_features!` macro, ensuring the entries are correctly sorted.