Message284077
| Author |
serhiy.storchaka |
| Recipients |
loewis, ned.deily, python-dev, serhiy.storchaka, steve.dower, tim.golden, zach.ware |
| Date |
2016年12月27日.09:36:41 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1482831401.68.0.537890051824.issue23903@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
It is not good that the script removes existing names and adds non-existing names. It is safe to remove names that don't exist in all releases starting from 3.2.0.
1. PyCFunction_New shouldn't be removed in maintained releases. This name is exported, but is unlikely used by third-party code. It can be removed in separate issue, and only in 3.7.
2. PyCmpWrapper_Type shouldn't be added. It is not defined in 3.x.
3. _PyTrash_destroy_chain and like should not be removed for compatibility with 3.2.0-3.2.3.
4. _PyBytes_DecodeEscape shouldn't be added. It is private.
5. Exporting Py_hexdigits looks doubtful. This constant was added for internal use (like _Py_SwappedOp). Unlikely it is used in third-party code. Not attributing it as private looks an error.
6. _Py_TrueStruct shouldn't be removed. It is used in the Py_True macro.
7. *_SizeT names shouldn't be removed. They are used when PY_SSIZE_T_CLEAN is defined before including Python.h (recommended).
8. I think that rather than adding PyODict_Type to limited API, PyODict_Check and PyODict_CheckExact should be excluded from limited API (see issue29058). They never worked in limited API. Note that PyDict_Type as well as other types are not included in limited API. We can consider exposing PyODict_Check and PyODict_CheckExact as functions in limited API in 3.7, but this is other issue.
As for PyArg_VaParse and PyArg_VaParseTupleAndKeywords see issue11626. Seems they were excluded from limited API by mistake.
I suggest first fix errors in python3.def, remove non-existing names, add new names, and only after this add the ability of generating it if it doesn't break python3.def. |
|