[Pyrex] Exception when calling allocate_temps() on DictNode

Stefan Behnel behnel_ml at gkec.informatik.tu-darmstadt.de
Wed Mar 29 21:05:26 CEST 2006


Hi,

I get the exception below when compiling my code. The problem is that operand2
in "self.operand2.allocate_temps(env, self.result)" is a DictNode. In that
class, allocate_temps takes only one argument. It is called with two arguments
from "BoolBinopNode.allocate_temps()".

I can't tell what part of my code triggers that, but when I replace the method
signature in DictNode
    def allocate_temps(self, env):
by
    def allocate_temps(self, env, *args):
it passes.

Can anyone tell me if such a change can break anything?

Stefan


Traceback (most recent call last):
  File "setup.py", line 88, in ?
    extra_link_args = flags('xslt-config --libs')
  File "/usr/lib64/python2.4/distutils/core.py", line 149, in setup
    dist.run_commands()
  File "/usr/lib64/python2.4/distutils/dist.py", line 946, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python2.4/distutils/dist.py", line 966, in run_command
    cmd_obj.run()
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 279, in run
    self.build_extensions()
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 405, in
build_extensions
    self.build_extension(ext)
  File "/usr/lib64/python2.4/distutils/command/build_ext.py", line 442, in
build_extension
    sources = self.swig_sources(sources, ext)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Distutils/build_ext.py", line
52, in swig_sources
    self.pyrex_compile(source)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Distutils/build_ext.py", line
66, in pyrex_compile
    result = Pyrex.Compiler.Main.compile(source)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Main.py", line 248, in
compile
    return context.compile(source, options)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Main.py", line 175, in
compile
    tree.process_implementation(scope, result)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 114,
in process_implementation
    self.generate_c_code(env, result)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 177,
in generate_c_code
    self.body.generate_function_definitions(env, code)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 1287,
in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 1287,
in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 2396,
in generate_function_definitions
    self.body.generate_function_definitions(
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 1287,
in generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 1657,
in generate_function_definitions
    self.body.analyse_expressions(lenv)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 1282,
in analyse_expressions
    stat.analyse_expressions(env)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 2474,
in analyse_expressions
    self.analyse_expressions_1(env)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/Nodes.py", line 2499,
in analyse_expressions_1
    self.rhs.allocate_temps(env)
  File "/home/me/source/Python/pyrex-svn/Pyrex/Compiler/ExprNodes.py", line
2472, in allocate_temps
    self.operand2.allocate_temps(env, self.result)
TypeError: allocate_temps() takes exactly 2 arguments (3 given)



More information about the Pyrex mailing list