Cython 0.23.4: Crash with Template Stuff
Cython is crashing on me when I compile. See below. -- Elizabeth cython --version Cython version 0.23.4 Error compiling Cython file: ------------------------------------------------------------ ... # cdef int flags def test_double_blitz(a): cdef vector[int] v cdef cblitz.Array[double,1] a_b a_b = cibmisc.np_to_blitz[double,1](a, b'var', [-1]) ^ ------------------------------------------------------------ /Users/rpfische/git/ibmisc/pylib/ibmisc.pyx:38:26: Compiler crash in AnalyseExpressionsTransform ModuleNode.body = StatListNode(ibmisc.pyx:1:0) StatListNode.stats[3] = StatListNode(ibmisc.pyx:35:0) StatListNode.stats[0] = DefNode(ibmisc.pyx:35:0, modifiers = [...]/0, name = 'test_double_blitz', num_required_args = 1, py_wrapper_required = True, reqd_kw_flags_cname = '0', used = True) File 'Nodes.py', line 430, in analyse_expressions: StatListNode(ibmisc.pyx:36:1) File 'Nodes.py', line 4775, in analyse_expressions: SingleAssignmentNode(ibmisc.pyx:38:36) File 'Nodes.py', line 4887, in analyse_types: SingleAssignmentNode(ibmisc.pyx:38:36) File 'ExprNodes.py', line 4640, in analyse_types: SimpleCallNode(ibmisc.pyx:38:36, analysed = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3109, in analyse_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3419, in analyse_base_and_index_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) Compiler crash traceback from this point on: File "/Users/rpfische/macports/mpgompi-4.9.3/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Cython/Compiler/ExprNodes.py", line 3419, in analyse_base_and_index_types elif len(base_type.templates) != len(self.type_indices): TypeError: object of type 'NoneType' has no len() make[2]: *** [pylib/ibmisc.cpp] Error 1 make[2]: *** Deleting file `pylib/ibmisc.cpp' make[1]: *** [pylib/CMakeFiles/ibmisc_so.dir/all] Error 2 make: *** [all] Error 2
Without knowing more about the "blitz" stuff, it is hard to provide detailed help. However, it looks like you have a template taking a non-typename as a parameter, which is not currently supported in Cython. In other words, the 1 in [double,1] is not a type name, and that causes Cython to give up. There is a pull request in progress to fix this issue on GitHub, but I'm not sure what the latest is on that. On Sun, Jan 31, 2016 at 11:07 PM Elizabeth Fischer <rpf2116@columbia.edu> wrote:
Cython is crashing on me when I compile. See below.
-- Elizabeth
cython --version
Cython version 0.23.4
Error compiling Cython file: ------------------------------------------------------------ ... # cdef int flags
def test_double_blitz(a): cdef vector[int] v cdef cblitz.Array[double,1] a_b a_b = cibmisc.np_to_blitz[double,1](a, b'var', [-1]) ^ ------------------------------------------------------------
/Users/rpfische/git/ibmisc/pylib/ibmisc.pyx:38:26: Compiler crash in AnalyseExpressionsTransform
ModuleNode.body = StatListNode(ibmisc.pyx:1:0) StatListNode.stats[3] = StatListNode(ibmisc.pyx:35:0) StatListNode.stats[0] = DefNode(ibmisc.pyx:35:0, modifiers = [...]/0, name = 'test_double_blitz', num_required_args = 1, py_wrapper_required = True, reqd_kw_flags_cname = '0', used = True) File 'Nodes.py', line 430, in analyse_expressions: StatListNode(ibmisc.pyx:36:1) File 'Nodes.py', line 4775, in analyse_expressions: SingleAssignmentNode(ibmisc.pyx:38:36) File 'Nodes.py', line 4887, in analyse_types: SingleAssignmentNode(ibmisc.pyx:38:36) File 'ExprNodes.py', line 4640, in analyse_types: SimpleCallNode(ibmisc.pyx:38:36, analysed = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3109, in analyse_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3419, in analyse_base_and_index_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True)
Compiler crash traceback from this point on: File "/Users/rpfische/macports/mpgompi-4.9.3/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Cython/Compiler/ExprNodes.py", line 3419, in analyse_base_and_index_types elif len(base_type.templates) != len(self.type_indices): TypeError: object of type 'NoneType' has no len() make[2]: *** [pylib/ibmisc.cpp] Error 1 make[2]: *** Deleting file `pylib/ibmisc.cpp' make[1]: *** [pylib/CMakeFiles/ibmisc_so.dir/all] Error 2 make: *** [all] Error 2
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
I think you've figured out what's going on. Short of adding the feature, is it possible to add a better error message, rather than what looks like a random crash? -- Elizabeth On Mon, Feb 1, 2016 at 8:08 PM, Kevin Thornton <krthornt@uci.edu> wrote:
Without knowing more about the "blitz" stuff, it is hard to provide detailed help.
However, it looks like you have a template taking a non-typename as a parameter, which is not currently supported in Cython.
In other words, the 1 in [double,1] is not a type name, and that causes Cython to give up. There is a pull request in progress to fix this issue on GitHub, but I'm not sure what the latest is on that.
On Sun, Jan 31, 2016 at 11:07 PM Elizabeth Fischer <rpf2116@columbia.edu> wrote:
Cython is crashing on me when I compile. See below.
-- Elizabeth
cython --version
Cython version 0.23.4
Error compiling Cython file: ------------------------------------------------------------ ... # cdef int flags
def test_double_blitz(a): cdef vector[int] v cdef cblitz.Array[double,1] a_b a_b = cibmisc.np_to_blitz[double,1](a, b'var', [-1]) ^ ------------------------------------------------------------
/Users/rpfische/git/ibmisc/pylib/ibmisc.pyx:38:26: Compiler crash in AnalyseExpressionsTransform
ModuleNode.body = StatListNode(ibmisc.pyx:1:0) StatListNode.stats[3] = StatListNode(ibmisc.pyx:35:0) StatListNode.stats[0] = DefNode(ibmisc.pyx:35:0, modifiers = [...]/0, name = 'test_double_blitz', num_required_args = 1, py_wrapper_required = True, reqd_kw_flags_cname = '0', used = True) File 'Nodes.py', line 430, in analyse_expressions: StatListNode(ibmisc.pyx:36:1) File 'Nodes.py', line 4775, in analyse_expressions: SingleAssignmentNode(ibmisc.pyx:38:36) File 'Nodes.py', line 4887, in analyse_types: SingleAssignmentNode(ibmisc.pyx:38:36) File 'ExprNodes.py', line 4640, in analyse_types: SimpleCallNode(ibmisc.pyx:38:36, analysed = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3109, in analyse_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3419, in analyse_base_and_index_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True)
Compiler crash traceback from this point on: File "/Users/rpfische/macports/mpgompi-4.9.3/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Cython/Compiler/ExprNodes.py", line 3419, in analyse_base_and_index_types elif len(base_type.templates) != len(self.type_indices): TypeError: object of type 'NoneType' has no len() make[2]: *** [pylib/ibmisc.cpp] Error 1 make[2]: *** Deleting file `pylib/ibmisc.cpp' make[1]: *** [pylib/CMakeFiles/ibmisc_so.dir/all] Error 2 make: *** [all] Error 2
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
That'd be nice, but the main developers will have to weigh in on that. On Mon, Feb 1, 2016 at 21:14 Elizabeth Fischer <rpf2116@columbia.edu> wrote:
I think you've figured out what's going on. Short of adding the feature, is it possible to add a better error message, rather than what looks like a random crash?
-- Elizabeth
On Mon, Feb 1, 2016 at 8:08 PM, Kevin Thornton <krthornt@uci.edu> wrote:
Without knowing more about the "blitz" stuff, it is hard to provide detailed help.
However, it looks like you have a template taking a non-typename as a parameter, which is not currently supported in Cython.
In other words, the 1 in [double,1] is not a type name, and that causes Cython to give up. There is a pull request in progress to fix this issue on GitHub, but I'm not sure what the latest is on that.
On Sun, Jan 31, 2016 at 11:07 PM Elizabeth Fischer <rpf2116@columbia.edu> wrote:
Cython is crashing on me when I compile. See below.
-- Elizabeth
cython --version
Cython version 0.23.4
Error compiling Cython file: ------------------------------------------------------------ ... # cdef int flags
def test_double_blitz(a): cdef vector[int] v cdef cblitz.Array[double,1] a_b a_b = cibmisc.np_to_blitz[double,1](a, b'var', [-1]) ^ ------------------------------------------------------------
/Users/rpfische/git/ibmisc/pylib/ibmisc.pyx:38:26: Compiler crash in AnalyseExpressionsTransform
ModuleNode.body = StatListNode(ibmisc.pyx:1:0) StatListNode.stats[3] = StatListNode(ibmisc.pyx:35:0) StatListNode.stats[0] = DefNode(ibmisc.pyx:35:0, modifiers = [...]/0, name = 'test_double_blitz', num_required_args = 1, py_wrapper_required = True, reqd_kw_flags_cname = '0', used = True) File 'Nodes.py', line 430, in analyse_expressions: StatListNode(ibmisc.pyx:36:1) File 'Nodes.py', line 4775, in analyse_expressions: SingleAssignmentNode(ibmisc.pyx:38:36) File 'Nodes.py', line 4887, in analyse_types: SingleAssignmentNode(ibmisc.pyx:38:36) File 'ExprNodes.py', line 4640, in analyse_types: SimpleCallNode(ibmisc.pyx:38:36, analysed = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3109, in analyse_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3419, in analyse_base_and_index_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True)
Compiler crash traceback from this point on: File "/Users/rpfische/macports/mpgompi-4.9.3/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Cython/Compiler/ExprNodes.py", line 3419, in analyse_base_and_index_types elif len(base_type.templates) != len(self.type_indices): TypeError: object of type 'NoneType' has no len() make[2]: *** [pylib/ibmisc.cpp] Error 1 make[2]: *** Deleting file `pylib/ibmisc.cpp' make[1]: *** [pylib/CMakeFiles/ibmisc_so.dir/all] Error 2 make: *** [all] Error 2
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
+1 to a better error message. Pull requests accepted :). As for actually implementing this feature, the pull request has been bogged down in trying to accept expressions and types in exactly the right places. (It's messy because one needs both Fizzle[bubble*] and Fizzle[bubble*bubble] to parse... On Mon, Feb 1, 2016 at 9:32 PM, Kevin Thornton <krthornt@uci.edu> wrote:
That'd be nice, but the main developers will have to weigh in on that.
On Mon, Feb 1, 2016 at 21:14 Elizabeth Fischer <rpf2116@columbia.edu> wrote:
I think you've figured out what's going on. Short of adding the feature, is it possible to add a better error message, rather than what looks like a random crash?
-- Elizabeth
On Mon, Feb 1, 2016 at 8:08 PM, Kevin Thornton <krthornt@uci.edu> wrote:
Without knowing more about the "blitz" stuff, it is hard to provide detailed help.
However, it looks like you have a template taking a non-typename as a parameter, which is not currently supported in Cython.
In other words, the 1 in [double,1] is not a type name, and that causes Cython to give up. There is a pull request in progress to fix this issue on GitHub, but I'm not sure what the latest is on that.
On Sun, Jan 31, 2016 at 11:07 PM Elizabeth Fischer <rpf2116@columbia.edu> wrote:
Cython is crashing on me when I compile. See below.
-- Elizabeth
cython --version
Cython version 0.23.4
Error compiling Cython file: ------------------------------------------------------------ ... # cdef int flags
def test_double_blitz(a): cdef vector[int] v cdef cblitz.Array[double,1] a_b a_b = cibmisc.np_to_blitz[double,1](a, b'var', [-1]) ^ ------------------------------------------------------------
/Users/rpfische/git/ibmisc/pylib/ibmisc.pyx:38:26: Compiler crash in AnalyseExpressionsTransform
ModuleNode.body = StatListNode(ibmisc.pyx:1:0) StatListNode.stats[3] = StatListNode(ibmisc.pyx:35:0) StatListNode.stats[0] = DefNode(ibmisc.pyx:35:0, modifiers = [...]/0, name = 'test_double_blitz', num_required_args = 1, py_wrapper_required = True, reqd_kw_flags_cname = '0', used = True) File 'Nodes.py', line 430, in analyse_expressions: StatListNode(ibmisc.pyx:36:1) File 'Nodes.py', line 4775, in analyse_expressions: SingleAssignmentNode(ibmisc.pyx:38:36) File 'Nodes.py', line 4887, in analyse_types: SingleAssignmentNode(ibmisc.pyx:38:36) File 'ExprNodes.py', line 4640, in analyse_types: SimpleCallNode(ibmisc.pyx:38:36, analysed = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3109, in analyse_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True) File 'ExprNodes.py', line 3419, in analyse_base_and_index_types: IndexNode(ibmisc.pyx:38:26, is_called = 1, is_subscript = True, result_is_used = True, use_managed_ref = True)
Compiler crash traceback from this point on: File "/Users/rpfische/macports/mpgompi-4.9.3/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/Cython/Compiler/ExprNodes.py", line 3419, in analyse_base_and_index_types elif len(base_type.templates) != len(self.type_indices): TypeError: object of type 'NoneType' has no len() make[2]: *** [pylib/ibmisc.cpp] Error 1 make[2]: *** Deleting file `pylib/ibmisc.cpp' make[1]: *** [pylib/CMakeFiles/ibmisc_so.dir/all] Error 2 make: *** [all] Error 2
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel
participants (3)
-
Elizabeth Fischer -
Kevin Thornton -
Robert Bradshaw