Re: [Vala] Can adding new virtual method break ABI?



2011/12/11 Tal Hadad <tal_hd hotmail com>

 > Yes it does. What C programmers often do is adding unused vfuncs as
padding for future extension of the class. From this perspective Vala could
theoretically add some kind of padding to avoid abi breakage.
So what about this idea for fix it:
Create a new attribute property in [CCode], named binary_position, that is
used for virtual methods, but can be used for another things(such as
fields, etc.).
It can be used by the developer to avoid this risk, by doing so:
Every time the developer create a new virtual method, he shell pick the
smallest number available for virtual method position, and put it in
binary_position in [CCode].
On every planned ABI(&API) break, he can minimize those binary_position(s)
for virtual methods.

This idea is based on the assumption that the size of XClass struct
doesn't matter and can be changed(Am I right?).
Also, how does the virtual method order is currently done by Vala? Is it
alphabetic or by the order of the decelerations?


The ordering does not matter, the padding does.

-- 
www.debian.org - The Universal Operating System


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]