[pypy-commit] pypy default: merge

fijal noreply at buildbot.pypy.org
Sun Mar 24 03:48:03 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r62718:f99fd433cd40
Date: 2013-03-23 19:47 -0700
http://bitbucket.org/pypy/pypy/changeset/f99fd433cd40/

Log:	merge

diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -913,7 +913,7 @@
         if self.is_w(w_exc_type, w_check_class):
             return True   # fast path (also here to handle string exceptions)
         try:
-            if self.is_true(self.isinstance(w_check_class, self.w_tuple)):
+            if self.isinstance_w(w_check_class, self.w_tuple):
                 for w_t in self.fixedview(w_check_class):
                     if self.exception_match(w_exc_type, w_t):
                         return True
@@ -1052,11 +1052,11 @@
 
     def abstract_isinstance_w(self, w_obj, w_cls):
         # Equivalent to 'isinstance(obj, cls)'.
-        return self.is_true(self.isinstance(w_obj, w_cls))
+        return self.isinstance_w(w_obj, w_cls)
 
     def abstract_isclass_w(self, w_obj):
         # Equivalent to 'isinstance(obj, type)'.
-        return self.is_true(self.isinstance(w_obj, self.w_type))
+        return self.isinstance_w(w_obj, self.w_type)
 
     def abstract_getclass(self, w_obj):
         # Equivalent to 'obj.__class__'.
@@ -1094,7 +1094,7 @@
             expression = compiler.compile(expression, '?', 'eval', 0,
                                          hidden_applevel=hidden_applevel)
         else:
