[pypy-commit] pypy kill-someobject: (alex, fijal) kill nonsense

alex_gaynor noreply at buildbot.pypy.org
Sun Oct 7 17:50:25 CEST 2012


Author: Alex Gaynor <alex.gaynor at gmail.com>
Branch: kill-someobject
Changeset: r57824:93067e51258a
Date: 2012-10-07 17:49 +0200
http://bitbucket.org/pypy/pypy/changeset/93067e51258a/

Log:	(alex, fijal) kill nonsense

diff --git a/pypy/annotation/bookkeeper.py b/pypy/annotation/bookkeeper.py
--- a/pypy/annotation/bookkeeper.py
+++ b/pypy/annotation/bookkeeper.py
@@ -167,9 +167,6 @@
 
         self.stats = Stats(self)
 
-        # used in SomeObject.__new__ for keeping debugging info
-        self._isomeobject_coming_from = identity_dict()
-
         delayed_imports()
 
     def count(self, category, *args):
@@ -477,11 +474,11 @@
         elif x is None:
             return s_None
         else:
-            result = SomeObject()
+            raise Exception("Don't know how to represent %r" % (x,))
         if need_const:
             result.const = x
         return result
-    
+
     def getdesc(self, pyobj):
         # get the XxxDesc wrapper for the given Python object, which must be
         # one of:
diff --git a/pypy/annotation/description.py b/pypy/annotation/description.py
--- a/pypy/annotation/description.py
+++ b/pypy/annotation/description.py
@@ -247,13 +247,16 @@
         defs_s = []
         if graph is None:
             signature = self.signature
-            defaults  = self.defaults
+            defaults = self.defaults
         else:
             signature = graph.signature
-            defaults  = graph.defaults
+            defaults = graph.defaults
         if defaults:
             for x in defaults:
-                defs_s.append(self.bookkeeper.immutablevalue(x))
+                if x is NODEFAULT:
+                    defs_s.append(None)
+                else:
+                    defs_s.append(self.bookkeeper.immutablevalue(x))
         try:
             inputcells = args.match_signature(signature, defs_s)
         except ArgErr, e:
diff --git a/pypy/objspace/flow/model.py b/pypy/objspace/flow/model.py
--- a/pypy/objspace/flow/model.py
+++ b/pypy/objspace/flow/model.py
@@ -5,7 +5,6 @@
 # a discussion in Berlin, 4th of october 2003
 import py
 from pypy.tool.uid import uid, Hashable
-from pypy.tool.descriptor import roproperty
 from pypy.tool.sourcetools import PY_IDENTIFIER, nice_repr_for_func
 from pypy.rlib.rarithmetic import is_valid_int, r_longlong, r_ulonglong, r_uint
 
@@ -34,8 +33,6 @@
 
 
 class FunctionGraph(object):
-    __slots__ = ['startblock', 'returnblock', 'exceptblock', '__dict__']
-    
     def __init__(self, name, startblock, return_var=None):
         self.name        = name    # function name (possibly mangled already)
         self.startblock  = startblock
@@ -56,23 +53,23 @@
     def getreturnvar(self):
         return self.returnblock.inputargs[0]
 
-    def getsource(self):
+    @property
+    def source(self):
         from pypy.tool.sourcetools import getsource
         func = self.func    # can raise AttributeError
         src = getsource(self.func)
         if src is None:
             raise AttributeError('source not found')
         return src
-    source = roproperty(getsource)
-    
-    def getstartline(self):
+
+    @property
+    def startline(self):
         return self.func.func_code.co_firstlineno
-    startline = roproperty(getstartline)
-    
-    def getfilename(self):
+
+    @property
+    def filename(self):
         return self.func.func_code.co_filename
-    filename = roproperty(getfilename)
-    
+
     def __str__(self):
         if hasattr(self, 'func'):
             return nice_repr_for_func(self.func, self.name)
diff --git a/pypy/rpython/lltypesystem/lloperation.py b/pypy/rpython/lltypesystem/lloperation.py
--- a/pypy/rpython/lltypesystem/lloperation.py
+++ b/pypy/rpython/lltypesystem/lloperation.py
@@ -3,7 +3,6 @@
 """
 
 from pypy.rpython.extregistry import ExtRegistryEntry
-from pypy.tool.descriptor import roproperty
 
 
 class LLOp(object):
@@ -65,7 +64,10 @@
             val = lltype.enforce(RESULTTYPE, val)
         return val
 
-    def get_fold_impl(self):
+    @property
+    def fold(self):
+        if hasattr(self, "_fold"):
+            return self._fold
         global lltype                 #  <- lazy import hack, worth an XXX
         from pypy.rpython.lltypesystem import lltype
         if self.canrun:
@@ -80,9 +82,8 @@
             def op_impl(*args):
                 raise error
         # cache the implementation function into 'self'
-        self.fold = op_impl
+        self._fold = op_impl
         return op_impl
-    fold = roproperty(get_fold_impl)
 
     def is_pure(self, args_v):
         if self.canfold:                # canfold => pure operation
diff --git a/pypy/rpython/normalizecalls.py b/pypy/rpython/normalizecalls.py
--- a/pypy/rpython/normalizecalls.py
+++ b/pypy/rpython/normalizecalls.py
@@ -12,6 +12,7 @@
 from pypy.rlib.objectmodel import instantiate, ComputedIntSymbolic
 from pypy.interpreter.argument import Signature
 
+
 def normalize_call_familes(annotator):
     for callfamily in annotator.bookkeeper.pbc_maximal_call_families.infos():
         if not callfamily.modified:
@@ -105,7 +106,6 @@
     call_nbargs = shape_cnt + len(shape_keys)
 
     did_something = False
-    NODEFAULT = object()
 
     for graph in graphs:
         argnames, varargname, kwargname = graph.signature
@@ -123,7 +123,7 @@
             inlist = []
             defaults = graph.defaults or ()
             num_nondefaults = len(inputargs_s) - len(defaults)
-            defaults = [NODEFAULT] * num_nondefaults + list(defaults)
+            defaults = [description.NODEFAULT] * num_nondefaults + list(defaults)
             newdefaults = []
             for j in argorder:
                 v = Variable(graph.getargs()[j])
@@ -141,7 +141,7 @@
                     v = inlist[i]
                 except ValueError:
                     default = defaults[j]
-                    if default is NODEFAULT:
+                    if default is description.NODEFAULT:
                         raise TyperError(
                             "call pattern has %d positional arguments, "
                             "but %r takes at least %d arguments" % (
@@ -151,7 +151,7 @@
             newblock.closeblock(Link(outlist, oldblock))
             graph.startblock = newblock
             for i in range(len(newdefaults)-1,-1,-1):
-                if newdefaults[i] is NODEFAULT:
+                if newdefaults[i] is description.NODEFAULT:
                     newdefaults = newdefaults[i:]
                     break
             graph.defaults = tuple(newdefaults)
diff --git a/pypy/tool/descriptor.py b/pypy/tool/descriptor.py
--- a/pypy/tool/descriptor.py
+++ b/pypy/tool/descriptor.py
@@ -1,14 +1,3 @@
-
-class roproperty(object):
-    def __init__(self, getter):
-        self.getter = getter
-    def __get__(self, obj, cls=None):
-        if obj is None:
-            return self
-        else:
-            return self.getter(obj)
-
-
 class InstanceMethod(object):
     "Like types.InstanceMethod, but with a reasonable (structural) equality."
 


More information about the pypy-commit mailing list