[pypy-svn] r68354 - in pypy/branch/improve-kwd-args/pypy: interpreter translator
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Oct 12 22:49:54 CEST 2009
Author: cfbolz
Date: Mon Oct 12 22:49:53 2009
New Revision: 68354
Modified:
pypy/branch/improve-kwd-args/pypy/interpreter/argument.py
pypy/branch/improve-kwd-args/pypy/translator/geninterplevel.py
Log:
fix geninterp to no longer use fromshape
Modified: pypy/branch/improve-kwd-args/pypy/interpreter/argument.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/interpreter/argument.py (original)
+++ pypy/branch/improve-kwd-args/pypy/interpreter/argument.py Mon Oct 12 22:49:53 2009
@@ -331,25 +331,6 @@
space.setitem(w_kwds, space.wrap(key), w_value)
return w_args, w_kwds
- @staticmethod
- def fromshape(space, (shape_cnt,shape_keys,shape_star,shape_stst), data_w):
- # used by geninterped code
- args_w = data_w[:shape_cnt]
- p = end_keys = shape_cnt + len(shape_keys)
- if shape_star:
- w_star = data_w[p]
- p += 1
- else:
- w_star = None
- if shape_stst:
- w_starstar = data_w[p]
- p += 1
- else:
- w_starstar = None
- return Arguments(space, args_w, list(shape_keys),
- data_w[shape_cnt:end_keys], w_star,
- w_starstar)
-
class ArgumentsForTranslation(Arguments):
def __init__(self, space, args_w, keywords=None, keywords_w=None,
w_stararg=None, w_starstararg=None):
Modified: pypy/branch/improve-kwd-args/pypy/translator/geninterplevel.py
==============================================================================
--- pypy/branch/improve-kwd-args/pypy/translator/geninterplevel.py (original)
+++ pypy/branch/improve-kwd-args/pypy/translator/geninterplevel.py Mon Oct 12 22:49:53 2009
@@ -52,7 +52,7 @@
from pypy.interpreter.pycode import CO_VARARGS, CO_VARKEYWORDS
from types import FunctionType, CodeType, ModuleType, MethodType
from pypy.interpreter.error import OperationError
-from pypy.interpreter.argument import Arguments
+from pypy.interpreter.argument import ArgumentsForTranslation, Arguments
from pypy.translator.backendopt.ssa import SSI_to_SSA
from pypy.translator.translator import TranslationContext
@@ -71,7 +71,7 @@
log = py.log.Producer("geninterp")
py.log.setconsumer("geninterp", ansi_log)
-GI_VERSION = '1.1.26' # bump this for substantial changes
+GI_VERSION = '1.2.1' # bump this for substantial changes
# ____________________________________________________________
try:
@@ -264,16 +264,21 @@
v = op.args[0]
exv = self.expr(v, localscope)
fmt = (
- "_args = %(Arg)s.fromshape(space, %(shape)s, [%(data_w)s])\n"
+ "_args = %(Arg)s(space, [%(args_w)s], %(keywords)s, [%(keywords_w)s], %(w_stararg)s, %(w_starstararg)s)\n"
"%(res)s = space.call_args(%(func)s, _args)")
assert isinstance(op.args[1], Constant)
shape = op.args[1].value
# make a list out of the second shape elt.
shape = shape[0], list(shape[1]), shape[2], shape[3]
+ arglist = [self.expr(arg, localscope) for arg in op.args[2:]]
+ args = ArgumentsForTranslation.fromshape(None, shape, arglist)
return fmt % {"res": self.expr(op.result, localscope),
"func": exv,
- "shape": repr(shape),
- "data_w": self.arglist(op.args[2:], localscope),
+ "args_w": ", ".join(args.arguments_w),
+ "keywords": args.keywords,
+ "keywords_w": ", ".join(args.keywords_w),
+ "w_stararg": args.w_stararg,
+ "w_starstararg": args.w_starstararg,
'Arg': self.nameof(Arguments) }
if op.opname == "hint":
return "%s = %s" % (self.expr(op.result, localscope),
More information about the Pypy-commit
mailing list