3 ms·
> I have never heard of people upgrading their compiler and/or standard libraries, but expecting to not have to recompile their compilation units. You've never
by fnord123 6y ago
> I have never heard of people upgrading their compiler and/or standard libraries, but expecting to not have to recompile their compilation units.
You've never linked to a binary? I have no idea what debian's Qt was build with or libssl or SDL etc were built with but we can link to them all the same.
> How often are you changing major compiler versions and breaking standard library versions that you would have this expectation?
You don't configure Jenkins to build against multiple compilers/versions of compiler? Isn't that super normal?
- CyberDildonics 6y agoYou are conflating the C ABI with the C++ ABI. The C ABI is stable, so linking to SDL works fine. The C++ ABI is actually relatively stable as far as I can tell, but ABI breaking changes are announced when they are released by compiler vendors.
- fnord123 6y agoI am intentionally conflating the C ABI with the C++ ABI because the C++ ABI is only relatively stable so if you want to write software that doesn't require you to rebuild everything each time you update a compiler then you push your code to use more C ABIs rather than more advanced C++isms. This is exactly what SDL has done as the headers are C compatible but it has plenty of C++ in the direct3d parts.
- CyberDildonics 6y agoThis was originally about grouping single file header libraries into compilation units that wouldn't need to be changed often. I'm not sure what your point here is, since most would have C functions for their interface or use templates. Even if you were using a C++ ABI it would be trivial to recompile. Qt is the furthest thing from a single file library.