D Editions

Gregor Mückl gregormueckl at gmx.de
Fri May 31 00:56:36 UTC 2024


On Thursday, 30 May 2024 at 18:31:48 UTC, Atila Neves wrote:
> https://github.com/atilaneves/DIPs/blob/editions/editions.md
>
> Destroy!

How are editions going to retain compatibility across modules 
with different ABIs? I believe that combinations of inheritance 
and interface implementations may make this quite challenging.

A probably needlessly convoluted example would be this:

- a module A, edition 2024, containing a class Foo
- a module B, edition 2024+x, containing a class Bar, and
- a module C, edition 2024+y, defining an interface IFooBar and 
two classes FooBar_Foo and FooBar_Bar that derive from Foo and 
Bar respectively, but implement the IFooBar interface on top of 
them.

Any function that takes a IFooBar should be able to take both 
implementation interchangeably. But how would this work if there 
was an ABI change to the class memory layout affecting Foo and 
Bar?


More information about the dip.ideas mailing list