&gt; Since 1.0, Rust has in fact had multiple significant stable-breaking compiler changes, not to mention that, among other things, adding any new method to a trait or type in the standard library has the potential to cause breakage. The official code stability promise has not been violated by these changes only because it&#x27;s riddled with exceptions.<p>This is essentially the same as any other language. Adding a new method to traits or types can <i>also</i> break JavaScript, the other example you gave.<p>In fact, I know of one such example where code <i>was</i> broken in the wild because of new methods being added, and we did not revert the change. Marijn Haverbeke&#x27;s winning js1k entry relied on the 4th and 7th letters (or something along those lines) of every CanvasRenderingContext2D method being unique, because it compressed code by renaming the canvas methods with what was then a perfect hash function. A new Firefox version was released months later that added new methods and broke the code. That was deemed an acceptable piece of breakage, and Rust&#x27;s policies are very similar.<p>Anyway, the vast majority of breakage that we&#x27;ve seen so far was due to the libcpocalypse. This was an issue with people not specifying specific versions of libraries they depended on, not the language.