On Sunday, 27 June 2021 at 08:41:27 UTC, kinke wrote:
On Sunday, 27 June 2021 at 07:54:38 UTC, Ola Fosheim Grøstad
wrote: [AFAIK, most C++ implementations put the - of course
totally incompatible - *C++* TypeInfo into vtable slot -1.]
Actually my understanding is that it's part of the ABI:
Each virtual table address in the VTT is the address to be
assigned to the respective virtual pointer, i.e. the address
past the end of the typeinfo pointer (the address of the first
virtual function pointer, if there are any), not of the first
vcall offset.
[Source: Itanium ABI, 2.6.2 VTT
Order](https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable-ctor-vtt)
Regarding replacing D's ABI with C++, it *might* be possible
today, but:
- It takes someone to care about it and want it;
- It's going to be a lot of work, so it should come with lots of
benefit - I don't see much as of now;
- It locks us in a position where we depend on an external
committee / implementation to define our ABI.
In any case, if you feel like it's worth it @Ola, you could start
to look into what it takes (druntime/dmd wise) and start to
submit PR. For dlang devs questions, I recommend to use the dlang
slack.