[pypy-svn] r25689 - in pypy/dist/pypy/translator: . test

arigo at codespeak.net arigo at codespeak.net
Tue Apr 11 10:42:47 CEST 2006


Author: arigo
Date: Tue Apr 11 10:42:46 2006
New Revision: 25689

Modified:
   pypy/dist/pypy/translator/geninterplevel.py
   pypy/dist/pypy/translator/test/snippet.py
   pypy/dist/pypy/translator/test/test_geninterp.py
Log:
Fix for negative longs in geninterp.


Modified: pypy/dist/pypy/translator/geninterplevel.py
==============================================================================
--- pypy/dist/pypy/translator/geninterplevel.py	(original)
+++ pypy/dist/pypy/translator/geninterplevel.py	Tue Apr 11 10:42:46 2006
@@ -127,9 +127,9 @@
         'def %s(value):\n'
         '    dic = space.newdict([])\n'
         '    space.exec_("", dic, dic) # init __builtins__\n'
-        '    return space.eval("long(%%r, 16)" %% value, dic, dic)' % unique)
+        '    return space.eval(value, dic, dic)' % unique)
     self.initcode.append1('%s = %s(%r)' % (
-        name, unique, hex(value)[2:-1] ) )
+        name, unique, repr(value) ) )
 
 def bltinmod_helper(self, mod):    
     name = self.uniquename("mod_%s" % mod.__name__)

Modified: pypy/dist/pypy/translator/test/snippet.py
==============================================================================
--- pypy/dist/pypy/translator/test/snippet.py	(original)
+++ pypy/dist/pypy/translator/test/snippet.py	Tue Apr 11 10:42:46 2006
@@ -623,6 +623,9 @@
 def t_issubclass(x, y):
     return issubclass(type(x), (int, long)) and issubclass(type(y), int)
 
+def t_neg_long():
+    return -132L
+
 
 # --------------------(Currently) Non runnable Functions ---------------------
 

Modified: pypy/dist/pypy/translator/test/test_geninterp.py
==============================================================================
--- pypy/dist/pypy/translator/test/test_geninterp.py	(original)
+++ pypy/dist/pypy/translator/test/test_geninterp.py	Tue Apr 11 10:42:46 2006
@@ -270,3 +270,8 @@
         fn = self.build_interpfunc(snippet.t_issubclass)
         result = fn(1, 2)
         assert result == True        
+
+    def test_negative_long(self):
+        fn = self.build_interpfunc(snippet.t_neg_long)
+        result = fn()
+        assert result == -132L and type(result) is long



More information about the Pypy-commit mailing list