Petr Viktorin schrieb am 17.04.2015 um 15:52: > As a background, the PyModuleDef structure [1] is currently: > > struct PyModuleDef{ > PyModuleDef_Base m_base; > const char* m_name; > const char* m_doc; > Py_ssize_t m_size; > PyMethodDef *m_methods; > inquiry m_reload; > traverseproc m_traverse; > inquiry m_clear; > freefunc m_free; > }; > > ... where the m_reload pointer is unused, and must be NULL. > My proposal is to repurpose this pointer to hold an array of slots, in the > style of PEP 384's PyType_Spec [2], which would allow adding extensions -- > both those needed for PEP 489 and future ones.
FWIW, I'm +1 on this. It replaces a struct field that risks staying unused basically forever with an extensible interface that massively improves the current extension module protocol and allows future extensions (including getting back the pointer we replaced). The alternative of essentially duplicating all sorts of things to accommodate for a new metadata struct is way too cumbersome and ugly in comparison. Stefan _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com