Jonathon Jongsma wrote:
> On Mon, 2008-01-14 at 22:08 -0500, José Alburquerque wrote:
>   
>> José Alburquerque wrote:
>>     
>>> It looks like the size of instances in previous releases of *mm projects 
>>> is important.  Why so?  What does ABI mean?   It looks like the 
>>> ValueBase classes patch I was thinking of submitting makes no sense with 
>>> this new (to me) information.
>>>
>>>   
>>>       
>> I did a little searching on this and I have a general idea of what it 
>> means.  I'll admit, I don't understand it all , but an explanation at 
>> this point is not really necessary; I'll learn as I go.  Thanks.
>>
>> -Jose
>>     
>
> ABI means Application Binary Interface.  The (huge) benefit of keeping
> the ABI stable is that you can switch out the shared gtkmm library to a
> newer version and have the apps that link against the library work
> exactly as they worked on the old version.  If the ABI of the library
> had changed from one version to the next, any applications that used the
> library would need to be recompiled, you couldn't just switch to a newer
> version of the library.  
> For example, if gtkmm changed its ABI and your linux distribution
> updated to that new version of gtkmm, every single application that used
> gtkmm would have to be updated as well.
> That's the short answer for why maintaining ABI compatibility is a good
> thing.
> I don't know all of the guidelines for maintaining ABI compatibility,
> but I know that you have to be very careful with virtual functions,
> since they affect the size of an object (by changing the vtable), but
> adding regular functions should be ok.
>   
Thanks so much for that, it's already very clear from your explanation!  
What about constructors?  Do they also affect the size of objects?

-Jose
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to