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.


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.

> Victor
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com