[Xcb] XML-XCB: language-neutral bit constants
Ian Osgood
iano at quirkster.com
Tue Mar 14 17:13:52 PST 2006
On Mar 14, 2006, at 3:49 PM, Jamey Sharp wrote:
> On Tue, Mar 14, 2006 at 11:23:46AM -0800, Ian Osgood wrote:
>> On Tue, 14 Mar 2006, Ian Osgood wrote:
>>>> We should strive to be language-neutral in the protocol
>>>> definitions, right?
>
> Certainly...
>
>>>> <op="<<"> is 1) ugly 2) repetitious
>
> No argument there.
>
>>>> 3) C-specific.
>>
>> <bit> is for addressing a bit in a word. The C idiom is (1<<n), but
>> other languages name this "shl(1,n)" or have built in bit addressing
>> syntax (Pascal, Modula, and Oberon's sets for instance).
>
> But I don't think I agree with this. It's not hard to pattern-match
> these cases in the existing XML. An XPath expression something like
> this
> should do it (though my XPath is rusty):
>
> op[@op="<<" and value[1]="1"]/value[2]
Um... yeah. (I know almost nothing about XPath.) That's fine then.
> That said, your other two reasons are probably sufficient.
>
>>> I came up with <bit bit="n"/>, which replaces:
>>>
>>> <op op="<<"><value>1</value><value>n</value></op>
>>>
>>> Unless there are objections, I'll push my changes to xproto.xml,
>>> xcb.xsd, and c-client.xsl.
>
> I assume your changes to xproto.xml involve demonstrating how to use
> <bit>? It'd be good to commit that after committing the xsl/xsd
> changes.
Yes, prettying the one existing Create/ChangeWindow <enum>, CW.
In de-X.h-ifying xcb-utils, I'm also adding new <bit> enums for event
masks and ConfigureWindow masks (*also* lovingly prefixed CW in X.h;
changing to ConfigWindow).
(We might consider not naming the enums. I can't name the enum
"ConfigureWindow" because it conflicts with the protocol request.
Apple uses unnamed enums for all their error codes and things, for
example.)
>> I'm adding a convenience function for one usage of the op="<<"
>> tag (see above). <op> itself is unmodified. I realize that
>> changing the name of operators & and << would result in
>> lots of breakage in the extensions.
>
> If there's a strong argument for changing the operator names, we can
> accept multiple names for the same operator, to provide time for a
> transition.
>
> --Jamey
If there is an XPath solution, then I won't bother. <bit> replaces
most uses, anyway.
Ian
P.S. Is there a mechanism to inject comments into the generated files?
More information about the Xcb
mailing list