Author: Tobias Pape <[email protected]>
Branch: 
Changeset: r25:d9a275c053b1
Date: 2013-02-14 15:26 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/d9a275c053b1/

Log:    force size of ByteObject to be integer typey; use interpret in jit-
        grapher

diff --git a/spyvm/model.py b/spyvm/model.py
--- a/spyvm/model.py
+++ b/spyvm/model.py
@@ -361,6 +361,7 @@
 class W_BytesObject(W_AbstractObjectWithClassReference):
     def __init__(self, w_class, size):
         W_AbstractObjectWithClassReference.__init__(self, w_class)
+        assert isinstance(size, int)
         self.bytes = ['\x00'] * size
 
     def at0(self, space, index0):
diff --git a/spyvm/objspace.py b/spyvm/objspace.py
--- a/spyvm/objspace.py
+++ b/spyvm/objspace.py
@@ -174,7 +174,8 @@
                 pass
         # XXX is math allowed here?
         import math
-        bytes_len = max(4, int(math.log(val, 0xff)) + 1)
+        bytes_len = int(math.log(val) / math.log(0xff)) + 1
+        bytes_len = 4 if 4 > bytes_len else bytes_len
         w_result = 
model.W_BytesObject(self.classtable['w_LargePositiveInteger'], bytes_len)
         for i in range(bytes_len):
             w_result.setchar(i, chr(intmask((val >> i*8) & 255)))
diff --git a/spyvm/test/jit.py b/spyvm/test/jit.py
--- a/spyvm/test/jit.py
+++ b/spyvm/test/jit.py
@@ -75,16 +75,9 @@
 
         interp = tinyBenchmarks()
         def interp_w():
-            counter = 0
-            try:
-                while True:
-                    counter += 1
-                    s_active_context = interp.s_active_context()
-                    interp.bytecode_step_translated(s_active_context)
-                    if counter == 100000:
-                        counter = 0
-            except interpreter.ReturnFromTopLevel, e:
-                w_result = e.object
+            interp.interpret()
 
-        self.meta_interp(interp_w, [], listcomp=True, listops=True, 
backendopt=True)
+        self.meta_interp(interp_w, [], listcomp=True, listops=True,
+                        #backendopt=True
+                        )
         
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to