Setting stacksize in a python script
I have good experience with the following code. It doesn't require any special user permissions:
import resource, sys
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)
It does however not seem to work with pypy.
If resource.setrlimit
doesn't work, you can also try using threads:
sys.setrecursionlimit(10**6)
import threading
threading.stack_size(2**26)
threading.Thread(target=main).start()
You can just use the (u)limit command of your shell, if you want:
os.system('ulimit -s unlimited; some_executable')
Or (probably better) use resource.setrlimit:
resource.setrlimit(resource.RLIMIT_STACK, (resource.RLIM_INFINITY, resource.RLIM_INFINITY))