Niall Douglas wrote:
On 10/05/2024 16:04, Peter Dimov via Boost wrote:
There is a way to specify things (from the start) which makes API evolution possible, and it's to add a version number to the interface:
You're now getting into that "broken promises to do something about ABI which would allow us to avoid standardising virtual functions" which I mentioned earlier.
Your ideas are a good start, but TBH the work some of us did three years ago are better. Myself, Ben Craig and a few others did some work on seamless versioning of vtables in a non-breaking way that would solve the ABI evolution problem for vptr based objects. I vaguely remember a clever hack to fix RTTI sucking so badly most of the time too, without breaking backwards compatibility.
The charitable interpretation of what happened next is that covid occurred, and it got forgotten/the boil went out of it, and then other WG21 stuff happened and then other priorities appeared and it got dropped.
The non-charitable interpretation of what happened next is it was realised that this would have to get through EWG, and just about everybody thought they'd rather hammer nails through their fingers than endure that. So it died.
Did you (as in, you, Ben Craig, or one of the others) ever write this up in some form? I would certainly be interested in reading about it. I remember your having a paper about Microsoft COM, but if memory serves, I found it a bit difficult to understand. In particular, it wasn't quite clear what exactly was being proposed; as in, what needs to change, in language or library, and how.
Yes you're on a similar track to what we were on.
Well, that's certainly encouraging. :-)