[pypy-commit] pypy translation-cleanup: Kill ObjSpace.full_exceptions
rlamy
noreply at buildbot.pypy.org
Wed Sep 26 22:33:05 CEST 2012
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: translation-cleanup
Changeset: r57616:862f3101015a
Date: 2012-09-25 06:51 +0100
http://bitbucket.org/pypy/pypy/changeset/862f3101015a/
Log: Kill ObjSpace.full_exceptions
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -272,8 +272,6 @@
"""Base class for the interpreter-level implementations of object spaces.
http://pypy.readthedocs.org/en/latest/objspace.html"""
- full_exceptions = True # full support for exceptions (normalization & more)
-
def __init__(self, config=None):
"NOT_RPYTHON: Basic initialization of objects."
self.fromcache = InternalSpaceCache(self).getorbuild
@@ -1102,8 +1100,6 @@
def exception_is_valid_obj_as_class_w(self, w_obj):
if not self.isinstance_w(w_obj, self.w_type):
return False
- if not self.full_exceptions:
- return True
return self.is_true(self.issubtype(w_obj, self.w_BaseException))
def exception_is_valid_class_w(self, w_cls):
diff --git a/pypy/interpreter/error.py b/pypy/interpreter/error.py
--- a/pypy/interpreter/error.py
+++ b/pypy/interpreter/error.py
@@ -46,11 +46,6 @@
def async(self, space):
"Check if this is an exception that should better not be caught."
- if not space.full_exceptions:
- # flow objspace does not support such exceptions and more
- # importantly, raises KeyboardInterrupt if you try to access
- # space.w_KeyboardInterrupt
- return False
return (self.match(space, space.w_SystemExit) or
self.match(space, space.w_KeyboardInterrupt))
@@ -167,9 +162,7 @@
# Or 'Class' can also be an old-style class and 'inst' an old-style
# instance of it.
#
- # Note that 'space.full_exceptions' is set to False by the flow
- # object space; in this case we must assume that we are in a
- # non-advanced case, and ignore the advanced cases. Old-style
+ # The flow object space only deals with non-advanced case. Old-style
# classes and instances *are* advanced.
#
# input (w_type, w_value)... becomes... advanced case?
@@ -184,9 +177,8 @@
#
w_type = self.w_type
w_value = self.get_w_value(space)
- if space.full_exceptions:
- while space.is_true(space.isinstance(w_type, space.w_tuple)):
- w_type = space.getitem(w_type, space.wrap(0))
+ while space.is_true(space.isinstance(w_type, space.w_tuple)):
+ w_type = space.getitem(w_type, space.wrap(0))
if space.exception_is_valid_obj_as_class_w(w_type):
# this is for all cases of the form (Class, something)
@@ -200,8 +192,7 @@
# raise Type, Instance: let etype be the exact type of value
w_type = w_valuetype
else:
- if space.full_exceptions and space.is_true(
- space.isinstance(w_value, space.w_tuple)):
+ if space.is_true(space.isinstance(w_value, space.w_tuple)):
# raise Type, tuple: assume the tuple contains the
# constructor args
w_value = space.call(w_type, w_value)
diff --git a/pypy/interpreter/pyopcode.py b/pypy/interpreter/pyopcode.py
--- a/pypy/interpreter/pyopcode.py
+++ b/pypy/interpreter/pyopcode.py
@@ -555,7 +555,7 @@
w_type = self.popvalue()
operror = OperationError(w_type, w_value)
operror.normalize_exception(space)
- if not space.full_exceptions or space.is_w(w_traceback, space.w_None):
+ if space.is_w(w_traceback, space.w_None):
# common case
raise operror
else:
diff --git a/pypy/objspace/flow/objspace.py b/pypy/objspace/flow/objspace.py
--- a/pypy/objspace/flow/objspace.py
+++ b/pypy/objspace/flow/objspace.py
@@ -45,7 +45,6 @@
(the bytecode of) some function.
"""
- full_exceptions = False
FrameClass = FlowSpaceFrame
def initialize(self):
@@ -198,7 +197,7 @@
Returns an FSException object whose w_value is an instance of w_type.
"""
- if self.exception_is_valid_obj_as_class_w(w_type):
+ if self.isinstance_w(w_type, self.w_type):
# this is for all cases of the form (Class, something)
if self.is_w(w_value, self.w_None):
# raise Type: we assume we have to instantiate Type
More information about the pypy-commit
mailing list