[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