DeviceKit-power release next Monday
David Zeuthen
david at fubar.dk
Wed Oct 7 09:53:43 PDT 2009
On Wed, 2009-10-07 at 23:46 +0700, Mikhail Gusarov wrote:
> Twas brillig at 12:24:43 07.10.2009 UTC-04 when david at fubar.dk did gyre
> and gimble:
>
> DZ> FWIW, I think our version numbers should probably be changed so it
> DZ> is easier for distros to coordinate this effort. E.g. we should
> DZ> probably have
>
> DZ> <feature-version>.<abi-version>.<release>
>
> That'd be nice.
Cool, I'll look into doing this.
>
> DZ> No, it is public ABI that is subject to change.
>
> Okay. As a sidenote: are there public APIs which are essentially frozen
> at all? Even POSIX changes, though slowly.
Many C ABIs are considered stable but keeps getting extended - the most
obvious ones are glibc, the G stack, GStreamer and so on. The
traditional C ABI rules allow for things like
- Adding symbols/functions/etc
- Adding a return value as long as it doesn't requires the caller
to free it
- You can add parameters to functions (with some caveats for
memory handling)
and probably more. I don't think there's a definite list of do's and
dont's anywhere.
Anyway, ABI stability is, as a concept, a bit blurry. For example, in
GObject-based ABIs, I don't think the class hierarchy counts as ABI - so
for example, you can inject a class between to well-known classes in the
inheritance chain. That happened in the G stack when GtkObject started
deriving from GInitiallyUnowned.
As far as I know, ABI stability rules for D-Bus interfaces are not
completely hashed out. But in my experience it closely follows what
people do in C and C++ - e.g. it's fine to add methods, signals and
properties.
David
More information about the devkit-devel
mailing list