Proposed libX11 ABI break

Jeremy Huddleston jeremyhu at freedesktop.org
Fri Jun 26 09:02:22 PDT 2009


On Jun 26, 2009, at 03:14, Daniel Stone wrote:

> Hi,
>
> On Fri, Jun 26, 2009 at 03:22:58PM +1000, Peter Hutterer wrote:
>> So, to sum up, the two approaches I could come up with can be  
>> simplified as:
>>
>> * ABI break
>>  + cost to clients low
>>  - ABI break
>>
>> * API replacement
>>  + no ABI break
>>  - cost to clients high
>>
>> I'd prefer the former, especially in the light of the limited  
>> number of
>> current users.
>>
>> Comments?
>
> As much as libX11 is firmly in 'can't ever break it' territory, I  
> think
> this is enough of a special case that the ABI break is worthwhile:  
> that
> approach makes complete sense.  The other option is to have static
> storage that is only good until the next XNextEvent() call, with the
> option of calling XGECopyEvent() or so, at which point the onus is on
> you to free it.  But I think I prefer your approach.

That would still be a behavioral change... it won't really affect  
single-threaded apps, but multi-threaded apps will cry if they are not  
updated.  Plus, this kind of behavioral change will be annoying for  
people to debug since chances are they'll actually get coherent data  
*most* of the time.

I like the first approach.  Sure, it breaks the libX11 ABI, but, like  
Peter mentioned, the only *real* client of XGE at this point is the  
unreleased XI2.  If someone out there happens to be using it that we  
don't know about (shame on them for being so secretive), the fix is  
relatively lightweight on their end.





More information about the xorg-devel mailing list