Re: Shipping Vera with 2.4



On Fri, Feb 28, 2003 at 06:11:06PM -0500, Miguel de Icaza wrote:
> I always wanted to have a Bus system in Gnome (I told so to Preston
> Brown when we met in Boston a few years ago, something inspired on dcop
> at the time). 

Yes, Preston wanted to see this.

> But this new bus system re-implemented a lot of good existing
> technology: a new rpc system (which is line-based, with base-64 encoding
> required for all arguments to the simple commands)

You are reading the authentication protocol which is based on
SASL. The actual message protocol is a binary protocol.
 
> The data encoding system is a super set of GConf.  Basic types, plus
> arrays of types.  There is no consideration for complex data types
> (which really is not that much work on top of this, but I can see why
> people wanted to keep it small).

I just finished posting to message-bus-list on this issue, before I
got your mail.

I don't think the gconf arguments against complex types really apply
to D-BUS. But I'm not sure what we should do in this area, so I posted
a mail on it.

> The sizes of a non-1.0 project like dbus (dbus 0.4 here) are a bit
> surprising for something which is supposed to be very small:
> -rwxr-xr-x    1 miguel   miguel       8532 Feb 28 17:34 libdbus-glib-1.so.0.0.0*
> -rwxr-xr-x    1 miguel   miguel     146012 Feb 28 17:34
> libdbus-1.so.0.0.0*

You have to build --disable-verbose-mode --disable-asserts
--disable-tests to do this comparison - it has inline unit tests like
Eel does, and massive debug spew and assertions. Plus of course D-BUS
includes stuff that would be in GLib for ORBit, e.g.  6K for string
class, 7K for portability wrappers, 3K for hash table, etc.  So the
actual IPC portion is not large in terms of code size.

Really though, in talking about "small" the point I'm making is about
the complexity of the API and protocol, not the size of the thing on
disk.
 
> A bus-like system should not be too hard to build with CORBA, and a
> decent glib-like API layered on top of it to hide the complexity should
> not be hard either (gconf is a proof of a simple API being creatable for
> this purpose.
> 
> (Also: there is already a more general bus-like system in CORBA called
> the event service, but people might want something as thin as possible).
> Anyways, my 2 cents.

I agree completely that you could build a bus system with CORBA and
ORBit. Here is why I didn't do that:

 - current ORBit/Bonobo ABI has reentrancy/lifecycle bustage

 - KDE is categorically unwilling to use ORBit, and very close to
   categorically unwilling to use CORBA at all

 - I would expect some other large frameworks (Mozilla, etc.) 
   to have similar views to KDE

 - CORBA/Bonobo does not seem workable for a systemwide bus, which is
   the whole justification I have for allocating time to this

Havoc




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