Nick Coghlan wrote:
On 3 April 2014 00:18, Andrey Ponomarenko <aponomarenko@rosalab.ru> wrote:
Nick Coghlan wrote:
Regarding the warnings for this one - is there a way for the checker to warn if data structures are exposed directly, rather than as opaque types? It's fine if there isn't, it would just be cool if there was - one of the premises of the stable ABI is that it *doesn't* expose the type definitions directly to consuming code, just the pointers to them (hence allowing the struct size to change without actually breaking compatibility with the defined ABI).
The ABI of the library can be dumped by the abi-compliance-checker basic tool to a text file in the human readable format, so anyone can analyse it in order to find problems of any kind. Thanks! I've now filed http://bugs.python.org/issue21142 as an RFE - I'll definitely be looking into setting up a regular run of this to help us avoid any new issues with managing the evolution of the stable ABI (and the public ABI in general).
I wrote some instructions on how to setup local ABI checker in the comment to issue 21142. The main idea is to create ABI dump of the reference libpython version (say, 3.2) and compare it with the ABI dump of the current version. The ABI dump of the reference version can be stored somewhere in the source tree. Thanks. -- Andrey Ponomarenko, NTC IT ROSA.