[pypy-svn] r54041 - pypy/branch/io-improvements/pypy/translator/goal
fijal at codespeak.net
fijal at codespeak.net
Wed Apr 23 12:48:39 CEST 2008
Author: fijal
Date: Wed Apr 23 12:48:39 2008
New Revision: 54041
Added:
pypy/branch/io-improvements/pypy/translator/goal/targetreadlines.py (contents, props changed)
Modified:
pypy/branch/io-improvements/pypy/translator/goal/targetnopstandalone.py
Log:
a target showcasing how bad is our readline implementation (after translation
it's roughly 2x slower than run directly cpy version)
Modified: pypy/branch/io-improvements/pypy/translator/goal/targetnopstandalone.py
==============================================================================
--- pypy/branch/io-improvements/pypy/translator/goal/targetnopstandalone.py (original)
+++ pypy/branch/io-improvements/pypy/translator/goal/targetnopstandalone.py Wed Apr 23 12:48:39 2008
@@ -8,14 +8,26 @@
"""
import os, sys
+from pypy.rpython.lltypesystem import lltype, llmemory
+
+def fib(n):
+ if n == 0 or n == 1:
+ return n
+ else:
+ return fib(n-1) + fib(n-2)
def debug(msg):
- os.write(2, "debug: " + msg + '\n')
+ for i in range(36):
+ print "n=%d => %d" % (i, fib(i))
+
# __________ Entry point __________
def entry_point(argv):
debug("hello world")
+ print llmemory.sizeof(lltype.UniChar)
+ if len(argv) > 3:
+ raise ValueError
return 0
# _____ Define and setup target ___
Added: pypy/branch/io-improvements/pypy/translator/goal/targetreadlines.py
==============================================================================
--- (empty file)
+++ pypy/branch/io-improvements/pypy/translator/goal/targetreadlines.py Wed Apr 23 12:48:39 2008
@@ -0,0 +1,26 @@
+
+from pypy.rlib.streamio import fdopen_as_stream
+
+def target(*args):
+ return main, None
+
+def main(args):
+ search = args[0]
+ FD = 0
+ s = fdopen_as_stream(FD, 'r', 1024)
+ while True:
+ next_line = s.readline()
+ if not next_line:
+ break
+ if search in next_line:
+ print next_line
+ return 0
+
+def cpy_main(s):
+ for x in sys.stdin.readlines():
+ if s in x:
+ print x
+
+if __name__ == '__main__':
+ import sys
+ cpy_main(sys.argv[1])
More information about the Pypy-commit
mailing list