Hi,

the example has a little problem, M is available to C with or without implementation in B, since its declared on A. The detail that B implements it does not really matter here.

As a set of rule i would say that we could go with something like :

- Must keep the ordering and elements in the chain of inheritance as they are, the only thing that we can do is injecting a new class between inheritance levels

- The set of APIs on a class (due to implementing interfaces and declaring API) must stay the same, and we can only extend that set, but never delete any API (as long as it has been stable)

- implementation details who is implementing which API does not matter to stability, the important part is where it is declared, and that this place stays.

- A declaration of stable API must stay as it is, the types & the return type must not be changed.

(When i am speaking here of a class, i mean class/interface/abstract/mixin)

Greetings,
   bu5hm4n

On 9/6/19 3:32 PM, Mike Blumenkrantz wrote:
Hi,

This is a mail for the purpose of formalizing a policy as it relates the
the "stability" of relationships between classes in EFL. With EFL 1.23,
Eolian is expected to become stable, which will mean that .eo files are
effectively stable. There is not, however, a formal definition of what
"stable" means in this context.

As an example, consider the following case where:
* classes 'A', 'B', 'C' where 'C extends B' and 'B extends A'
* 'B' implements method 'M' from 'A'

Should having 'M' available to 'C' from its inheritance by 'B' be
considered "stable" across releases, or can this be changed? Similarly, is
this inheritance chain "stable", or can that be changed?

This may seem like a clear-cut scenario to some, but it's important that a
global policy is decided upon in advance of the release so that it can be
documented and expectations can be set both for EFL itself as well as its
users.

I've created a tracking ticket (https://phab.enlightenment.org/T8209) where
the policy decision will be recorded for historical purposes.


Regards,
Mike

_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to