Stabilizing decade-old Features
error[E0658]: <the thing you need> is unstable
Folkert de Vries, RustWeek 2026
stuff I've worked on



and progress on f16, f128, explicit_tail_calls, fn_align, static_align, ...
the thing you need...


nightly features are good, actually
normal users can play around with nightly features
$ rustup toolchain install nightly
#[feature(guaranteed_tail_calls)]
stable when?

surely it's stable now



stabilization often takes years
dozens of PRs merged every day

what about me though?
I use rust in places where C is the default
When Rust can't do something C has been able to do for 40 years, that's a liability
so, now what?
Solution 1: wait
Just wait
Solution 2: the nerdsnipe
an experienced contributor
can implement technical changes
knows the relevant people
knows the process
Solution 3: the contract
pay someone to move your feature forward
Solution 4: spite-driven development
get so frustrated you do it yourself
how to become a rust contributor
git clone
draw the rest of the owl crab
make a small change (e.g. fix a typo)
./x build
on a Saturday afternoon
how to become a rust contributor
I want to work on something
interesting
useful
achievable
lurk!

be in the spaces where the work happens
lurk!


be in the spaces where the work happens
lurk!
be in the spaces where the work happens

the feature lifecycle
an idea with promise
team buy-in
implementation
stabilization
user has problem
the feature lifecycle


the feature lifecycle: idea
the feature lifecycle: team buy-in

the feature lifecycle: implementation

the feature lifecycle: now we wait
...
the feature lifecycle: let's stabilize

the feature lifecycle: vote & FCP

the feature lifecycle: success

why features are abandoned
roughly a year to stabilize 4 lines


why features are abandoned
at every stage, whether progress was made relied on me driving the feature forward
stabilizing a decade-old feature
the lay of the land
read the tracking issue

locate the implementation (with grep)

the lay of the land
write it down

summarize the current state
https://cetra3.github.io/blog/state-of-allocators-2026/
form a crew
It's hard to stay motivated by yourself
experience and time
experience
available time
most senior contributors
you (hopefully)
first steps
easy things to improve
Test Coverage
test c_variadic on exotic targets
Error Messages
error when
#[naked] is used with certain attributes
side quests
features spawn side quests, e.g.
-
naked_functions_target_rustic_abi -
c_variadic_naked_functions -
const_c_variadic -
c_variadic_int128
splitting features can simplify stabilization
plan ahead

summary
stabilizing features takes more than being a good programmer
summary
It takes reseach



summary
It takes technical writing



summary
It takes consensus building

summary
the end
let's stabilize some features!
summary
it's hard, but also it's the coolest thing
summary

summary

(I use many of these quite frequently)
summary
(figure n: spite-driven development)

play with the feature (e.g. on godbolt.org)

the lay of the land
experience and time
problem: this feature is incredibly target-specific; you get to implement it not once, but like 13 times
experience and time
solution: go look at clang. Someone less experienced would have bounced off here I think?
experience and time
design issues and the zulip
I just wrote up my suggestion; it was wrong, but sometimes any energy put into the system is positive
shoutout to beetrees and ralf jung
experience and time
also the "network" helps enormously here. who you're able to DM, ask for advice or vibes, really matters
another reason that if you're an outsider it's just not actually that feasible to stabilize a feature. you have to be in for the long haul
experience and time
identifying and clearing blockers
no-one will do this work if not for you
experience and time
admin: update the reference, write a stabilization report
stabilizing cfg_select

stabilizing cfg_select

stabilizing cfg_select

stabilizing cfg_select

stabilizing cfg_select
blockers
- some small stuff
- rustfmt support (very little review capacity)
stabilizing cfg_select

stabilizing cfg_select

stabilizing cfg_select

stabilizing cfg_select

notes on this process
it still took a lot of time, and a bunch of people collaborating.
aftur á ný
there are always new exciting things to work on: guaranteed tail calls, c-variadic function definitions, f16 & f128, align on functions and static, etc.
these things lead you on sidequests, and maintenance/review is a big part of the work
Stabilizing decade-old features
By folkert de vries
Stabilizing decade-old features
RustNL 2024
- 81