On 06/02/14 22:06, Felipe Magno de Almeida wrote:
> Hello Tom,
>
> On Thu, Feb 6, 2014 at 9:18 AM, Tom Hacohen <tom.haco...@samsung.com> wrote:
>>
>
> [snip]
>
>> 2. Have you taken pre-cautions into making sure generated C++ API/ABI is
>> solid? I know C++ can be funny with ABI, and you have to assume people
>> are going to create classes inheriting from your API, they can not break
>> every time you re-generate API, and also, they can't break when we
>> change something in C (that doesn't break API/ABI), like adding a new
>> class, or whatever.
>
> Adding new functions to an Eo class will add member functions for the
> wrappers. This will, invariably, be an ODR (One-Definition Rule) violation
> if both the old and the new definitions are present in the same application.
> But, since the wrappers aren't polymorphic it is possible that it doesn't
> break ABI in GCC and possibly other compilers, if we rely on implementation
> defined behavior. We would have to research this possibility.
>
> OTOH, adding or modifiying the inheritance of classes will probably break
> ABI for C++ code. Both possibilities aren't ABI-breaking change for C
> code, AFAIU.

Yeah, I know C++ is fragile when it comes to changes in inheritance, 
while Eo is not, we'll have to live with that.

Let me rephrase what I meant: I wanted to make sure the generated 
API/ABI are as stable as they would have been if we had created them 
manually. So for example, stable across regeneration, and maybe other 
C++ pit-falls that don't come to mind at this moment.

We are all about API/ABI stability, I'd hate to lose that.

--
Tom.



------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to