-            raise TypeError, 'space.eval(): expected a string, code or PyCode object'
+            raise TypeError('space.eval(): expected a string, code or PyCode object')
         return expression.exec_code(self, w_globals, w_locals)
 
     def exec_(self, statement, w_globals, w_locals, hidden_applevel=False,
@@ -1108,7 +1108,7 @@
             statement = compiler.compile(statement, filename, 'exec', 0,
                                          hidden_applevel=hidden_applevel)
         if not isinstance(statement, PyCode):
-            raise TypeError, 'space.exec_(): expected a string, code or PyCode object'
+            raise TypeError('space.exec_(): expected a string, code or PyCode object')
         w_key = self.wrap('__builtins__')
         if not self.is_true(self.contains(w_globals, w_key)):
             self.setitem(w_globals, w_key, self.wrap(self.builtin))
@@ -1164,7 +1164,7 @@
              -> (index, 0, 0) or
                 (start, stop, step)
         """
-        if self.is_true(self.isinstance(w_index_or_slice, self.w_slice)):
+        if self.isinstance_w(w_index_or_slice, self.w_slice):
             from pypy.objspace.std.sliceobject import W_SliceObject
             assert isinstance(w_index_or_slice, W_SliceObject)
             start, stop, step = w_index_or_slice.indices3(self, seqlength)
@@ -1184,7 +1184,7 @@
              -> (index, 0, 0, 1) or
                 (start, stop, step, slice_length)
         """
-        if self.is_true(self.isinstance(w_index_or_slice, self.w_slice)):
+        if self.isinstance_w(w_index_or_slice, self.w_slice):
             from pypy.objspace.std.sliceobject import W_SliceObject
             assert isinstance(w_index_or_slice, W_SliceObject)
             start, stop, step, length = w_index_or_slice.indices4(self,
@@ -1326,7 +1326,7 @@
 
     def realstr_w(self, w_obj):
         # Like str_w, but only works if w_obj is really of type 'str'.
-        if not self.is_true(self.isinstance(w_obj, self.w_str)):
+        if not self.isinstance_w(w_obj, self.w_str):
             raise OperationError(self.w_TypeError,
                                  self.wrap('argument must be a string'))
         return self.str_w(w_obj)
@@ -1346,7 +1346,7 @@
     def realunicode_w(self, w_obj):
         # Like unicode_w, but only works if w_obj is really of type
         # 'unicode'.
-        if not self.is_true(self.isinstance(w_obj, self.w_unicode)):
+        if not self.isinstance_w(w_obj, self.w_unicode):
             raise OperationError(self.w_TypeError,
                                  self.wrap('argument must be a unicode'))
         return self.unicode_w(w_obj)
@@ -1367,19 +1367,19 @@
         return self.float_w(self.float(w_obj))
 
     def gateway_r_longlong_w(self, w_obj):
-        if self.is_true(self.isinstance(w_obj, self.w_float)):
+        if self.isinstance_w(w_obj, self.w_float):
             raise OperationError(self.w_TypeError,
                             self.wrap("integer argument expected, got float"))
         return self.r_longlong_w(self.int(w_obj))
 
     def gateway_r_uint_w(self, w_obj):
-        if self.is_true(self.isinstance(w_obj, self.w_float)):
+        if self.isinstance_w(w_obj, self.w_float):
             raise OperationError(self.w_TypeError,
                             self.wrap("integer argument expected, got float"))
         return self.uint_w(self.int(w_obj))
 
     def gateway_r_ulonglong_w(self, w_obj):
-        if self.is_true(self.isinstance(w_obj, self.w_float)):
+        if self.isinstance_w(w_obj, self.w_float):
             raise OperationError(self.w_TypeError,
                             self.wrap("integer argument expected, got float"))
         return self.r_ulonglong_w(self.int(w_obj))
@@ -1496,15 +1496,20 @@
         space.exec_(str(source), w_glob, w_glob)
         return space.getitem(w_glob, space.wrap('anonymous'))
 
+
 class DummyLock(object):
     def acquire(self, flag):
         return True
+
     def release(self):
         pass
+
     def _freeze_(self):
         return True
+
     def __enter__(self):
         pass
+
     def __exit__(self, *args):
         pass
 
@@ -1539,7 +1544,7 @@
     ('pos',             'pos',       1, ['__pos__']),
     ('neg',             'neg',       1, ['__neg__']),
     ('nonzero',         'truth',     1, ['__nonzero__']),
-    ('abs' ,            'abs',       1, ['__abs__']),
+    ('abs',             'abs',       1, ['__abs__']),
     ('hex',             'hex',       1, ['__hex__']),
     ('oct',             'oct',       1, ['__oct__']),
     ('ord',             'ord',       1, []),
@@ -1592,12 +1597,12 @@
     ('delete',          'delete',    2, ['__delete__']),
     ('userdel',         'del',       1, ['__del__']),
     ('buffer',          'buffer',    1, ['__buffer__']),   # see buffer.py
-    ]
+]
 
 ObjSpace.BuiltinModuleTable = [
     '__builtin__',
     'sys',
-    ]
+]
 
 ObjSpace.ConstantTable = [
     'None',
@@ -1605,7 +1610,7 @@
     'True',
     'Ellipsis',
     'NotImplemented',
-    ]
+]
 
 ObjSpace.ExceptionTable = [
     'ArithmeticError',
@@ -1648,7 +1653,7 @@
     'ZeroDivisionError',
     'RuntimeWarning',
     'PendingDeprecationWarning',
-    ]
+]
 
 if sys.platform.startswith("win"):
     ObjSpace.ExceptionTable += ['WindowsError']
diff --git a/pypy/objspace/std/boolobject.py b/pypy/objspace/std/boolobject.py
--- a/pypy/objspace/std/boolobject.py
+++ b/pypy/objspace/std/boolobject.py
@@ -6,6 +6,7 @@
 from pypy.objspace.std.register_all import register_all
 from pypy.objspace.std.intobject import W_IntObject
 
+
 class W_BoolObject(W_Object):
     from pypy.objspace.std.booltype import bool_typedef as typedef
     _immutable_fields_ = ['boolval']
@@ -37,7 +38,7 @@
         return float(self.boolval)
 
     def int(self, space):
-        return self
+        return space.newint(int(self.boolval))
 
 registerimplementation(W_BoolObject)
 
diff --git a/pypy/objspace/std/test/test_boolobject.py b/pypy/objspace/std/test/test_boolobject.py
--- a/pypy/objspace/std/test/test_boolobject.py
+++ b/pypy/objspace/std/test/test_boolobject.py
@@ -11,19 +11,24 @@
     def test_repr(self):
         assert self.space.eq_w(self.space.repr(self.true), self.wrap("True"))
         assert self.space.eq_w(self.space.repr(self.false), self.wrap("False"))
