José Alburquerque wrote:
> 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?
>
>   
                         ^                                             ^
                         |                                             |

               should be a semicolon.                 might be a period.

:-)

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

Reply via email to