Hi, There is an issue that has not been mentione till now in the discussions on the mailing list, but probably you already have some ideas in this matter already.
How are we going to address the binary-compatibility issue? I think that this kind of library must be binary-compatible along wide version ranges to ease distribution maintainers and third-party client developer's life. The problem is that as all structures are defined in the public header files, we can't assure that the compiler will generate binary compatible code or that the library clients will make a binary-compatible use of it. So I suggest leaving a forward-declaration of the structures in the header files and giving its definition in the .c files. As we already have accessors for all public members and there is no need for direct access to the structure, and objects are heap-allocated, this task should be trivial. Obviously, we cannot apply this in stack-allocated objects, but anyway those are usually performance-critical ones that are quite simple and we can assure that "they will never ever be modified". What do you think about this? JP