-    
+
     def test_true(self):
         assert self.space.is_true(self.true)
-        
+
     def test_false(self):
         assert not self.space.is_true(self.false)
 
+    def test_int_w(self):
+        assert self.space.int_w(self.true) is 1
+        assert self.space.int_w(self.false) is 0
+
     def test_uint_w(self):
         assert self.space.uint_w(self.true) == 1
+        assert self.space.uint_w(self.false) == 0
 
     def test_rbigint_w(self):
         assert self.space.bigint_w(self.true)._digits == [1]
-        
+
 class AppTestAppBoolTest:
     def test_bool_callable(self):
         assert True == bool(1)
@@ -36,6 +41,10 @@
         assert "True" == repr(True)
         assert "False" == repr(False)
 
+    def test_bool_int(self):
+        assert int(True) is 1
+        assert int(False) is 0
+
     def test_bool_ops(self):
         assert True + True == 2
         assert False | False is False
diff --git a/rpython/jit/backend/conftest.py b/rpython/jit/backend/conftest.py
--- a/rpython/jit/backend/conftest.py
+++ b/rpython/jit/backend/conftest.py
@@ -2,7 +2,7 @@
 This conftest adds options used by test/test_random and
 x86/test/test_zll_random.
 """
-import py, random
+import random
 
 def pytest_addoption(parser):
     group = parser.getgroup('random test options')
diff --git a/rpython/jit/codewriter/format.py b/rpython/jit/codewriter/format.py
--- a/rpython/jit/codewriter/format.py
+++ b/rpython/jit/codewriter/format.py
@@ -10,8 +10,7 @@
 def format_assembler(ssarepr):
     """For testing: format a SSARepr as a multiline string."""
     from cStringIO import StringIO
-    seen = {}
-    #
+
     def repr(x):
         if isinstance(x, Register):
             return '%%%s%d' % (x.kind[0], x.index)    # e.g. %i1 or %r2 or %f3
@@ -32,7 +31,7 @@
             return '%r' % (x,)
         else:
             return '<unknown object: %r>' % (x,)
-    #
+
     seenlabels = {}
     for asm in ssarepr.insns:
         for x in asm:
@@ -47,7 +46,7 @@
             labelcount[0] += 1
             seenlabels[lbl.name] = labelcount[0]
         return 'L%d' % seenlabels[lbl.name]
-    #
+
     output = StringIO()
     insns = ssarepr.insns
     if insns and insns[-1] == ('---',):
diff --git a/rpython/jit/metainterp/blackhole.py b/rpython/jit/metainterp/blackhole.py
--- a/rpython/jit/metainterp/blackhole.py
+++ b/rpython/jit/metainterp/blackhole.py
@@ -3,7 +3,7 @@
 from rpython.jit.metainterp.compile import ResumeAtPositionDescr
 from rpython.jit.metainterp.jitexc import JitException, get_llexception, reraise
 from rpython.rlib import longlong2float
-from rpython.rlib.debug import debug_start, debug_stop, ll_assert, make_sure_not_resized
+from rpython.rlib.debug import ll_assert, make_sure_not_resized
 from rpython.rlib.objectmodel import we_are_translated
 from rpython.rlib.rarithmetic import intmask, LONG_BIT, r_uint, ovfcheck
 from rpython.rlib.rtimer import read_timestamp
diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -9,11 +9,10 @@
 from rpython.tool.sourcetools import func_with_new_name
 
 from rpython.jit.metainterp.resoperation import ResOperation, rop, get_deep_immutable_oplist
-from rpython.jit.metainterp.history import TreeLoop, Box, History, JitCellToken, TargetToken
+from rpython.jit.metainterp.history import TreeLoop, Box, JitCellToken, TargetToken
 from rpython.jit.metainterp.history import AbstractFailDescr, BoxInt
-from rpython.jit.metainterp.history import BoxPtr, BoxObj, BoxFloat, Const, ConstInt
+from rpython.jit.metainterp.history import BoxPtr, BoxFloat, ConstInt
 from rpython.jit.metainterp import history, resume
-from rpython.jit.metainterp.typesystem import llhelper, oohelper
 from rpython.jit.metainterp.optimize import InvalidLoop
 from rpython.jit.metainterp.inliner import Inliner
 from rpython.jit.metainterp.resume import NUMBERING, PENDINGFIELDSP
@@ -140,7 +139,7 @@
     assert isinstance(target_token, TargetToken)
     all_target_tokens = [target_token]
 
-    loop = create_empty_loop(metainterp)        
+    loop = create_empty_loop(metainterp)
     loop.inputargs = part.inputargs
     loop.operations = part.operations
     loop.quasi_immutable_deps = {}
@@ -163,7 +162,7 @@
             optimize_trace(metainterp_sd, part, enable_opts)
         except InvalidLoop:
             return None
-            
+
         loop.operations = loop.operations[:-1] + part.operations
         if part.quasi_immutable_deps:
             loop.quasi_immutable_deps.update(part.quasi_immutable_deps)
@@ -224,7 +223,6 @@
         try:
             optimize_trace(metainterp_sd, part, jitdriver_sd.warmstate.enable_opts,
                            inline_short_preamble=False)
-            
         except InvalidLoop:
             return None
     assert part.operations[-1].getopnum() != rop.LABEL
@@ -249,9 +247,9 @@
     for box in loop.inputargs:
         assert isinstance(box, Box)
 
-    target_token = loop.operations[-1].getdescr()    
+    target_token = loop.operations[-1].getdescr()
     resumekey.compile_and_attach(metainterp, loop)
-    
+
     target_token = label.getdescr()
     assert isinstance(target_token, TargetToken)
     record_loop_or_bridge(metainterp_sd, loop)
@@ -486,7 +484,7 @@
     _counters = None    # they get stored in _counters then.
 
     # this class also gets the following attributes stored by resume.py code
-    
+
     # XXX move all of unused stuff to guard_op, now that we can have
     #     a separate class, so it does not survive that long
     rd_snapshot = None
@@ -803,7 +801,6 @@
         # with completely unoptimized arguments, as in the interpreter.
         metainterp_sd = metainterp.staticdata
         jitdriver_sd = metainterp.jitdriver_sd
-        redargs = new_loop.inputargs
         new_loop.original_jitcell_token = jitcell_token = make_jitcell_token(jitdriver_sd)
         propagate_original_jitcell_token(new_loop)
         send_loop_to_backend(self.original_greenkey, metainterp.jitdriver_sd,
@@ -819,14 +816,14 @@
     to some existing place.
     """
     from rpython.jit.metainterp.optimizeopt import optimize_trace
