[pypy-svn] r16533 - in pypy/dist/pypy/translator/llvm2: . demo test tool

ericvrp at codespeak.net ericvrp at codespeak.net
Thu Aug 25 19:29:49 CEST 2005


Author: ericvrp
Date: Thu Aug 25 19:29:48 2005
New Revision: 16533

Modified:
   pypy/dist/pypy/translator/llvm2/demo/richards.py
   pypy/dist/pypy/translator/llvm2/genllvm.py
   pypy/dist/pypy/translator/llvm2/test/test_extfunc.py
   pypy/dist/pypy/translator/llvm2/tool/suggested_primitive.py
Log:
tests for strtod


Modified: pypy/dist/pypy/translator/llvm2/demo/richards.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/demo/richards.py	(original)
+++ pypy/dist/pypy/translator/llvm2/demo/richards.py	Thu Aug 25 19:29:48 2005
@@ -360,7 +360,7 @@
 
 class Richards:
 
-    iterations = 25
+    iterations = 2
 
     def run(self):
         for i in xrange(self.iterations):

Modified: pypy/dist/pypy/translator/llvm2/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/genllvm.py	(original)
+++ pypy/dist/pypy/translator/llvm2/genllvm.py	Thu Aug 25 19:29:48 2005
@@ -182,12 +182,13 @@
 
         j = os.path.join
         p = j(j(os.path.dirname(__file__), "module"), "genexterns.c")
+
         math_fns  = 'acos asin atan ceil cos cosh exp fabs floor log log10 atan2 fmod '
         math_fns += 'sin sinh sqrt tan tanh frexp modf pow hypot ldexp is_error'
         fns = [('ll_math_%s' % f) for f in math_fns.split()]
-        time_fns = "ll_time_time ll_time_clock ll_time_sleep ll_floattime"
-        fns += time_fns.split()
-        fns.append('ll_strtod_formatd')
+        fns += "ll_time_time ll_time_clock ll_time_sleep ll_floattime".split()
+        fns += "ll_strtod_parts_to_float ll_strtod_formatd".split()
+
         return get_ll(open(p).read(), extern_dir, fns)
 
     def gen_llvm_source(self, func=None):

Modified: pypy/dist/pypy/translator/llvm2/test/test_extfunc.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/test/test_extfunc.py	(original)
+++ pypy/dist/pypy/translator/llvm2/test/test_extfunc.py	Thu Aug 25 19:29:48 2005
@@ -225,5 +225,37 @@
     assert f(0) == os.isatty(0)
     assert f(1) == os.isatty(1)
     assert f(2) == os.isatty(2)
+    
+def test_rarith_parts_to_float():
+    from pypy.rpython.rarithmetic import parts_to_float
+    parts = [
+     ["" ,"1","" ,""],
+     ["-","1","" ,""],
+     ["-","1","5",""],
+     ["-","1","5","2"],
+     ["-","1","5","+2"],
+     ["-","1","5","-2"],
+    ]
+    val = [1.0, -1.0, -1.5, -1.5e2, -1.5e2, -1.5e-2]
+    def fn(i):
+        sign, beforept, afterpt, exponent = parts[i]
+        return parts_to_float(sign, beforept, afterpt, exponent)
+    f = compile_function(fn, [int])
+    for i, v in enumerate(val):
+        assert f(i) == v
+
+def test_rarith_formatd():
+    from pypy.rpython.rarithmetic import formatd
+    as_float  = [ 0.0  ,  1.5  ,  2.0  ]
+    as_string = ["0.00", "1.50", "2.01"]
+    def fn(i):
+        if formatd("%.2f", as_float[i]) == as_string[i]:
+            return 1
+        else:
+            return 0
+    f = compile_function(fn, [int])
+    for i, s in enumerate(as_string):
+        res = f(i)
+        assert res == 1
 
 # end of tests taken from c backend

Modified: pypy/dist/pypy/translator/llvm2/tool/suggested_primitive.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/tool/suggested_primitive.py	(original)
+++ pypy/dist/pypy/translator/llvm2/tool/suggested_primitive.py	Thu Aug 25 19:29:48 2005
@@ -3,12 +3,12 @@
 import autopath
 from sets import Set
 
-from pypy.rpython.module import ll_os, ll_os_path, ll_time, ll_math, ll_strtod #XXX keep this list up-to-date
+from pypy.rpython.module import ll_os   #XXX keep up to date
 from pypy.translator.llvm2.module.extfunction import extfunctions
 
 def main():
     seen = Set()
-    for module in (ll_os, ll_os_path, ll_time, ll_math, ll_strtod):    #XXX keep this list up-to-date too
+    for module in (ll_os,):    #XXX keep this list up-to-date too
         suggested_primitives   = Set( [func for func in dir(module) if func not in seen and getattr(module.__dict__[func], 'suggested_primitive', False)] )
         seen |= suggested_primitives
         implemented_primitives = Set( [f[1:] for f in extfunctions.keys()] )



More information about the Pypy-commit mailing list