[pypy-commit] lang-smalltalk default: add primitive SMALLINT_AS_FLOAT

timfel noreply at buildbot.pypy.org
Wed Mar 13 16:24:26 CET 2013


Author: Tim Felgentreff <timfelgentreff at gmail.com>
Branch: 
Changeset: r172:140b20cc771d
Date: 2013-03-13 16:23 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/140b20cc771d/

Log:	add primitive SMALLINT_AS_FLOAT

diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -249,6 +249,10 @@
 FLOAT_LOG_N = 58
 FLOAT_EXP = 59
 
+ at expose_primitive(SMALLINT_AS_FLOAT, unwrap_spec=[int])
+def func(interp, s_frame, i):
+    return interp.space.wrap_float(float(i))
+
 math_ops = {
     FLOAT_ADD: operator.add,
     FLOAT_SUBTRACT: operator.sub,
diff --git a/spyvm/test/test_primitives.py b/spyvm/test/test_primitives.py
--- a/spyvm/test/test_primitives.py
+++ b/spyvm/test/test_primitives.py
@@ -167,6 +167,9 @@
     prim_fails(primitives.BIT_SHIFT, [4, 29])
     prim_fails(primitives.BIT_SHIFT, [4, 28])
 
+def test_smallint_as_float():
+    assert prim(primitives.SMALLINT_AS_FLOAT, [12]).value == 12.0
+
 def test_float_add():
     assert prim(primitives.FLOAT_ADD, [1.0,2.0]).value == 3.0
     assert prim(primitives.FLOAT_ADD, [3.0,4.5]).value == 7.5


More information about the pypy-commit mailing list