Re: gtk+ API change; who should fix it? (A.k.a. Why isn't GNOME 2.19.4 released yet?)
- From: Owen Taylor <otaylor redhat com>
- To: Murray Cumming <murrayc murrayc com>
- Cc: GTK Dev List <gtk-devel-list gnome org>, Johan Dahlin <jdahlin async com br>, "Gustavo J. A. M. Carneiro" <gjc inescporto pt>, Gnome Desktop Development List <desktop-devel-list gnome org>
- Subject: Re: gtk+ API change; who should fix it? (A.k.a. Why isn't GNOME 2.19.4 released yet?)
- Date: Fri, 22 Jun 2007 10:51:13 -0400
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]