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