-    
+
     # The history contains new operations to attach as the code for the
     # failure of 'resumekey.guard_op'.
     # 
     # Attempt to use optimize_bridge().  This may return None in case
     # it does not work -- i.e. none of the existing old_loop_tokens match.
     new_trace = create_empty_loop(metainterp)
-    new_trace.inputargs = inputargs = metainterp.history.inputargs[:]
+    new_trace.inputargs = metainterp.history.inputargs[:]
     # clone ops, as optimize_bridge can mutate the ops
 
     new_trace.operations = [op.clone() for op in metainterp.history.operations]
@@ -856,7 +853,6 @@
     else:
         metainterp.retrace_needed(new_trace)
         return None
-        
 
 # ____________________________________________________________
 
diff --git a/rpython/jit/metainterp/greenfield.py b/rpython/jit/metainterp/greenfield.py
--- a/rpython/jit/metainterp/greenfield.py
+++ b/rpython/jit/metainterp/greenfield.py
@@ -1,8 +1,4 @@
-from rpython.jit.metainterp.typesystem import deref
-
-
 class GreenFieldInfo(object):
-
     def __init__(self, cpu, jd):
         self.cpu = cpu
         self.jitdriver_sd = jd
diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -1,4 +1,3 @@
-
 from rpython.rtyper.extregistry import ExtRegistryEntry
 from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
 from rpython.rtyper.ootypesystem import ootype
@@ -175,7 +174,7 @@
 
 class BasicFinalDescr(AbstractFailDescr):
     final_descr = True
-    
+
     def __init__(self, identifier=None):
         self.identifier = identifier      # for testing
 
