[Python-Dev] API bloat
Michael Foord
fuzzyman at voidspace.org.uk
Wed Feb 9 15:11:51 CET 2011
On 09/02/2011 14:00, Benjamin Peterson wrote:
> 2011/2/9 Mark Shannon<marks at dcs.gla.ac.uk>:
>> OK, so UnicodeError_xxx is important for codecs, but surely this sort of
>> argument could be made for lots of things.
>> Don't forget that for each function added to the API,
>> all other implementations have to support it forever.
> The C-API is about the biggest implementation detail of CPython, so
> no, they don't have to.
>
Alternative implementations that want C extensions to work (like
Ironclad for IronPython and cpyext for pypy) do implement the parts of
the C API that are most widely used though. Of course they don't *have
to*, but c extension compatibility is one of the biggest problems for
users of alternative implementations.
Hopefully the stable ABI will improve this situation for the future, but
realistically its going to be a few years before it has an appreciable
effect.
Michael
>> Unfortunately, UnicodeError_xxx are not the only new functions.
>>
>> Various others have been added:
>>
>> int Py_EnterRecursiveCall(char *where)
>> void Py_LeaveRecursiveCall()
>> int Py_ReprEnter(PyObject *object)
>> void Py_ReprLeave(PyObject *object)
>>
>> HotPyModule_GetFilenameObject
>> HotPy_CompileStringExFlags
>>
>> and a few others.
>>
>> Individual functions are not the problem,
>> I'm sure all of these can be justified,
>> its lack of process and review that bothers me.
>
> If they can be justified, what is the process lacking?
>
--
http://www.voidspace.org.uk/
May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html
More information about the Python-Dev
mailing list