I'm running Python 3.4.3 and Cython 0.23.4 under Gentoo Linux. I think I've found a bug in Cython. Steps to reproduce:

## test.py ##

import pyximport
pyximport.install()

import mymodule

print(mymodule.get(1, 2))

## mymodule.pyx ##

cdef int[2][3] arr = (
    (0, 1, 2),
    (3, 4, 5)
)

cpdef int get(int i, int j):
        return arr[i][j]

####

`python test.py` fails with the following traceback:

Traceback (most recent call last):
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 209, in load_module
    inplace=build_inplace, language_level=language_level)
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 186, in build_module
    reload_support=pyxargs.reload_support)
File "/usr/lib64/python3.4/site-packages/pyximport/pyxbuild.py", line 100, in pyx_to_dll
    dist.run_commands()
  File "/usr/lib64/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 164, in run
    _build_ext.build_ext.run(self)
File "/usr/lib64/python3.4/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 171, in build_extensions
    ext.sources = self.cython_sources(ext.sources, ext)
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 320, in cython_sources
    full_module_name=module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 677, in compile
    return compile_single(source, options, full_module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 630, in compile_single
    return run_pipeline(source, options, full_module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 487, in run_pipeline
    err, enddata = Pipeline.run_pipeline(pipeline, source)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Pipeline.py", line 328, in run_pipeline
    data = phase(data)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Pipeline.py", line 53, in generate_pyx_code_stage
    module_node.process_implementation(options, result)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 118, in process_implementation
    self.generate_c_code(env, options, result)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 348, in generate_c_code self.generate_module_init_func(modules[:-1], env, globalstate['init_module']) File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 2173, in generate_module_init_func
    self.body.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Nodes.py", line 442, in generate_execution_code
    stat.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/UtilNodes.py", line 334, in generate_execution_code
    self.body.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Nodes.py", line 5223, in generate_execution_code
    stat.generate_rhs_evaluation_code(code)
AttributeError: 'LetNode' object has no attribute 'generate_rhs_evaluation_code'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/pastafarianist/ownCloud/dev/sandbox/cython/test.py", line 4, in <module>
    import mymodule
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 435, in load_module
    language_level=self.language_level)
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 225, in load_module
    raise exc.with_traceback(tb)
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 209, in load_module
    inplace=build_inplace, language_level=language_level)
File "/usr/lib64/python3.4/site-packages/pyximport/pyximport.py", line 186, in build_module
    reload_support=pyxargs.reload_support)
File "/usr/lib64/python3.4/site-packages/pyximport/pyxbuild.py", line 100, in pyx_to_dll
    dist.run_commands()
  File "/usr/lib64/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib64/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 164, in run
    _build_ext.build_ext.run(self)
File "/usr/lib64/python3.4/distutils/command/build_ext.py", line 339, in run
    self.build_extensions()
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 171, in build_extensions
    ext.sources = self.cython_sources(ext.sources, ext)
File "/usr/lib64/python3.4/site-packages/Cython/Distutils/build_ext.py", line 320, in cython_sources
    full_module_name=module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 677, in compile
    return compile_single(source, options, full_module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 630, in compile_single
    return run_pipeline(source, options, full_module_name)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Main.py", line 487, in run_pipeline
    err, enddata = Pipeline.run_pipeline(pipeline, source)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Pipeline.py", line 328, in run_pipeline
    data = phase(data)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Pipeline.py", line 53, in generate_pyx_code_stage
    module_node.process_implementation(options, result)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 118, in process_implementation
    self.generate_c_code(env, options, result)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 348, in generate_c_code self.generate_module_init_func(modules[:-1], env, globalstate['init_module']) File "/usr/lib64/python3.4/site-packages/Cython/Compiler/ModuleNode.py", line 2173, in generate_module_init_func
    self.body.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Nodes.py", line 442, in generate_execution_code
    stat.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/UtilNodes.py", line 334, in generate_execution_code
    self.body.generate_execution_code(code)
File "/usr/lib64/python3.4/site-packages/Cython/Compiler/Nodes.py", line 5223, in generate_execution_code
    stat.generate_rhs_evaluation_code(code)
ImportError: Building module mymodule failed: ["AttributeError: 'LetNode' object has no attribute 'generate_rhs_evaluation_code'\n"]
_______________________________________________
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel

Reply via email to