Nick Coghlan wrote:
On 1 Apr 2014 01:38, "Victor Stinner" <victor.stinner@gmail.com> wrote:
2014-03-31 13:38 GMT+02:00 Andrey Ponomarenko <aponomarenko@rosalab.ru>:
The public libpython API changes will be tracked here: http://upstream-tracker.org/versions/python_public_api.html
For now I've excluded only symbols starting with an underscore. What other symbols should be excluded? It's not a matter of underscore. You should define Py_LIMITED_API to 0x03020000 to test the stable ABI of Python 3.2.
http://docs.python.org/dev/c-api/stable.html Well, we have more than one ABI, with different guarantees. The "no leading underscore" one we promise not to change in maintenance releases, but we only preserve *API* compatibility in feature releases (mostly due to structs changing size).
The "stable ABI" (aka Py_LIMITED_API) is the one where we promise to hide all the memory layout details and treat it as "additive only" so that binaries built with previous releases keep working. That should never break ABI compatibility, and only get new additions if the macro definition is bumped up to match the newer release.
Cheers, Nick.
P.S. I understand it was Anatoly that put the process in motion to get this set up. Thanks for doing that Anatoly, it's a genuinely good idea.
The stable libpython ABI with Py_LIMITED_API=0x03020000 will be tracked at http://upstream-tracker.org/versions/python_stable_api.html I also added source-compatibility reports to the "public" API tracker: http://upstream-tracker.org/versions/python_public_api.html Thanks. -- Andrey Ponomarenko, NTC IT ROSA.