diff --git a/rpython/jit/metainterp/quasiimmut.py b/rpython/jit/metainterp/quasiimmut.py
--- a/rpython/jit/metainterp/quasiimmut.py
+++ b/rpython/jit/metainterp/quasiimmut.py
@@ -1,4 +1,3 @@
-import weakref
 from rpython.rtyper.lltypesystem import lltype, rclass
 from rpython.rtyper.annlowlevel import cast_base_ptr_to_instance
 from rpython.jit.metainterp.history import AbstractDescr
diff --git a/rpython/jit/metainterp/warmspot.py b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -1,12 +1,11 @@
 import sys, py
 from rpython.tool.sourcetools import func_with_new_name
-from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
+from rpython.rtyper.lltypesystem import lltype, llmemory
 from rpython.rtyper.annlowlevel import llhelper, MixLevelHelperAnnotator,\
      cast_base_ptr_to_instance, hlstr
 from rpython.annotator import model as annmodel
 from rpython.rtyper.llinterp import LLException
 from rpython.rtyper.test.test_llinterp import get_interpreter, clear_tcache
-from rpython.rtyper.annlowlevel import cast_instance_to_base_ptr
 from rpython.flowspace.model import SpaceOperation, Variable, Constant
 from rpython.flowspace.model import checkgraph, Link, copygraph
 from rpython.rlib.objectmodel import we_are_translated
diff --git a/rpython/jit/metainterp/warmstate.py b/rpython/jit/metainterp/warmstate.py
--- a/rpython/jit/metainterp/warmstate.py
+++ b/rpython/jit/metainterp/warmstate.py
@@ -12,7 +12,6 @@
 from rpython.rlib.debug import debug_start, debug_stop, debug_print
 from rpython.jit.metainterp import history
 from rpython.jit.codewriter import support, heaptracker, longlong
-from rpython.tool.sourcetools import func_with_new_name
 
 # ____________________________________________________________
 
diff --git a/rpython/jit/tool/loopcounter.py b/rpython/jit/tool/loopcounter.py
--- a/rpython/jit/tool/loopcounter.py
+++ b/rpython/jit/tool/loopcounter.py
@@ -3,7 +3,6 @@
 Parse and display the traces produced by pypy-c-jit when PYPYLOG is set.
 """
 
-import py
 import sys
 import optparse
 import re
diff --git a/rpython/jit/tool/loopviewer.py b/rpython/jit/tool/loopviewer.py
--- a/rpython/jit/tool/loopviewer.py
+++ b/rpython/jit/tool/loopviewer.py
@@ -3,14 +3,10 @@
 Parse and display the traces produced by pypy-c-jit when PYPYLOG is set.
 """
 
-import py
 import sys
 import optparse
-from pprint import pprint
 from rpython.tool import logparser
 from rpython.jit.tool.oparser import parse
-from rpython.jit.metainterp.history import ConstInt
-from rpython.rtyper.lltypesystem import llmemory, lltype
 
 def main(loopfile, options):
     print 'Loading file:'
@@ -19,7 +15,7 @@
     if not options.quiet:
         for loop in loops:
             loop.show()
-            
+
     if options.summary:
         print
         print 'Summary:'
diff --git a/rpython/jit/tool/showstats.py b/rpython/jit/tool/showstats.py
--- a/rpython/jit/tool/showstats.py
+++ b/rpython/jit/tool/showstats.py
@@ -1,11 +1,10 @@
 #!/usr/bin/env python
 from __future__ import division
 
-import sys, py
+import sys
 from rpython.tool import logparser
 from rpython.jit.tool.oparser import parse
 from rpython.jit.metainterp.resoperation import rop
-from rpython.rtyper.lltypesystem import lltype, llmemory
 
 def main(argv):
     log = logparser.parse_log_file(argv[0])
@@ -26,6 +25,6 @@
             print "Loop #%d, length: %d, opcodes: %d, guards: %d" % (i, num_ops, num_dmp, num_guards)
         else:
             print "Loop #%d, length: %d, opcodes: %d, guards: %d, %f" % (i, num_ops, num_dmp, num_guards, num_ops/num_dmp)
-        
+
 if __name__ == '__main__':
     main(sys.argv[1:])


More information about the pypy-commit mailing list