[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