• Marek KnápekOP
    link
    311 months ago

    ABI break when?

    I know some unnamed big customers want ABI stability. But common … VS2015, VS2017, VS2019 and VS2022 all compatible with each other if used with new enough linker? They all are sharing pre-defined macro _MSC_VER 19xx and VC++ toolset version number 14.xx. That is too much of holding back progress on performance and correctness fronts. Eight years is enough.

    Customers need to learn that they cannot rely on ABI stability of STL provided classes, cos guess what: The Holy Standard doesn’t specify any. Toolchain vendors do. This also applies to MFC/ATL/whatnot distributed as part of Visual Studio. Remember the GCC copy-on-write string ABI problem? We already have technology to help migrate between ABI versions: one is called COM, other is pimpl, other is version number as first member of struct or first function parameter. I bet there are many more out there.