[Xcb] [Bug 29743] New: dynamic protocol bindings

Peter Harris pharris at opentext.com
Mon Aug 23 08:28:43 PDT 2010

On 2010-08-22 22:18, Havoc Pennington wrote:
> https://bugs.freedesktop.org/show_bug.cgi?id=29743

I suspect this is better discussed on the mailing list, rather than in
the bug tracker.

> It would be useful to have fast runtime access to something like the XML
> protocol descriptions (but converted to a binary format), similar to
> gobject-introspection.

That does sound like it could potentially be useful.

>  It would also allow things like xtrace or more
> one-off debug hacks to use the protocol descriptions.

Actually, your idea is not a prerequisite for "things like xtrace". See,
for example, Wireshark. 1.4 and newer use xcb to decode X11 extensions.

> In theory, each request could be nothing but a call to a dynamic invoker like
> this:
> xcb_send_request_dynamic(connection, flags, request_description, ...);

In theory, yes. In practice, we care a lot about performance so we'd
like to see some numbers before even thinking about such a change.

> Does this sound reasonable or does it conflict with some XCB goals?

This sounds like a great idea.

The XCB goal is "have a common machine-readable protocol specification
that can be used to do lots of different cool things". This sounds like
a cool thing, ergo it is in-line with the XCB goal.

(There are other goals for various related projects. libxcb is about
hiding latency and not hiding the protocol, server-side-xcb is about xcb
doing the swapping so we don't have to write boilerplate by hand,
wireshark is about dissecting everything, etc)

That said, this is a volunteer project. Thank you for volunteering, and
please let us know when you have something working. :-)

Peter Harris
               Open Text Connectivity Solutions Group
Peter Harris                    http://connectivity.opentext.com/
Research and Development        Phone: +1 905 762 6001
pharris at opentext.com            Toll Free: 1 877 359 4866

More information about the Xcb mailing list