Garrett D'Amore wrote:
> Sorry, but I think that the existence of *.so files (and maybe also lint
> libraries) explicitly does _not_ presume any API stability.  (Unless you
> consider "unstable/uncomitted" a stability level.)

But, I do.


> The only way APIs get stability is via ARC or standards body (POSIX)
> approval.  All other APIs are implicitly unstable/uncommitted.

There are many levels of stability:

# Public:  (Committed, Uncommitted, Volatile, Not-an-interface)
# Private: (Sun Private, Committed Private, Consolidation Private, Project 
Private)

They all play a part in managing abstraction boundaries.  Letting
people depend with your private implementation details means that
either
    they break whenever you change your implementation, or
    you can never change your implementation.

lint files and DSO names are all associated with public interfaces.
Private interfaces should NOT provide them because they are, by
definition, an attractive nuisance.

> Note that historically it has also been generally true also that
> unstable/uncommitted APIs are not be documented.  Generally once an API
> gets documented, it also gets subject to ARC review and also gets
> assigned a stability level.

I think if you substituted "private" for "unstable/uncommitted", we would
be in complete agreement.

    -John



Reply via email to