At Anatoly's prompting, Andrey Ponomarenko set up ABI/API compatibility checks for CPython on the Linux upstream tracker (http://upstream-tracker.org/)
Everything: http://upstream-tracker.org/versions/python.html
Public API/ABI (no leading underscores): http://upstream-tracker.org/versions/python_public_api.html
3.2 limited API/stable ABI (no leading underscores): http://upstream-tracker.org/versions/python_stable_api.html
Andrey's analysis in the python-ideas thread [1] indicates we've likely made some mistakes in exposing struct internals, as well as exposing new APIs unintentionally under older Py_LIMITED_API definitions.
There's probably not too much (if anything) we can do to rectify the past mistakes, but we could set up a daily or weekly check (akin to the existing refleak scan) that monitored for such mistakes to prevent the introduction of any new errors along these lines.
[1] https://mail.python.org/pipermail/python-dev/2014-April/133754.html |