[pypy-svn] r45945 - in pypy/branch/pypy-more-rtti-inprogress: annotation rpython rpython/lltypesystem rpython/test
fijal at codespeak.net
fijal at codespeak.net
Fri Aug 24 11:48:41 CEST 2007
Author: fijal
Date: Fri Aug 24 11:48:40 2007
New Revision: 45945
Modified:
pypy/branch/pypy-more-rtti-inprogress/annotation/binaryop.py
pypy/branch/pypy-more-rtti-inprogress/rpython/lltypesystem/lloperation.py
pypy/branch/pypy-more-rtti-inprogress/rpython/rfloat.py
pypy/branch/pypy-more-rtti-inprogress/rpython/test/test_rfloat.py
Log:
Implement float % float
Modified: pypy/branch/pypy-more-rtti-inprogress/annotation/binaryop.py
==============================================================================
--- pypy/branch/pypy-more-rtti-inprogress/annotation/binaryop.py (original)
+++ pypy/branch/pypy-more-rtti-inprogress/annotation/binaryop.py Fri Aug 24 11:48:40 2007
@@ -419,7 +419,7 @@
def union((flt1, flt2)):
return SomeFloat()
- add = sub = mul = div = truediv = union
+ mod = add = sub = mul = div = truediv = union
def pow((flt1, flt2), obj3):
return SomeFloat()
Modified: pypy/branch/pypy-more-rtti-inprogress/rpython/lltypesystem/lloperation.py
==============================================================================
--- pypy/branch/pypy-more-rtti-inprogress/rpython/lltypesystem/lloperation.py (original)
+++ pypy/branch/pypy-more-rtti-inprogress/rpython/lltypesystem/lloperation.py Fri Aug 24 11:48:40 2007
@@ -234,6 +234,7 @@
'float_gt': LLOp(canfold=True),
'float_ge': LLOp(canfold=True),
'float_pow': LLOp(canfold=True),
+ 'float_mod': LLOp(canfold=True),
'llong_is_true': LLOp(canfold=True),
'llong_neg': LLOp(canfold=True),
Modified: pypy/branch/pypy-more-rtti-inprogress/rpython/rfloat.py
==============================================================================
--- pypy/branch/pypy-more-rtti-inprogress/rpython/rfloat.py (original)
+++ pypy/branch/pypy-more-rtti-inprogress/rpython/rfloat.py Fri Aug 24 11:48:40 2007
@@ -47,6 +47,11 @@
rtype_inplace_truediv = rtype_truediv
+ def rtype_mod(_, hop):
+ return _rtype_template(hop, 'mod')
+
+ rtype_inplace_mod = rtype_mod
+
# turn 'div' on floats into 'truediv'
rtype_div = rtype_truediv
rtype_inplace_div = rtype_inplace_truediv
Modified: pypy/branch/pypy-more-rtti-inprogress/rpython/test/test_rfloat.py
==============================================================================
--- pypy/branch/pypy-more-rtti-inprogress/rpython/test/test_rfloat.py (original)
+++ pypy/branch/pypy-more-rtti-inprogress/rpython/test/test_rfloat.py Fri Aug 24 11:48:40 2007
@@ -108,6 +108,12 @@
res = self.interpret(fn, [2.0, 3.0])
assert res == 8.0
+ def test_float_mod(self):
+ def fn(x, y):
+ return x % y
+ res = self.interpret(fn, [2.33, 1.0])
+ assert res - 0.33 < 0.00000000001
+
class TestLLtype(BaseTestRfloat, LLRtypeMixin):
def test_hash(self):
More information about the Pypy-commit
mailing list