Author: Ronan Lamy <[email protected]>
Branch: extregistry-refactor
Changeset: r62296:969996d0f71b
Date: 2013-03-11 19:43 +0000
http://bitbucket.org/pypy/pypy/changeset/969996d0f71b/
Log: kill unused SomeExternalObject
diff --git a/rpython/annotator/binaryop.py b/rpython/annotator/binaryop.py
--- a/rpython/annotator/binaryop.py
+++ b/rpython/annotator/binaryop.py
@@ -11,7 +11,7 @@
from rpython.annotator.model import SomeTuple, SomeImpossibleValue,
s_ImpossibleValue
from rpython.annotator.model import SomeInstance, SomeBuiltin, SomeIterator
from rpython.annotator.model import SomePBC, SomeFloat, s_None, SomeByteArray
-from rpython.annotator.model import SomeExternalObject, SomeWeakRef
+from rpython.annotator.model import SomeWeakRef
from rpython.annotator.model import SomeAddress, SomeTypedAddressAccess
from rpython.annotator.model import SomeSingleFloat, SomeLongFloat, SomeType
from rpython.annotator.model import unionof, UnionError, missing_operation
@@ -131,7 +131,7 @@
def is_((obj1, obj2)):
r = SomeBool()
if obj2.is_constant():
- if obj1.is_constant():
+ if obj1.is_constant():
r.const = obj1.const is obj2.const
if obj2.const is None and not obj1.can_be_none():
r.const = False
@@ -148,12 +148,12 @@
annotator = bk.annotator
op = block.operations[i]
- assert op.opname == "is_"
- assert len(op.args) == 2
+ assert op.opname == "is_"
+ assert len(op.args) == 2
def bind(src_obj, tgt_obj, tgt_arg):
if hasattr(tgt_obj, 'is_type_of') and src_obj.is_constant():
- add_knowntypedata(knowntypedata, True, tgt_obj.is_type_of,
+ add_knowntypedata(knowntypedata, True, tgt_obj.is_type_of,
bk.valueoftype(src_obj.const))
assert annotator.binding(op.args[tgt_arg]) == tgt_obj
@@ -179,7 +179,7 @@
getbookkeeper().count("coerce", obj1, obj2)
return pair(obj1, obj2).union() # reasonable enough
- # approximation of an annotation intersection, the result should be the
annotation obj or
+ # approximation of an annotation intersection, the result should be the
annotation obj or
# the intersection of obj and improvement
def improve((obj, improvement)):
if not improvement.contains(obj) and obj.contains(improvement):
@@ -330,7 +330,7 @@
return int0.knowntype
if int1.nonneg and isinstance(op.args[1], Variable):
case = opname in ('lt', 'le', 'eq')
-
+
add_knowntypedata(knowntypedata, case, [op.args[1]],
SomeInteger(nonneg=True,
knowntype=tointtype(int2)))
if int2.nonneg and isinstance(op.args[0], Variable):
@@ -341,7 +341,7 @@
# a special case for 'x < 0' or 'x >= 0',
# where 0 is a flow graph Constant
# (in this case we are sure that it cannot become a r_uint later)
- if (isinstance(op.args[1], Constant) and
+ if (isinstance(op.args[1], Constant) and
type(op.args[1].value) is int and # filter out Symbolics
op.args[1].value == 0):
if int1.nonneg:
@@ -362,14 +362,14 @@
class __extend__(pairtype(SomeBool, SomeBool)):
def union((boo1, boo2)):
- s = SomeBool()
- if getattr(boo1, 'const', -1) == getattr(boo2, 'const', -2):
- s.const = boo1.const
+ s = SomeBool()
+ if getattr(boo1, 'const', -1) == getattr(boo2, 'const', -2):
+ s.const = boo1.const
if hasattr(boo1, 'knowntypedata') and \
hasattr(boo2, 'knowntypedata'):
ktd = merge_knowntypedata(boo1.knowntypedata, boo2.knowntypedata)
s.set_knowntypedata(ktd)
- return s
+ return s
def and_((boo1, boo2)):
s = SomeBool()
@@ -394,13 +394,13 @@
if boo2.const:
s.const = True
return s
-
+
def xor((boo1, boo2)):
s = SomeBool()
if boo1.is_constant() and boo2.is_constant():
s.const = boo1.const ^ boo2.const
return s
-
+
class __extend__(pairtype(SomeString, SomeString)):
def union((str1, str2)):
@@ -503,7 +503,7 @@
return s_string.__class__()
class __extend__(pairtype(SomeFloat, SomeFloat)):
-
+
def union((flt1, flt2)):
return SomeFloat()
@@ -520,13 +520,13 @@
class __extend__(pairtype(SomeSingleFloat, SomeSingleFloat)):
-
+
def union((flt1, flt2)):
return SomeSingleFloat()
class __extend__(pairtype(SomeLongFloat, SomeLongFloat)):
-
+
def union((flt1, flt2)):
return SomeLongFloat()
@@ -618,7 +618,7 @@
class __extend__(pairtype(SomeTuple, SomeInteger)):
-
+
def getitem((tup1, int2)):
if int2.is_immutable_constant():
try:
@@ -632,7 +632,7 @@
class __extend__(pairtype(SomeList, SomeInteger)):
-
+
def mul((lst1, int2)):
return lst1.listdef.offspring()
@@ -651,27 +651,27 @@
getitem_idx_key = getitem_idx
def setitem((lst1, int2), s_value):
- getbookkeeper().count("list_setitem", int2)
+ getbookkeeper().count("list_setitem", int2)
lst1.listdef.mutate()
lst1.listdef.generalize(s_value)
setitem.can_only_throw = [IndexError]
def delitem((lst1, int2)):
- getbookkeeper().count("list_delitem", int2)
+ getbookkeeper().count("list_delitem", int2)
lst1.listdef.resize()
delitem.can_only_throw = [IndexError]
class __extend__(pairtype(SomeString, SomeInteger)):
def getitem((str1, int2)):
- getbookkeeper().count("str_getitem", int2)
+ getbookkeeper().count("str_getitem", int2)
return SomeChar(no_nul=str1.no_nul)
getitem.can_only_throw = []
getitem_key = getitem
def getitem_idx((str1, int2)):
- getbookkeeper().count("str_getitem", int2)
+ getbookkeeper().count("str_getitem", int2)
return SomeChar(no_nul=str1.no_nul)
getitem_idx.can_only_throw = [IndexError]
@@ -683,14 +683,14 @@
class __extend__(pairtype(SomeUnicodeString, SomeInteger)):
def getitem((str1, int2)):
- getbookkeeper().count("str_getitem", int2)
+ getbookkeeper().count("str_getitem", int2)
return SomeUnicodeCodePoint()
getitem.can_only_throw = []
getitem_key = getitem
def getitem_idx((str1, int2)):
- getbookkeeper().count("str_getitem", int2)
+ getbookkeeper().count("str_getitem", int2)
return SomeUnicodeCodePoint()
getitem_idx.can_only_throw = [IndexError]
@@ -702,7 +702,7 @@
class __extend__(pairtype(SomeInteger, SomeString),
pairtype(SomeInteger, SomeUnicodeString)):
-
+
def mul((int1, str2)): # xxx do we want to support this
getbookkeeper().count("str_mul", str2, int1)
return str2.basestringclass()
@@ -722,7 +722,7 @@
return result
class __extend__(pairtype(SomeInteger, SomeList)):
-
+
def mul((int1, lst2)):
return lst2.listdef.offspring()
@@ -795,7 +795,7 @@
class __extend__(pairtype(SomePBC, SomePBC)):
- def union((pbc1, pbc2)):
+ def union((pbc1, pbc2)):
d = pbc1.descriptions.copy()
d.update(pbc2.descriptions)
return SomePBC(d, can_be_None = pbc1.can_be_None or pbc2.can_be_None)
@@ -862,7 +862,6 @@
_make_none_union('SomeUnicodeString', 'can_be_None=True')
_make_none_union('SomeList', 'obj.listdef')
_make_none_union('SomeDict', 'obj.dictdef')
-_make_none_union('SomeExternalObject', 'obj.knowntype')
_make_none_union('SomeWeakRef', 'obj.classdef')
# getitem on SomePBCs, in particular None fails
@@ -889,12 +888,6 @@
raise AnnotatorError('add on %r' % pbc)
return s_ImpossibleValue
-class __extend__(pairtype(SomeExternalObject, SomeExternalObject)):
- def union((ext1, ext2)):
- if ext1.knowntype == ext2.knowntype:
- return SomeExternalObject(ext1.knowntype)
- return SomeObject()
-
# ____________________________________________________________
# annotation of low-level types
from rpython.annotator.model import SomePtr, SomeOOInstance, SomeOOClass
diff --git a/rpython/annotator/model.py b/rpython/annotator/model.py
--- a/rpython/annotator/model.py
+++ b/rpython/annotator/model.py
@@ -83,7 +83,7 @@
def fmt_knowntype(self, t):
return t.__name__
-
+
def contains(self, other):
if self == other:
return True
@@ -482,16 +482,6 @@
"""
knowntype = MethodType
-class SomeExternalObject(SomeObject):
- """Stands for an object of 'external' type. External types have a Repr
- controlled by rpython.rtyper.extregistry."""
-
- def __init__(self, knowntype):
- self.knowntype = knowntype
-
- def can_be_none(self):
- return True
-
class SomeImpossibleValue(SomeObject):
"""The empty set. Instances are placeholders for objects that
will never show up at run-time, e.g. elements of an empty list."""
@@ -568,7 +558,7 @@
immutable = True
def __init__(self, ll_ptrtype, func):
self.ll_ptrtype = ll_ptrtype
- self.func = func
+ self.func = func
def can_be_none(self):
return False
@@ -678,7 +668,7 @@
T = lltype.InteriorPtr(lltype.typeOf(ob), v._T, v._offsets)
return SomeInteriorPtr(T)
return lltype_to_annotation(lltype.typeOf(v))
-
+
# ____________________________________________________________
class UnionError(Exception):
@@ -729,14 +719,14 @@
def commonbase(cls1, cls2): # XXX single inheritance only XXX hum
l1 = inspect.getmro(cls1)
- l2 = inspect.getmro(cls2)
- if l1[-1] != object:
- l1 = l1 + (object,)
- if l2[-1] != object:
- l2 = l2 + (object,)
- for x in l1:
- if x in l2:
- return x
+ l2 = inspect.getmro(cls2)
+ if l1[-1] != object:
+ l1 = l1 + (object,)
+ if l2[-1] != object:
+ l2 = l2 + (object,)
+ for x in l1:
+ if x in l2:
+ return x
assert 0, "couldn't get to commonbase of %r and %r" % (cls1, cls2)
def missing_operation(cls, name):
diff --git a/rpython/annotator/unaryop.py b/rpython/annotator/unaryop.py
--- a/rpython/annotator/unaryop.py
+++ b/rpython/annotator/unaryop.py
@@ -9,7 +9,7 @@
SomeObject, SomeInteger, SomeBool, SomeString, SomeChar, SomeList, \
SomeDict, SomeTuple, SomeImpossibleValue, SomeUnicodeCodePoint, \
SomeInstance, SomeBuiltin, SomeFloat, SomeIterator, SomePBC, \
- SomeExternalObject, SomeTypedAddressAccess, SomeAddress, SomeType, \
+ SomeTypedAddressAccess, SomeAddress, SomeType, \
s_ImpossibleValue, s_Bool, s_None, \
unionof, missing_operation, add_knowntypedata, HarmlesslyBlocked, \
SomeGenericCallable, SomeWeakRef, SomeUnicodeString
@@ -366,7 +366,7 @@
s_value = dct.dictdef.read_value()
return (isinstance(s_key, SomeImpossibleValue) or
isinstance(s_value, SomeImpossibleValue))
-
+
def len(dct):
if dct._is_empty():
return immutablevalue(0)
@@ -746,29 +746,9 @@
bookkeeper = getbookkeeper()
for arg, expected in zip(args.unpack()[0], self.args_s):
assert expected.contains(arg)
-
+
return self.s_result
-class __extend__(SomeExternalObject):
- def getattr(p, s_attr):
- if s_attr.is_constant() and isinstance(s_attr.const, str):
- attr = s_attr.const
- entry = extregistry.lookup_type(p.knowntype)
- s_value = entry.get_field_annotation(p.knowntype, attr)
- return s_value
- else:
- return SomeObject()
- getattr.can_only_throw = []
-
- def setattr(p, s_attr, s_value):
- assert s_attr.is_constant()
- attr = s_attr.const
- entry = extregistry.lookup_type(p.knowntype)
- entry.set_field_annotation(p.knowntype, attr, s_value)
-
- def is_true(p):
- return s_Bool
-
# annotation of low-level types
from rpython.annotator.model import SomePtr, SomeLLADTMeth
from rpython.annotator.model import SomeOOInstance, SomeOOBoundMeth,
SomeOOStaticMeth
@@ -835,7 +815,7 @@
return SomeOOBoundMeth(r.ootype, s_attr.const)
return ll_to_annotation(v)
- def setattr(r, s_attr, s_value):
+ def setattr(r, s_attr, s_value):
assert s_attr.is_constant(), "setattr on ref %r with non-constant
field-name" % r.ootype
v = annotation_to_lltype(s_value)
example = r.ootype._example()
diff --git a/rpython/rtyper/rexternalobj.py b/rpython/rtyper/rexternalobj.py
deleted file mode 100644
--- a/rpython/rtyper/rexternalobj.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from rpython.annotator import model as annmodel
-from rpython.rtyper import extregistry
-from rpython.rtyper.lltypesystem import lltype
-
-# ExternalObjects
-
-
-class __extend__(annmodel.SomeExternalObject):
- def rtyper_makerepr(self, rtyper):
- # delegate to the get_repr() of the extregistrered Entry class
- entry = extregistry.lookup_type(self.knowntype)
- return entry.get_repr(rtyper, self)
-
- def rtyper_makekey(self):
- # grab all attributes of the SomeExternalObject for the key
- attrs = lltype.frozendict(self.__dict__)
- if 'const' in attrs:
- del attrs['const']
- if 'const_box' in attrs:
- del attrs['const_box']
- return self.__class__, attrs
diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py
--- a/rpython/rtyper/rtyper.py
+++ b/rpython/rtyper/rtyper.py
@@ -1012,7 +1012,6 @@
from rpython.rtyper import rrange
from rpython.rtyper import rstr, rdict, rlist, rbytearray
from rpython.rtyper import rclass, rbuiltin, rpbc
-from rpython.rtyper import rexternalobj
from rpython.rtyper import rptr
from rpython.rtyper import rgeneric
from rpython.rtyper import rweakref
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit