Hello, Amund Tveit wrote: > Hi, I wrote a blog entry yesterday about using rpython for the great > computer language shootout recursive program, and got a RunTime error > when I input on the commandline 11 (1 to 10 goes fine). Just did an > svn update of pypy to version 51115 and still get the error, here is > the program: > > blog entry: > http://amundblog.blogspot.com/2008/01/rpython-gclb-benchmark-recursive.html > > source file: > recursive.py > # The Computer Language Shootout > # http://shootout.alioth.debian.org/ > # based on bearophile's psyco program > # slightly modified by Isaac Gouy > > def Ack(x, y): > if x == 0: return y+1 > if y == 0: return Ack(x-1, 1) > return Ack(x-1, Ack(x, y-1)) ... > > from sys import argv, setrecursionlimit > setrecursionlimit(20000) > > def main(argv): > n = int(argv[1]) - 1 > print "Ack(3,%d):" % (n+1), Ack(3, n+1) > print "Fib(" + str(28.0+n) + "," + str(FibFP(28.0+n)) > print "Tak(%d,%d,%d): %d" % (3*n, 2*n, n, Tak(3*n, 2*n, n)) > print "Fib(3):", Fib(3) > print "Tak(3.0,2.0,1.0):", TakFP(3.0, 2.0, 1.0) > return 0 > > from pypy.translator.interactive import Translation > t = Translation(main, standalone=True, gc='ref') > t.source(backend='c') > path = t.compile() > print path
This has nothing to do with pypy, and I get the same error with a normal python interpreter: the Ackermann function is gigantically recursive, and 20000 is probably not enough for Ack(3, 11). -- Amaury Forgeot d'Arc _______________________________________________ [EMAIL PROTECTED] http://codespeak.net/mailman/listinfo/pypy-dev