Andy wrote:
1) Independent interpreters (this is the easier one--and solved, in principle anyway, by PEP 3121, by Martin v. Löwis
Something like that is necessary for independent interpreters, but not sufficient. There are also all the built-in constants and type objects to consider. Most of these are statically allocated at the moment.
2) Barriers to "free threading". As Jesse describes, this is simply just the GIL being in place, but of course it's there for a reason. It's there because (1) doesn't hold and there was never any specs/ guidance put forward about what should and shouldn't be done in multi- threaded apps
No, it's there because it's necessary for acceptable performance when multiple threads are running in one interpreter. Independent interpreters wouldn't mean the absence of a GIL; it would only mean each interpreter having its own GIL. -- Greg -- http://mail.python.org/mailman/listinfo/python-list