Re: GInterfaces and API Stability
- From: "Matthias Clasen" <matthias clasen gmail com>
- To: "Mike Kestner" <mkestner novell com>
- Cc: gtk-devel-list gnome org
- Subject: Re: GInterfaces and API Stability
- Date: Wed, 7 Nov 2007 20:47:08 -0500
On Nov 7, 2007 4:58 PM, Mike Kestner <mkestner novell com> wrote:
> I have been working on the 2.12 bindings for Gtk# and have noticed a
> stability issue for us related to GInterfaces. In Atk and Gtk, it seems
> there is no restriction against adding methods to stable GInterfaces.
> There have been numerous additions to the Atk interfaces while in
> "stable" mode. A GetCells method was added to the GtkCellLayout
> interface in 2.12. There may be more, I'm still working through the new
> API generated by our tools.
>
> We have recently added a GInterface registration capability to Gtk#, so
> this is going to be a real stability issue for us, going forward. We
> can wave our hands and pretend these previous additions weren't
> stability breaks since our GInterfaces were consume-only until now, but
> with implementation support starting in Gtk# 2.12, subsequent additions
> to existing interfaces will be problematic for us.
>
> While it may not break C ABI/API to add a method to an existing
> GInterface, adding a method to an interface is a clear break in C#. You
> must implement all members of a C# interface, so code which previously
> compiled will break when a method is added to an interface.
>
> I'm hoping this is just one of those "oops, never thought of that" kinds
> of issues and the gtk+ and atk maintainers will avoid extending these
> stable interfaces going forward. It's a significant binding support
> issue.
Well, I have certainly considered C ABI compatibility to be the main deciding
factor when making such decisions. I'd say if C# interfaces are inflexible like
that then mapping GObject interfaces directly to C# interfaces was probably
wrong.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]