CVS Update: xc (branch: trunk)

Keith Packard keithp at keithp.com
Tue Feb 1 09:12:16 PST 2005


Around 10 o'clock on Feb 1, Stuart Anderson wrote:

> Isn't there a difference between being globally visible, and being a
> Public API?

Yes.  Globally visible symbols are an accident of C semantics; symbols 
which are used across source files are public unless you use extra-lingual 
linker support to limit their scope to the library.

However, once these symbols are used by other standard parts of the 
release, they become a part of the defacto public API.  There are many 
such cases in X, caused by lax attention to the separation between 
official and accidental global symbols.

> This is not that same thing as making the API Public for applications to
> use directly. This API does not fit with the rest of the library's API,
> and application writers should not be encouraged to use it.

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.

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

-keith


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20050201/d06187bb/attachment.pgp>


More information about the xorg mailing list