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