On 10/19/2010 05:18 PM, Trevor Woerner wrote:
Thanks so much, Peter, for taking the time to reply. The following is
what I've tried to understand from poking around. I'd appreciate any
clarifications if I'm off-track:

 From what I can tell, there are 5 ABI's which are important to the
code, which are found in xserver/hw/xfree86/common/xf86Module.h:
- ABI_CLASS_ANSIC
- ..._VIDEODRV
- ..._XINPUT
- ..._EXTENSION
- ..._FONT

 From the poking around I've done, the ABI_CLASS_XINPUT ABI appears to
be defined in the file xserver/hw/xfree86/common/xf86Xinput.h, but is
that the only place it's defined? Is there a list somewhere saying:
"here are the files/functions/identifiers which define ABI X"? If not,
would that be useful?

Has anyone attempted to track which releases contain which ABI
versions? If not, would that be useful?

Grepping through the code there are many instances throughout driver/*
where the version of the XINPUT ABI is checked. But there aren't any
instances of any code checking the version of the EXTENSION ABI.
Shouldn't there be lots of such checks throughout the extension
libraries? Especially the older ones?

If it is correct to assume the date of tagging is the same as the date
of release, I have determined the following list of events:

- (ABI_XINPUT_VERSION at 10,0)

- (InputDriversRec contains a refCount member)

- Apr 2
1.8.0 released

- May 11
1.8.1 released

- May 27
ABI_XINPUT_VERSION bumped to 11,0

- Jul 1
1.8.2 released

- Aug 20
1.9.0 released

- Sep 18
InputDriverRec loses refCount

If I only perform a check of the ABI version, the code won't compile
if building against code between May 27 and Sep 18. Is that
acceptable? Or am I misunderstanding something?

Trevor,
ABI major bumps (backwards incompatibility) should only happen on development branches before the first RC of a new release. This means that the dates above are correct, but you're missing the branch info:

1.8.2 and the 1.8.X release series should have the 9,0 XINPUT ABI.
1.9.0 and the 1.9.X release series should have the 11,0 ABI

The Sep 18 InputDriverRec loses refcount hopefully occured on the master branch, and *should* have been accompanied by an XINPUT ABI bump to 12,0, but apparently somebody missed that.

This means that to be able to decide whether a driver should initialize the refcount or not, it should check for ABI version 12, alternatively for Xserver 1.9.99.1 or higher. IMHO the best that could be done is to bump the ABI version ASAP and check for it, and ignore that the driver doesn't compile between Sep 18 and now. However, I guess Peter would be better suited to answer whether the ABI should be bumped or not.

/Thomas










_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to