Paul Wise wrote:
> Hmmm, what about something that looks at the headers?
This is possible in theory although it looks complex, fragile and
insufficient to me. It would help library maintainers to detect API
breaks and subsequently ABI breaks (at least one source for them), but
I can't see how it would achieve what symbols files do for C/C++.
An object type can be unknown at compile time so it would be
impossible to determine which method is going to be actually performed
at runtime; two unrelated classes may have methods with the same name.
Application code can also obtain a specific method implementation with
libobjc functions and execute it directly as a C function -- this is
transparent and unrelated to the public API.
An ABI compliance checker for Objective-C would be a nice thing but
it would be quite a project. Such a tool should be intelligent enough
to analyze the whole code and not just the headers.