3 ms·
Similar things happen in a lot of other languages, sometimes it is not even a matter of a changing/evolving spec. (like TypeScript, or any other language that i
by HugoDaniel 5y ago
Similar things happen in a lot of other languages, sometimes it is not even a matter of a changing/evolving spec. (like TypeScript, or any other language that improves type checking or compile/interpretation validations at each minor version - breaking old code because it no longer type-checks/validates).
Sometimes I feel that C is the only language that can benefit from compound gains over time, their spec is tight and sees sparse nuanced improvements in wide intervals of time.
- dathinab 5y agoThis is actually not a problem of spec but one of: - firefox "secretly" relying on unstable things while using stable rust (using some magical undocumented rust flags meant to be only used for bootstrapping rust). - the older firefox release relying/touching on some "bug" in rust which was fixed (e.g. accidentally accepting malformed config files, or soundness issues). - a bug in the compiler no one put resources to fix in yet (as e.g. close to no one is affected by it and there are more relevant bugs to work on). This can happen to you in C or C++, too. For any larger and more complicated projects some bugs "popping out" when using newer compilers due to either compiler bugs or code bugs "somehow passing by" in earlier compiler versions is totally a thing. Through due to how long the C standard stood still it's not that often happening in C, I guess? Hm, I wonder if Linux kernel devs might disagree??
- amluto 5y agoThe Linux build regularly breaks on new Clang versions. GCC is better in this regard, but we still have issues. The most common ones (that I’ve noticed, anyway) are codegen related — Linux makes assumptions about gcc’s output that break, even if gcc continues to accept the source code.
- loeg 5y ago> Through due to how long the C standard stood still it's not that often happening in C, I guess? Back in the GCC 4 timeframe (~2005), the compiler started taking a more strict view of the C standard in a way that produced additional warnings/errors relative to the GCC 3.x series. Compiler upgrades do regularly break some subset of packages in distro repositories; breaking C++ happens a lot more than C, but it happens.
- deleted 5y ago[deleted]