Author: Brian Kearns <[email protected]>
Branch: elidable-canfold-exception
Changeset: r70048:ca1d94c202fc
Date: 2014-03-18 04:39 -0400
http://bitbucket.org/pypy/pypy/changeset/ca1d94c202fc/
Log: cleaner? no need to unpack args ourself
diff --git a/rpython/rlib/jit.py b/rpython/rlib/jit.py
--- a/rpython/rlib/jit.py
+++ b/rpython/rlib/jit.py
@@ -1,5 +1,4 @@
import sys
-import types
import warnings
import py
@@ -13,7 +12,7 @@
DEBUG_ELIDABLE_FUNCTIONS = False
-def elidable(*args, **kwargs):
+def elidable(canfolderror=None):
""" Decorate a function as "trace-elidable". Usually this means simply that
the function is constant-foldable, i.e. is pure and has no side-effects.
@@ -38,7 +37,6 @@
In this case, if it raises specific exception listed there, it's also
constant folded away.
"""
-
def decorator(func):
if DEBUG_ELIDABLE_FUNCTIONS:
cache = {}
@@ -56,17 +54,17 @@
if canfolderror is not None:
func._elidable_exceptions_ = canfolderror
return func
+ return decorator
+_elidable = elidable
+def elidable(*args, **kwargs):
if len(args) == 1:
- # non-ported
assert len(kwargs) == 0
warnings.warn("@elidable is deprecated, use @elidable() instead",
stacklevel=2)
- canfolderror = None
- return decorator(args[0])
+ return _elidable()(args[0])
else:
assert len(args) == 0
- canfolderror = kwargs.get('canfolderror', None)
- return decorator
+ return _elidable(**kwargs)
def purefunction(*args, **kwargs):
import warnings
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit