[Python-checkins] CVS: /python/nondist/src/Compiler misc.py,1.4,1.5 pyassem.py,1.5,1.6

Jeremy Hylton jhylton@cnri.reston.va.us
Mon, 21 Feb 2000 17:46:03 -0500


Update of /projects/cvsroot//python/nondist/src/Compiler
In directory goon.cnri.reston.va.us:/home/jhylton/python/nondist/src/Compiler

Modified Files:
	misc.py pyassem.py 
Log Message:
satisfy the tabnanny (thanks to MH for noticing the problem)


Index: misc.py
===================================================================
RCS file: /projects/cvsroot//python/nondist/src/Compiler/misc.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** misc.py	2000/02/16 00:49:47	1.4
--- misc.py	2000/02/21 22:46:00	1.5
***************
*** 12,24 ****
  class Set:
      def __init__(self):
! 	self.elts = {}
      def __len__(self):
          return len(self.elts)
      def add(self, elt):
! 	self.elts[elt] = elt
      def items(self):
! 	return self.elts.keys()
      def has_elt(self, elt):
! 	return self.elts.has_key(elt)
      def remove(self, elt):
          del self.elts[elt]
--- 12,24 ----
  class Set:
      def __init__(self):
!         self.elts = {}
      def __len__(self):
          return len(self.elts)
      def add(self, elt):
!         self.elts[elt] = elt
      def items(self):
!         return self.elts.keys()
      def has_elt(self, elt):
!         return self.elts.has_key(elt)
      def remove(self, elt):
          del self.elts[elt]
***************
*** 26,35 ****
  class Stack:
      def __init__(self):
! 	self.stack = []
! 	self.pop = self.stack.pop
      def __len__(self):
          return len(self.stack)
      def push(self, elt):
! 	self.stack.append(elt)
      def top(self):
! 	return self.stack[-1]
--- 26,35 ----
  class Stack:
      def __init__(self):
!         self.stack = []
!         self.pop = self.stack.pop
      def __len__(self):
          return len(self.stack)
      def push(self, elt):
!         self.stack.append(elt)
      def top(self):
!         return self.stack[-1]

Index: pyassem.py
===================================================================
RCS file: /projects/cvsroot//python/nondist/src/Compiler/pyassem.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** pyassem.py	2000/02/17 22:58:54	1.5
--- pyassem.py	2000/02/21 22:46:00	1.6
***************
*** 61,65 ****
                   docstring=None):
          # XXX why is the default value for flags 3?
! 	self.insts = []
          # used by makeCodeObject
          self._getArgCount(args)
--- 61,65 ----
                   docstring=None):
          # XXX why is the default value for flags 3?
!         self.insts = []
          # used by makeCodeObject
          self._getArgCount(args)
***************
*** 108,115 ****
  
      def getCurInst(self):
! 	return len(self.insts)
  
      def getNextInst(self):
! 	return len(self.insts) + 1
  
      def dump(self, io=sys.stdout):
--- 108,115 ----
  
      def getCurInst(self):
!         return len(self.insts)
  
      def getNextInst(self):
!         return len(self.insts) + 1
  
      def dump(self, io=sys.stdout):
***************
*** 163,167 ****
          if self.flags & CO_VARKEYWORDS:
              self.argcount = self.argcount - 1
! 	stacksize = findDepth(self.insts)
          try:
              co = new.code(self.argcount, nlocals, stacksize,
--- 163,167 ----
          if self.flags & CO_VARKEYWORDS:
              self.argcount = self.argcount - 1
!         stacksize = findDepth(self.insts)
          try:
              co = new.code(self.argcount, nlocals, stacksize,
***************
*** 194,200 ****
          l = []
          for elt in self.consts:
! 	    # XXX might be clearer to just as isinstance(CodeGen)
! 	    if hasattr(elt, 'asConst'):
! 		l.append(elt.asConst())
              else:
                  l.append(elt)
--- 194,200 ----
          l = []
          for elt in self.consts:
!             # XXX might be clearer to just as isinstance(CodeGen)
!             if hasattr(elt, 'asConst'):
!                 l.append(elt.asConst())
              else:
                  l.append(elt)
***************
*** 287,291 ****
      opnum = {}
      for num in range(len(dis.opname)):
! 	opnum[dis.opname[num]] = num
  
      # this version of emit + arbitrary hooks might work, but it's damn
--- 287,291 ----
      opnum = {}
      for num in range(len(dis.opname)):
!         opnum[dis.opname[num]] = num
  
      # this version of emit + arbitrary hooks might work, but it's damn
***************
*** 294,298 ****
      def emit(self, *args):
          self._emitDispatch(args[0], args[1:])
! 	self.insts.append(args)
  
      def _emitDispatch(self, type, args):
--- 294,298 ----
      def emit(self, *args):
          self._emitDispatch(args[0], args[1:])
!         self.insts.append(args)
  
      def _emitDispatch(self, type, args):
***************
*** 364,381 ****
  
      def __init__(self, id=None, val=None):
! 	if id is None:
! 	    id = StackRef.count
! 	    StackRef.count = StackRef.count + 1
! 	self.id = id
! 	self.val = val
  
      def __repr__(self):
! 	if self.val:
! 	    return "StackRef(val=%d)" % self.val
! 	else:
! 	    return "StackRef(id=%d)" % self.id
  
      def bind(self, inst):
! 	self.val = inst
  
      def resolve(self):
--- 364,381 ----
  
      def __init__(self, id=None, val=None):
!         if id is None:
!             id = StackRef.count
!             StackRef.count = StackRef.count + 1
!         self.id = id
!         self.val = val
  
      def __repr__(self):
!         if self.val:
!             return "StackRef(val=%d)" % self.val
!         else:
!             return "StackRef(id=%d)" % self.id
  
      def bind(self, inst):
!         self.val = inst
  
      def resolve(self):
***************
*** 383,387 ****
              print "UNRESOLVE REF", self
              return 0
! 	return self.val
  
  class StackDepthTracker:
--- 383,387 ----
              print "UNRESOLVE REF", self
              return 0
!         return self.val
  
  class StackDepthTracker:
***************
*** 389,455 ****
  
      def findDepth(self, insts):
! 	depth = 0
! 	maxDepth = 0
! 	for i in insts:
! 	    opname = i[0]
! 	    delta = self.effect.get(opname, 0)
! 	    if delta > 1:
! 		depth = depth + delta
! 	    elif delta < 0:
! 		if depth > maxDepth:
! 		    maxDepth = depth
! 		depth = depth + delta
! 	    else:
! 		if depth > maxDepth:
! 		    maxDepth = depth
! 		# now check patterns
! 		for pat, delta in self.patterns:
! 		    if opname[:len(pat)] == pat:
! 			depth = depth + delta
! 			break
! 		# if we still haven't found a match
! 		if delta == 0:
! 		    meth = getattr(self, opname)
! 		    depth = depth + meth(i[1])
! 	    if depth < 0:
! 		depth = 0
! 	return maxDepth
  
      effect = {
! 	'POP_TOP': -1,
! 	'DUP_TOP': 1,
! 	'SLICE+1': -1,
! 	'SLICE+2': -1,
! 	'SLICE+3': -2,
! 	'STORE_SLICE+0': -1,
! 	'STORE_SLICE+1': -2,
! 	'STORE_SLICE+2': -2,
! 	'STORE_SLICE+3': -3,
! 	'DELETE_SLICE+0': -1,
! 	'DELETE_SLICE+1': -2,
! 	'DELETE_SLICE+2': -2,
! 	'DELETE_SLICE+3': -3,
! 	'STORE_SUBSCR': -3,
! 	'DELETE_SUBSCR': -2,
! 	# PRINT_EXPR?
! 	'PRINT_ITEM': -1,
! 	'LOAD_LOCALS': 1,
! 	'RETURN_VALUE': -1,
! 	'EXEC_STMT': -2,
! 	'BUILD_CLASS': -2,
! 	'STORE_NAME': -1,
! 	'STORE_ATTR': -2,
! 	'DELETE_ATTR': -1,
! 	'STORE_GLOBAL': -1,
! 	'BUILD_MAP': 1,
! 	'COMPARE_OP': -1,
! 	'STORE_FAST': -1,
! 	}
      # use pattern match
      patterns = [
! 	('BINARY_', -1),
! 	('LOAD_', 1),
! 	('IMPORT_', 1),
! 	]
      # special cases
  
--- 389,455 ----
  
      def findDepth(self, insts):
!         depth = 0
!         maxDepth = 0
!         for i in insts:
!             opname = i[0]
!             delta = self.effect.get(opname, 0)
!             if delta > 1:
!                 depth = depth + delta
!             elif delta < 0:
!                 if depth > maxDepth:
!                     maxDepth = depth
!                 depth = depth + delta
!             else:
!                 if depth > maxDepth:
!                     maxDepth = depth
!                 # now check patterns
!                 for pat, delta in self.patterns:
!                     if opname[:len(pat)] == pat:
!                         depth = depth + delta
!                         break
!                 # if we still haven't found a match
!                 if delta == 0:
!                     meth = getattr(self, opname)
!                     depth = depth + meth(i[1])
!             if depth < 0:
!                 depth = 0
!         return maxDepth
  
      effect = {
!         'POP_TOP': -1,
!         'DUP_TOP': 1,
!         'SLICE+1': -1,
!         'SLICE+2': -1,
!         'SLICE+3': -2,
!         'STORE_SLICE+0': -1,
!         'STORE_SLICE+1': -2,
!         'STORE_SLICE+2': -2,
!         'STORE_SLICE+3': -3,
!         'DELETE_SLICE+0': -1,
!         'DELETE_SLICE+1': -2,
!         'DELETE_SLICE+2': -2,
!         'DELETE_SLICE+3': -3,
!         'STORE_SUBSCR': -3,
!         'DELETE_SUBSCR': -2,
!         # PRINT_EXPR?
!         'PRINT_ITEM': -1,
!         'LOAD_LOCALS': 1,
!         'RETURN_VALUE': -1,
!         'EXEC_STMT': -2,
!         'BUILD_CLASS': -2,
!         'STORE_NAME': -1,
!         'STORE_ATTR': -2,
!         'DELETE_ATTR': -1,
!         'STORE_GLOBAL': -1,
!         'BUILD_MAP': 1,
!         'COMPARE_OP': -1,
!         'STORE_FAST': -1,
!         }
      # use pattern match
      patterns = [
!         ('BINARY_', -1),
!         ('LOAD_', 1),
!         ('IMPORT_', 1),
!         ]
      # special cases
  
***************
*** 457,477 ****
      # BUILD_LIST, CALL_FUNCTION, MAKE_FUNCTION, BUILD_SLICE
      def UNPACK_TUPLE(self, count):
! 	return count
      def UNPACK_LIST(self, count):
! 	return count
      def BUILD_TUPLE(self, count):
! 	return -count
      def BUILD_LIST(self, count):
! 	return -count
      def CALL_FUNCTION(self, argc):
! 	hi, lo = divmod(argc, 256)
! 	return lo + hi * 2
      def MAKE_FUNCTION(self, argc):
! 	return -argc
      def BUILD_SLICE(self, argc):
! 	if argc == 2:
! 	    return -1
! 	elif argc == 3:
! 	    return -2
      
  findDepth = StackDepthTracker().findDepth
--- 457,477 ----
      # BUILD_LIST, CALL_FUNCTION, MAKE_FUNCTION, BUILD_SLICE
      def UNPACK_TUPLE(self, count):
!         return count
      def UNPACK_LIST(self, count):
!         return count
      def BUILD_TUPLE(self, count):
!         return -count
      def BUILD_LIST(self, count):
!         return -count
      def CALL_FUNCTION(self, argc):
!         hi, lo = divmod(argc, 256)
!         return lo + hi * 2
      def MAKE_FUNCTION(self, argc):
!         return -argc
      def BUILD_SLICE(self, argc):
!         if argc == 2:
!             return -1
!         elif argc == 3:
!             return -2
      
  findDepth = StackDepthTracker().findDepth