CVS Update: xc (branch: trunk)

Stuart Anderson anderson at netsweng.com
Tue Feb 1 09:20:57 PST 2005


On Tue, 1 Feb 2005, Keith Packard wrote:

> The mistake lies entirely in the libSM library which uses this symbol
> without the express publication by libICE.  So, either libSM is fixed to
> no longer need this symbol and it is removed from the unofficial public
> API, or we acknowledge it as part of the public API by publishing it in
> the header file.

I think the published API/ABI presented to an application, is the combination
of the public APIs for both of these libraries (and XLib, etc). One
library using a private symbol from another is bad design, but from the
ABI perspective, it's just an implementation details hidden on the other
side of the published interface.

> No 'private' API should exist between libraries; that way madness lies.

I agree, but there has always been a lot of this going on, and not just
in X libraries. If both of the libraries involved in this private API
a provided from the same source, then it is just an implementation
detail. Consider how much libpthread and libc know about each other.

Having a private API is bad, but promoting it to be Public, especially
when it has no conceptual relation to the public API of the library,
doesn't make things any better.


                                 Stuart

Stuart R. Anderson                               anderson at netsweng.com
Network & Software Engineering                   http://www.netsweng.com/
1024D/37A79149:                                  0791 D3B8 9A4C 2CDC A31F
                                                  BD03 0A62 E534 37A7 9149



More information about the xorg mailing list