Re: Binary compatibility (?) between 2.6 and 2.8



On Tue, 2006-02-14 at 16:00 -0800, Banginwar, Rajesh wrote:
> Hello,
> 
>             Here are the few changes I found between 2.6 and 2.8
> version GLIB.
> 
>  
> 
> Return types of interfaces g_tree_remove and g_tree_steal are changed
> from void to gboolean.
> 
>  
> 
> Return type pf gtk_text_attributes_ref interface is changed from void
> to GtkTextAttribute *
> 
>  
> 
> Similarly for pango_attr_list_ref return type is changed from void to
> PangoAttrList *
> 
> And for pango_layout_line_ref return type changed from void to
> PangoLayoutLine *
> 
>  
> 
>  
> 
> Are these ABI breakages? What should LSB standardize on? The reference
> for LSB desktop first release is 2.6 and hence the question.

These are not ABI breakages with any platform ABI I'm aware of in common
use. GTK+ relies on two basically universal properties of C ABIs:

 - Functions can be called with more arguments than they are expecting
 - Functions that return a value can be called as if they returned
   no value.

(One reason that these are virtually universal is that they are pretty
much required by the old style K&R C)

The first property is relied on only in calling signal callbacks
at runtime, but the second property allows us to add return values
without affecting the API or ABI. An obvious caveat is that the
return values added have to be ignorable ... we couldn't make a
function suddenly return allocated memory!

If you are creating a standard for 2.6, you should standardize the 
function prototypes as they existed in 2.6.

Regards,
						Owen






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