Am 01.04.14 13:45, schrieb Nick Coghlan:
Interesting to see the UCS2 removal there for 3.3. That's a genuine removal from the public ABI as part of PEP 393. I guess the reason nobody complained is because most 3.2 Linux builds used the UCS4 ABI instead, and the stable ABI hadn't seen broad adoption on Windows in the 3.2->3.3 time frame.
Not really. The intention was that the stable ABI wouldn't have any UCS2/UCS4 denotation in the function names, see
Functions that explicitly referred to Py_UNICODE were banned from the ABI; functions that were mapped but shouldn't have been mapped were meant to be unmapped.
However, it seems that this wasn't properly implemented, see
Regardless, this service already shows we've made some mistakes with the stable ABI in previous releases - it is indicating there are new symbols in the stable ABI for 3.3 and 3.4 that aren't properly guarded with version constraints. That means it is currently possible to set Py_LIMITED_API=0x03020000 and get something that won't actually run properly on 3.2.
Depends on the operating system. On Windows, the import library has much less additions; anything declared in the header files that is not in python3.def is a bug in the header files (by default).