It didn't seem to me that Steven's question was so restricted; and since he thanked me for my answer (which of course is probably inapplicable to some custom interpreter that's not written yet) it appears to me that my interpretation of his question was correct, and my answer useful to him.
Yes, I'd stopped following the thread for a bit, and the discussion had moved further afield than I realised :)
If you _can_ execute (whatever) in a separate process, then an approach based on BSD's "jail" or equivalent features of other OS's may be able to give you all you need, without needing other restrictions to be coded in the interpreter (or whatever else you run in that process).
I think that's where these discussion have historically ended. . . making a Python-specific sandbox gets complicated enough that it ends up making more sense to just use an OS-based sandbox that lets you execute arbitrary binaries relatively safely.
The last suggestion I recall along these lines was chroot() plus a monitoring daemon that killed the relevant subprocess if it started consuming too much memory or looked like it had got stuck in an infinite loop.
Cheers, Nick.
-- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net -- http://mail.python.org/mailman/listinfo/python-list