Re: gtk+ API change; who should fix it? (A.k.a. Why isn't GNOME 2.19.4 released yet?)



On Fri, 2007-06-22 at 15:36 +0200, Murray Cumming wrote:
> On Fri, 2007-06-22 at 13:58 +0100, Gustavo J. A. M. Carneiro wrote:
> > On Qui, 2007-06-21 at 23:39 -0300, Johan Dahlin wrote:
> > > Joseph Sacco wrote:
> > > > The currently available version of pygtk is the stable branch.  I would
> > > > expect the development branchof pygtk to adapt.
> > > >   
> > > I'm ready to adapt but only if the general consent is that API changes 
> > > are okay.
> > > 
> > > My personal opinion is that the API shouldn't be allowed to change, once 
> > > an API is added it should stay stable until the major version is bumped 
> > > (3.0 in the case of gtk+).
> > 
> >   I'm 100% with Johan on this one.  Gtk+ 2.11.x broke API and ABI.
> > Before 2.11.x, the structure is:
> > 
> > struct _GtkTooltips
> > {
> >   GtkObject parent_instance;
> > 
> >   GtkWidget *tip_window;
> >   GtkWidget *tip_label;
> >   GtkTooltipsData *active_tips_data;
> >   GList *tips_data_list;
> > 
> >   guint   delay : 30;
> >   guint	  enabled : 1;
> >   guint   have_grab : 1;
> >   guint   use_sticky_delay : 1;
> >   gint	  timer_tag;
> >   GTimeVal last_popdown;
> > };
> > 
> > None of these fields is marked private, therefore they are public.
> 
> Actually, that's not the convention in GTK+, though I doubt that it's
> written down anywhere official. struct fields are private unless marked
> as public. It's obviously difficult to know, and easy to make the
> mistake.

Actually, it's more complex than that:

 Object structures are private unless marked public
 Non-object structures are public unles marked private

gtk-doc respects this, so you can tell what is public by looking at the
docs...

> But even if an app did something wrong, we should still avoid breaking
> that app unnecessarily.

Yeah. I don't see the big deal here. The change broke compilation of
a commonly used package. It needs to be reverted, unless the reverting
it would change the compilation failure into a segfault. The fact that
the access was "illegal" doesn't matter.

						- Owen





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