<br><br><div class="gmail_quote">On Wed, Nov 17, 2010 at 2:11 PM, Chris Rebert <span dir="ltr"><<a href="mailto:pyideas@rebertia.com">pyideas@rebertia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Wed, Nov 17, 2010 at 12:26 AM, Swapnil Talekar <<a href="http://swapnil.st" target="_blank">swapnil.st</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>> wrote:<br>
> I am working on a project where we have a very peculiar requirements for an<br>
> embedded interpreter. In my opinion these requirements cannot be extremely<br>
> rare. I am posting this message to get some feedback from people who have<br>
> worked on similar stuff or are interested in such a solution. If such a<br>
> solution would be useful to a lot people if readily available as open<br>
> source.<br>
> We need to run multiple interpreters in-process. Which means we need to<br>
> create completely independent environments for each interpreter using some<br>
> very dirty hack. Since Python inherently does not support this. Python<br>
> threads( created using python's threading module ) are not of much help<br>
> because of the GIL.<br>
> For this purpose the solution we have adopted is moving all the mutable<br>
> python globals to heap.<br>
> Nokia did a similar change to Python while porting it to S60 platform.<br>
> Reference<br>
> It seems Nokia has stopped using this solution but I am not aware of how are<br>
> they going about now since I cannot think of any other solution to run<br>
> multiple in-process interpreters. Jukka, can you throw some light ?<br>
> Lua already supports this.<br>
> I would expect other projects like mod_python would also have to face<br>
> similar problem but I am not aware how they are handling it.<br>
<br>
</div>It used* "sub-interpreters" apparently:<br>
<a href="http://modpython.org/live/current/doc-html/pyapi-interps.html" target="_blank">http://modpython.org/live/current/doc-html/pyapi-interps.html</a><br>
<a href="http://docs.python.org/c-api/init.html#Py_NewInterpreter" target="_blank">http://docs.python.org/c-api/init.html#Py_NewInterpreter</a></blockquote><div><br></div><div>Sub-interpreters aren't attractive for the very reasons given in the Bugs and caveats section of the above link. Moreover Sub-interpreters do not release memory (as far as I have tested) even after calling Py_EndInterpreter. This makes them unusable on platforms with high memory constraint.</div>
<div><br></div><div><br></div></div>