2.6, 3.0, and truly independent intepreters

"Martin v. Löwis" martin at v.loewis.de
Sat Oct 25 03:40:13 CEST 2008


> It seems to me that the very simplest move would be to remove global
> static data so the app could provide all thread-related data, which
> Andy suggests through references to the QuickTime API. This would
> suggest compiling python without thread support so as to leave it up
> to the application.

I'm not sure whether you realize that this is not simple at all.
Consider this fragment

    if (string == Py_None || index >= state->lastmark ||
!state->mark[index] || !state->mark[index+1]) {
        if (empty)
            /* want empty string */
            i = j = 0;
        else {
            Py_INCREF(Py_None);
            return Py_None;

Py_None here is a global variable. How would you replace it?
It's used in thousands of places.

For another example, consider

                PyErr_SetString(PyExc_ValueError,
                                "Empty module name");
or

        dp = PyObject_New(dbmobject, &Dbmtype);

There are tons of different variables denoting exceptions and
other types which all somehow need to be rewritten (likely with
undesirable effects on readability).

So I don't think that this is a simple solution. It's the right
one, but it will take five or ten years to implement.

Regards,
Martin



More information about the Python-list mailing list