Re: GDBus in gio? [was Re: Minutes of the GTK+ Team Meeting - 2009-11-10]



On Fri, 2009-11-20 at 14:23 +0100, nf2 wrote:
> Hmm - i still wonder how many milliseconds putting everything into
> libgio.so rather than having three separate libraries will really safe
> you.

While symbol resolution is important, I actually don't think it's the
main reason we want everything in the GLib tarball to be a single shared
object. The main reason, instead, is that we want code in libgio.so to
be able to use the GDBus stuff. At least down the road.

We have similar problems with libglib.so and libgobject.so. We can't use
GType in libglib.so and this leads to either weird APIs or just plain
missing functionality. For example, it would be nice to do to

 g_ptr_array_set_element_type (GPtrArray *array, GType element_type);

and ditto for hash tables and other containers. See 581106 for more
details.

And for libgio.so we had to invent an extension point system just to be
able to use libdbus.so from extensions (mind you, the extension point
system is nice and probably the right choice *anyway*). Which means that
adding new features to GIO is pretty hard - you have to add the
interfaces to libgio.so, maybe add code to libgio.so and then do it all
again in GVfs. This also means you need to care about versions and all
that jazz. I've done this a couple of times and it's quite painful.

We should probably change this for GLib 3.0 - in fact, I think this
alone is a good reason to do GLib 3.0 with a single libglib-3.0.so that
contains everything. But that's just my opinion and I'm sorta
hand-waving here - collapsing all the .so's in the GLib tarball into a
single one probably requires a bit more thought.

     David




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