[PEAK] Re: [Zope3-dev] Re: Virtual Pythons

Phillip J. Eby pje at telecommunity.com
Mon Aug 2 11:04:56 EDT 2004


At 01:26 PM 8/2/04 +0800, Tim Hoffman wrote:
>Would each ModuleSpace also have its own globals

Every module has its own globals, so each module space's copy of a given 
module would have its own, separate globals.

By the way, a bit of follow-up on module spaces: it appears that CPython 
has a C API for creating "multiple interpreters", that is used by 
mod_python and some other embedding uses of Python.  It looks to me as 
though this API could be wrapped in a Pyrex module for use from Python, 
with a bit of work, and that's probably how module spaces will get 
implemented, as 'Interpreter' objects.  Each module space's import hook 
will reset the current thread's interpreter to the interpreter associated 
with that module space.  Then, any C--level code that does importing, will 
see the correct copy of sys.modules, __builtins__, etc.

The very cool thing about this is that basically all the hard work of 
getting C code to see the right sys module (including things like managing 
all the special sys variables like exception states and such) will be 
handled by Python's internal multi-interpreter support.

The not-so-cool thing is that Martin Loewis seems to be very down on 
mulitple interpreters, calling them "essentially ill-designed" on 
Python-Dev.  If the BDFL agrees with that take, I'm not sure whether 
building on it is a good idea.




More information about the PEAK mailing list