[pypy-svn] r17333 - pypy/dist/pypy/interpreter/astcompiler

pedronis at codespeak.net pedronis at codespeak.net
Wed Sep 7 18:08:31 CEST 2005


Author: pedronis
Date: Wed Sep  7 18:08:26 2005
New Revision: 17333

Modified:
   pypy/dist/pypy/interpreter/astcompiler/misc.py
   pypy/dist/pypy/interpreter/astcompiler/pyassem.py
   pypy/dist/pypy/interpreter/astcompiler/pycodegen.py
Log:
killed some other SomeObject sources



Modified: pypy/dist/pypy/interpreter/astcompiler/misc.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/misc.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/misc.py	Wed Sep  7 18:08:26 2005
@@ -11,18 +11,20 @@
     return elts
 
 class Set:
+    _annspecialcase_ = "specialize:ctr_location" # polymorphic
+
     def __init__(self):
         self.elts = {}
     def __len__(self):
         return len(self.elts)
     def __contains__(self, elt):
-        return self.elts.has_key(elt)
+        return elt in self.elts
     def add(self, elt):
         self.elts[elt] = elt
     def elements(self):
         return self.elts.keys()
     def has_elt(self, elt):
-        return self.elts.has_key(elt)
+        return elt in self.elts
     def remove(self, elt):
         del self.elts[elt]
     def copy(self):
@@ -31,6 +33,8 @@
         return c
 
 class Stack:
+    _annspecialcase_ = "specialize:ctr_location" # polymorphic
+
     def __init__(self):
         self.stack = []
         self.pop = self.stack.pop

Modified: pypy/dist/pypy/interpreter/astcompiler/pyassem.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/pyassem.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/pyassem.py	Wed Sep  7 18:08:26 2005
@@ -420,7 +420,7 @@
 
 class PyFlowGraph(FlowGraph):
 
-    def __init__(self, space, name, filename, args=(), optimized=0, klass=None):
+    def __init__(self, space, name, filename, args=(), optimized=0, klass=0):
         FlowGraph.__init__(self, space)
         self.name = name
         self.filename = filename
@@ -556,7 +556,7 @@
                     insts.append(inst)
                     pc = pc + 1
                 elif inst.op != "SET_LINENO":
-                    if self.hasjrel.has_elt(inst.op):
+                    if inst.op in self.hasjrel:
                         assert isinstance(inst, InstrBlock)
                         # relative jump - no extended arg
                         block = inst.block
@@ -564,7 +564,7 @@
                         forward_refs.append( (block,  inst, pc) )
                         insts.append(inst)
                         pc = pc + 3
-                    elif self.hasjabs.has_elt(inst.op):
+                    elif inst.op in self.hasjabs:
                         # absolute jump - can be extended if backward
                         assert isinstance(inst, InstrBlock)
                         arg = inst.block
@@ -602,19 +602,19 @@
         for block, inst, pc in forward_refs:
             opname = inst.op
             abspos = begin[block]
-            if self.hasjrel.has_elt(opname):
+            if opname in self.hasjrel:
                 offset = abspos - pc - 3
                 inst.intval = offset
             else:
                 inst.intval = abspos
         self.stage = FLAT
 
-    hasjrel = misc.Set()
+    hasjrel = {}
     for i in dis.hasjrel:
-        hasjrel.add(dis.opname[i])
-    hasjabs = misc.Set()
+        hasjrel[dis.opname[i]] = True
+    hasjabs = {}
     for i in dis.hasjabs:
-        hasjabs.add(dis.opname[i])
+        hasjabs[dis.opname[i]] = True
 
     def convertArgs(self):
         """Convert arguments from symbolic to concrete form"""
@@ -699,7 +699,7 @@
     def _convert_NAME(self, inst):
         assert isinstance(inst, InstrName)
         arg = inst.name        
-        if self.klass is None:
+        if not self.klass:
             self._lookupName(arg, self.varnames)
         index = self._lookupName(arg, self.names)
         return InstrInt(inst.op, index)        

Modified: pypy/dist/pypy/interpreter/astcompiler/pycodegen.py
==============================================================================
--- pypy/dist/pypy/interpreter/astcompiler/pycodegen.py	(original)
+++ pypy/dist/pypy/interpreter/astcompiler/pycodegen.py	Wed Sep  7 18:08:26 2005
@@ -919,7 +919,7 @@
             self.set_lineno(node)
             self.delName(node.name)
         else:
-            print "oops", node.flags
+            assert False, "visitAssName unexpected flags: %s" % node.flags
 
     def visitAssAttr(self, node):
         node.expr.accept( self )
@@ -928,8 +928,7 @@
         elif node.flags == 'OP_DELETE':
             self.emitop('DELETE_ATTR', self.mangle(node.attrname))
         else:
-            print "warning: unexpected flags:", node.flags
-            print node
+            assert False, "visitAssAttr unexpected flags: %s" % node.flags            
 
     def _visitAssSequence(self, node, op='UNPACK_SEQUENCE'):
         if findOp(node) != 'OP_DELETE':
@@ -1031,7 +1030,7 @@
 
     # slice and subscript stuff
 
-    def visitSlice(self, node, aug_flag=None):
+    def visitSlice(self, node, aug_flag=0):
         # aug_flag is used by visitAugSlice
         node.expr.accept( self )
         slice = 0
@@ -1058,7 +1057,7 @@
             print "weird slice", node.flags
             raise
 
-    def visitSubscript(self, node, aug_flag=None):
+    def visitSubscript(self, node, aug_flag=0):
         node.expr.accept( self )
         for sub in node.subs:
             sub.accept( self )
@@ -1386,14 +1385,22 @@
 class OpFinder(ast.ASTVisitor):
     def __init__(self):
         self.op = None
+
     def visitAssName(self, node):
         if self.op is None:
             self.op = node.flags
         elif self.op != node.flags:
             raise ValueError, "mixed ops in stmt"
-    visitAssAttr = visitAssName
-    visitSubscript = visitAssName
-
+    def visitAssAttr(self, node):
+        if self.op is None:
+            self.op = node.flags
+        elif self.op != node.flags:
+            raise ValueError, "mixed ops in stmt"
+    def visitSubscript(self, node):
+        if self.op is None:
+            self.op = node.flags
+        elif self.op != node.flags:
+            raise ValueError, "mixed ops in stmt"        
 
 
 class AugLoadVisitor(ast.ASTVisitor):



More information about the Pypy-commit mailing list