José Alburquerque wrote:
> Jonathon Jongsma wrote:
>   
>> 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?
>
>   
Searching a bit more, I found the following two links:

http://scm.opendap.org:8090/trac/wiki/libdapABIStability
http://www.cprogramming.com/tutorial/size_of_class_object.html

I don't see anything in them that would lead me to believe that adding 
constructors (as in the case of regular functions) would affect ABI 
compatibility.  Thanks.

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

Reply via email to