4 ms·
> An ABI can't really be "additive". If you add stuff to an ABI, it's a new ABI. Not really. You can add new concepts to an ABI without breaking existing code.
by slavapestov 8y ago
> An ABI can't really be "additive". If you add stuff to an ABI, it's a new ABI.
Not really. You can add new concepts to an ABI without breaking existing code.
Suppose version N+1 of some compiler adds a new language feature, like async/await or whatever. It might involve a new calling convention and symbol mangling for async functions. However non-async functions would not be affected.
Of course if the library author removes old entry points they will break old client apps, but that's not a property of the compiler.