Message105307
| Author |
stutzbach |
| Recipients |
gvanrossum, lemburg, loewis, r.david.murray, scoder, stutzbach, vstinner, zooko |
| Date |
2010年05月08日.16:11:04 |
| SpamBayes Score |
1.385729e-05 |
| Marked as misclassified |
No |
| Message-id |
<x2leae285401005080911uddf5bed2nc4e9b3550e453d33@mail.gmail.com> |
| In-reply-to |
<1273324068.67.0.0793338480532.issue8654@psf.upfronthosting.co.za> |
| Content |
On Sat, May 8, 2010 at 8:07 AM, Martin v. Löwis <report@bugs.python.org> wrote:
> 1. add a flag to PyModuleDef, indicating whether the module was built in UCS-2 or UCS-4 mode. Then let the interpreter refuse the load the module, instead of having the dynamic linker do so.
> 2. provide a mode for the header files where Py_UNICODE is not defined. add another flag to PyModuleDef indicating whether that mode was used when compiling the extension.
I notice that PyModule_Create currently works like this:
PyAPI_FUNC(PyObject *) PyModule_Create2(struct PyModuleDef*, int apiver);
#define PyModule_Create(module) \
PyModule_Create2(module, PYTHON_API_VERSION)
Instead of modifying PyModuleDef, what if we changed PyModule_Create
to something like the following?
PyAPI_FUNC(PyObject *) PyModule_Create3(struct PyModuleDef*, int apiver);
#define PyModule_Create(module) \
PyModule_Create3(module, PYTHON_API_VERSION, PYTHON_UNICODE_SETTING)
In most cases that will Just Work, without requiring the module writer
to modify their PyModuleDef. |
|