The description of the X protocol in the spec has two sections that describe how it all works: The main
document itself, which details contents and meaning for all events, replies, errors, requests &c, and the
appendix which re-orders the contents of each packet for on-the-wire transmission. I think it would be
more helpful to anyone wishing not only to grasp the protocol's meaning, but to implement it, if the
descriptions had the contents in the correct, on-wire order. In fact, one could even take the content of
most (i think) of appendix B and spread it out into the respective areas of the spec so that the spec is
correct for on-wire transmission, without the appendix.
The reason that I'm filing this bug is that I am beginning work on a new implementation of an X server,
and was having trouble reconciling the code in XCB with the protocol spec. Everything was there, just in
the wrong place! Lo-and-behold, there is an appendix which makes it all better. It would have been
helpful to me to have it all in one place.
Thanks for your time!!
The ordering of fields are arbitrary, and packed to keep request / response
sizes as small as possible.
The protocol description is organized more to be clear exposition and
The way protocol design occurs is semantics first, and then the wire layout is
done to keep the sizes small, and generally done after several rounds of design
comments (and then iterated as the design is implemented and users discover
Mixing the two would just make the semantic meaning less clear, and most people
who need to refer to the document are not building protocols or X
implementations, but interested in the semantic meaning to understand what they
can do with the protocol.
So while it might make your job easier, I believe it would make most people's
jobs harder to mix them; people building x servers are few and far between, so
even if we had the editorial help to reorganize the documents, it would be a
mistake to do so, in my opionion.
I was thinking more of just reordering the list of arguments, but its not important. Thanks anyway!