[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