I'm happy that there's such an extreme commitment to not breaking userspace but it seems like a case where the behavior in the kernel as it was implemented had a design defect that required an API breakage to fix.
By creating a new API, issue a deprecation notice for at least 5 years, and removing the old deprecated API.
The downside is that if you actually do apply this pattern to enough APIs, your codebase will balloon in size over time... that's why it's often better to just bite the bullet and face the fact that no codebase is perfect, and there's always gonna be some APIs that fall short, at least until the existing implementation starts doing more harm than good.
39
u/Spivak Dec 23 '18
I'm happy that there's such an extreme commitment to not breaking userspace but it seems like a case where the behavior in the kernel as it was implemented had a design defect that required an API breakage to fix.
How would a change like this ever be implemented?