[Python-Dev] Issue #23903 - stable API is incomplete (original) (raw)
Victor Stinner victor.stinner at gmail.com
Wed Dec 21 09:22:26 EST 2016
- Previous message (by thread): [Python-Dev] Issue #23903 - stable API is incomplete
- Next message (by thread): [Python-Dev] Issue #23903 - stable API is incomplete
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2016-12-21 14:06 GMT+01:00 Serhiy Storchaka <storchaka at gmail.com>:
These functions are private. Would it be possible to not export them? Private functions used in public macros (like PyNewReference) should be exported.
Ah, _Py_NewReference is used in the PyObject_INIT(op, typeobj) macro, right.
IMO it's an issue with our public API: for the stable ABI, we should replace such macro with a function which hides implementation details.
Example from pystate.h:
#ifdef Py_BUILD_CORE PyAPI_DATA(_Py_atomic_address) _PyThreadState_Current;
define PyThreadState_GET() \
((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
#else
define PyThreadState_GET() PyThreadState_Get()
#endif
Ok, now why should _Py_PrintReferences() function be exported? This private function is only called from Py_FinalizeEx(). It is not used in a macro.
Victor
- Previous message (by thread): [Python-Dev] Issue #23903 - stable API is incomplete
- Next message (by thread): [Python-Dev] Issue #23903 - stable API is incomplete
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]