On 18 April 2015 at 15:58, Stefan Behnel <stefan...@behnel.de> wrote: > 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.
Sorry for the delayed reply (post-PyCon travel), but +1 from me as well for the reasons Stefan gives. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ 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