Favian Contreras | 14 Nov 13:46 2014
Picon

[Cython] Location where extern declarations are parsed

Hello all,

Does anyone know where the (c++) external declarations are parsed? I am specifically looking for where external function pointers are parsed by the compiler. I noticed that all functions are parsed in some way in Symtab.py, but this includes all of the inherited methods from python and the c files within Cython, and I'm thinking there is a more specific place where external function pointers parsed.

Cheers,
Favian Contreras
<div><div dir="ltr">
<div>Hello all,<br><br>
</div>
<div>Does anyone know where the (c++) external declarations are parsed? I am specifically looking for where external function pointers are parsed by the compiler. I noticed that all functions are parsed in some way in Symtab.py, but this includes all of the inherited methods from python and the c files within Cython, and I'm thinking there is a more specific place where external function pointers parsed.<br><br>
</div>
<div>Cheers,<br>
</div>
<div>Favian Contreras<br>
</div>
</div></div>
Rich Leigh | 10 Nov 16:35 2014
Picon

[Cython] Compiler crash in cython 0.21.1 DebugTransform

Hi all - I get the following compiler crash from cython 0.21.1 (from pip) when compiling a C++ module with debugging. It's fine without the --gdb option.

[1/3] Compiling Cython CXX source for [project]...
FAILED: cd [project_build] && cython --cplus -I [project_src] -2 --gdb --output-file [project_build]/[project].cxx [project_src]/[project].pyx

Error compiling Cython file:
------------------------------------------------------------
...

    def merge(self):
        cdef cpp_string ofnametmp = self.ofname + ".tmp"
        merge[cpp_vector[cpp_string]](self.sources, ofnametmp.c_str())
                           ^
------------------------------------------------------------

[project_src]/[project].pyx:241:28: Compiler crash in DebugTransform

ModuleNode.body = StatListNode([project].pyx:1:0)
StatListNode.stats[12] = StatListNode([project].pyx:227:5)
StatListNode.stats[0] = CompilerDirectivesNode([project].pyx:227:5)
CompilerDirectivesNode.body = StatListNode([project].pyx:227:5)
StatListNode.stats[0] = CClassDefNode([project].pyx:227:5,
    as_name = u'Merge',
    class_name = u'Merge',
    decorators = [...]/0,
    module_name = u'',
    visibility = u'private')
CClassDefNode.body = StatListNode([project].pyx:228:4)
StatListNode.stats[1] = DefNode([project].pyx:238:4,
    modifiers = [...]/0,
    module_name = u'[Project]',
    name = u'merge',
    num_required_args = 1,
    py_wrapper_required = True,
    qualname = u'Merge.merge',
    reqd_kw_flags_cname = '0',
    used = True)
DefNode.body = StatListNode([project].pyx:239:8)
StatListNode.stats[0] = ExprStatNode([project].pyx:240:41)
ExprStatNode.expr = SimpleCallNode([project].pyx:240:41,
    analysed = True,
    is_temp = 1,
    use_managed_ref = True)
SimpleCallNode.function = IndexNode([project].pyx:240:17,
    is_called = 1,
    is_subscript = True,
    result_is_used = True,
    type_indices = [...]/1,
    use_managed_ref = True)
IndexNode.index = IndexNode([project].pyx:240:28,
    is_subscript = True,
    result_is_used = True,
    use_managed_ref = True)
IndexNode.base = NameNode([project].pyx:240:28,
    cf_maybe_null = True,
    is_name = True,
    name = u'cpp_vector',
    result_is_used = True,
    use_managed_ref = True)

Compiler crash traceback from this point on:
  File "Cython/Compiler/Visitor.py", line 173, in Cython.Compiler.Visitor.TreeVisitor._visit (cython/Cython/Compiler/Visitor.c:4449)
    return handler_method(obj)
  File "python2.7/site-packages/Cython/Compiler/ParseTreeTransforms.py", line 2937, in visit_NameNode
    node.type.is_cfunction and
AttributeError: 'NoneType' object has no attribute 'is_cfunction'


In my pyx file, cpp_vector and cpp_string are as follows:

from libcpp.vector cimport vector as cpp_vector
from libcpp.string cimport string as cpp_string

and merge (my C++ function, though I've also got the python def above of a method with the same name) has this signature:

   cdef void merge[T](const T&, const char *) except+

I've managed to fix it by turning line 2937 in ParseTreeTransforms.py from

2937:            node.type.is_cfunction and

to

2937:            getattr(node.type, 'is_cfunction', False) and

which seems to do the trick.

I did a quick google to see if anybody else had this issue, but it seems like a fresh bug. Not sure if this is the correct solution though, or whether I've simply buried an underlying issue.




<div><div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">Hi all - I get the following compiler crash from cython 0.21.1 (from pip) when compiling a C++ module with debugging. It's fine without the --gdb option.<br><div>
<br>[1/3] Compiling Cython CXX source for [project]...<br>FAILED: cd [project_build] &amp;&amp; cython --cplus -I [project_src] -2 --gdb --output-file [project_build]/[project].cxx [project_src]/[project].pyx<br><br>Error compiling Cython file:<br>------------------------------------------------------------<br>...<br><br>&nbsp;&nbsp;&nbsp; def merge(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cdef cpp_string ofnametmp = self.ofname + ".tmp"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; merge[cpp_vector[cpp_string]](self.sources, ofnametmp.c_str())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^<br>------------------------------------------------------------<br><br>[project_src]/[project].pyx:241:28: Compiler crash in DebugTransform<br><br>ModuleNode.body = StatListNode([project].pyx:1:0)<br>StatListNode.stats[12] = StatListNode([project].pyx:227:5)<br>StatListNode.stats[0] = CompilerDirectivesNode([project].pyx:227:5)<br>CompilerDirectivesNode.body = StatListNode([project].pyx:227:5)<br>StatListNode.stats[0] = CClassDefNode([project].pyx:227:5,<br>&nbsp;&nbsp;&nbsp; as_name = u'Merge',<br>&nbsp;&nbsp;&nbsp; class_name = u'Merge',<br>&nbsp;&nbsp;&nbsp; decorators = [...]/0,<br>&nbsp;&nbsp;&nbsp; module_name = u'',<br>&nbsp;&nbsp;&nbsp; visibility = u'private')<br>CClassDefNode.body = StatListNode([project].pyx:228:4)<br>StatListNode.stats[1] = DefNode([project].pyx:238:4,<br>&nbsp;&nbsp;&nbsp; modifiers = [...]/0,<br>&nbsp;&nbsp;&nbsp; module_name = u'[Project]',<br>&nbsp;&nbsp;&nbsp; name = u'merge',<br>&nbsp;&nbsp;&nbsp; num_required_args = 1,<br>&nbsp;&nbsp;&nbsp; py_wrapper_required = True,<br>&nbsp;&nbsp;&nbsp; qualname = u'Merge.merge',<br>&nbsp;&nbsp;&nbsp; reqd_kw_flags_cname = '0',<br>&nbsp;&nbsp;&nbsp; used = True)<br>DefNode.body = StatListNode([project].pyx:239:8)<br>StatListNode.stats[0] = ExprStatNode([project].pyx:240:41)<br>ExprStatNode.expr = SimpleCallNode([project].pyx:240:41,<br>&nbsp;&nbsp;&nbsp; analysed = True,<br>&nbsp;&nbsp;&nbsp; is_temp = 1,<br>&nbsp;&nbsp;&nbsp; use_managed_ref = True)<br>SimpleCallNode.function = IndexNode([project].pyx:240:17,<br>&nbsp;&nbsp;&nbsp; is_called = 1,<br>&nbsp;&nbsp;&nbsp; is_subscript = True,<br>&nbsp;&nbsp;&nbsp; result_is_used = True,<br>&nbsp;&nbsp;&nbsp; type_indices = [...]/1,<br>&nbsp;&nbsp;&nbsp; use_managed_ref = True)<br>IndexNode.index = IndexNode([project].pyx:240:28,<br>&nbsp;&nbsp;&nbsp; is_subscript = True,<br>&nbsp;&nbsp;&nbsp; result_is_used = True,<br>&nbsp;&nbsp;&nbsp; use_managed_ref = True)<br>IndexNode.base = NameNode([project].pyx:240:28,<br>&nbsp;&nbsp;&nbsp; cf_maybe_null = True,<br>&nbsp;&nbsp;&nbsp; is_name = True,<br>&nbsp;&nbsp;&nbsp; name = u'cpp_vector',<br>&nbsp;&nbsp;&nbsp; result_is_used = True,<br>&nbsp;&nbsp;&nbsp; use_managed_ref = True)<br><br>Compiler crash traceback from this point on:<br>&nbsp; File "Cython/Compiler/Visitor.py", line 173, in Cython.Compiler.Visitor.TreeVisitor._visit (cython/Cython/Compiler/Visitor.c:4449)<br>&nbsp;&nbsp;&nbsp; return handler_method(obj)<br>&nbsp; File "python2.7/site-packages/Cython/Compiler/ParseTreeTransforms.py", line 2937, in visit_NameNode<br>&nbsp;&nbsp;&nbsp; node.type.is_cfunction and<br>AttributeError: 'NoneType' object has no attribute 'is_cfunction'<br><br><br>
</div>
<div>In my pyx file, cpp_vector and cpp_string are as follows:<br>
</div>
<div>
<br>from libcpp.vector cimport vector as cpp_vector<br>from libcpp.string cimport string as cpp_string<br><br>
</div>
<div>and merge (my C++ function, though I've also got the python def above of a method with the same name) has this signature:<br><br>&nbsp;&nbsp; cdef void merge[T](const T&amp;, const char *) except+<br><br>
</div>
<div>I've managed to fix it by turning line 2937 in ParseTreeTransforms.py from<br><br>2937:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; node.type.is_cfunction and<br>
</div>
<div><br></div>
<div>to<br>
</div>
<div>
<br>2937: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getattr(node.type, 'is_cfunction', False) and<br><br>
</div>
<div>which seems to do the trick.<br><br>
</div>
<div>I did a quick google to see if anybody else had this issue, but it seems like a fresh bug. Not sure if this is the correct solution though, or whether I've simply buried an underlying issue.<br>
</div>
<div><br></div>
<div>
<br><br>
</div>
</div>
</div>
<br>
</div></div>
Ondrej Certik | 7 Nov 18:13 2014
Picon

[Cython] Cython sometimes fails to build on Travis

Hi,

Cython sometimes fails to build on Travis for various projects. If it
fails, it always ends with this error:

https://gist.github.com/certik/08f16dd572170c17d956

Here are some instances of this failure in other projects:

https://github.com/sympy/csympy/issues/308
https://github.com/scipy/scipy/pull/4126#issuecomment-62162812

Any ideas what is going on?

Thanks,
Ondrej
Robert Bradshaw | 6 Nov 08:34 2014
Picon

[Cython] New function (pointer) syntax.

I'd like to propose a more pythonic way to declare function pointer
types, namelye

    type0 (*[ident])(type1, type2, type3)

would instead become

    (type1, type2, type3) -> type0 [ident]

I have a pull request up at https://github.com/cython/cython/pull/333;
what do people think?

- Robert
Zaxebo Yaxebo | 4 Nov 02:08 2014
Picon

[Cython] [FEATURE REQUEST] VisualBasic "Option Explicit" / Perl "use strict" -- bringing variable pre-declaration to cython optionally

Subject: [FEATURE REQUEST] VisualBasic "Option Explicit" / Perl "use strict" -- bringing variable pre-declaration to cython optionally

===================================================
Background:
already cython supports the following:
   #program1
    a1  = cython.declare(cython.int) # cdef int a1
    a2  = cython.declare(cython.double,0.57721) # cdef double a2 =0.57721
   #end program1
====================================================
The New Feature Request:

but will there be  - a feature in cython, in which - even though we are "not" declaring "data types" of variables, but we are declaring variables themselves. like:
------------
   #program2
   cython.option_strict(True)                                         ## <------- see this statement
    a1  = cython.declare(cython.int) # cdef int a1
    a2  = cython.declare(cython.double,0.57721) # cdef double a2 =0.57721
    a3 = cython.declare(cython.var) #cdef var a3                      ## <------- see this statement
    a4 = cython.declare(cython.var,0.57721) #cdef var a4=0.57721      ## <------- see this statement
   
      
    a3 = 10                 # <----- This statement will not give error
    b1 = 10                 # <----- This statement will give warning/error, as variable b1 was not declared and cython.option_strict() is enabled
   #end program2
---------

Here we have declared the variables a3 and a4 using "cdef var", but we have not declared their data types. For a1 and a2, we have declared their datatypes too.
  But now, as cython.option_strict() is enabled(i.e., true); 

      HENCE "b1=10"  statement will give error when cython compiles, because "b1" variable which was not declared in any sense using "cython.declare(cython.var) or cdef var" .

      But "a3 = 10" statement in above program will not warning/error,as "a3" is already declared var

NOTE: This feature request is analogous to VisualBasic's "Option Explicit" and perl's "use strict"

==================
Here are other people also requesting the similar thing:


Zaxebo1

<div><div dir="ltr">
<div>Subject: [FEATURE REQUEST] VisualBasic "Option Explicit" / Perl "use strict" -- bringing variable pre-declaration to cython optionally<br>
</div>
<div><br></div>
<div>===================================================</div>
<div>Background:</div>
<div>already cython supports the following:</div>
<div>&nbsp; &nbsp;#program1</div>
<div>&nbsp; &nbsp; a1 &nbsp;= cython.declare(<a href="http://cython.int">cython.int</a>) # cdef int a1</div>
<div>&nbsp; &nbsp; a2 &nbsp;= cython.declare(cython.double,0.57721) # cdef double a2 =0.57721</div>
<div>&nbsp; &nbsp;#end program1</div>
<div>====================================================</div>
<div>The New Feature Request:</div>
<div><br></div>
<div>but will there be &nbsp;- a feature in cython, in which - even though we are "not" declaring "data types" of variables, but we are declaring variables themselves. like:</div>
<div>------------</div>
<div>&nbsp; &nbsp;#program2</div>
<div>&nbsp; &nbsp;cython.option_strict(True) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ## &lt;------- see this statement</div>
<div>&nbsp; &nbsp; a1 &nbsp;= cython.declare(<a href="http://cython.int">cython.int</a>) # cdef int a1</div>
<div>&nbsp; &nbsp; a2 &nbsp;= cython.declare(cython.double,0.57721) # cdef double a2 =0.57721</div>
<div>&nbsp; &nbsp; a3 = cython.declare(cython.var) #cdef var a3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;## &lt;------- see this statement</div>
<div>&nbsp; &nbsp; a4 = cython.declare(cython.var,0.57721) #cdef var a4=0.57721 &nbsp; &nbsp; &nbsp;## &lt;------- see this statement</div>
<div>&nbsp; &nbsp;</div>
<div>&nbsp; &nbsp; &nbsp;&nbsp;</div>
<div>&nbsp; &nbsp; a3 = 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &lt;----- This statement will not give error</div>
<div>&nbsp; &nbsp; b1 = 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &lt;----- This statement will give warning/error, as variable b1 was not declared and cython.option_strict() is enabled</div>
<div>&nbsp; &nbsp;#end program2</div>
<div>---------</div>
<div><br></div>
<div>Here we have declared the variables a3 and a4 using "cdef var", but we have not declared their data types. For a1 and a2, we have declared their datatypes too.</div>
<div>&nbsp; But now, as cython.option_strict() is enabled(i.e., true);&nbsp;</div>
<div><br></div>
<div>&nbsp; &nbsp; &nbsp; HENCE "b1=10" &nbsp;statement will give error when cython compiles, because "b1" variable which was not declared in any sense using "cython.declare(cython.var) or cdef var" .</div>
<div><br></div>
<div>&nbsp; &nbsp; &nbsp; But "a3 = 10" statement in above program will not warning/error,as "a3" is already declared var</div>
<div><br></div>
<div>NOTE: This feature request is analogous to VisualBasic's "Option Explicit" and perl's "use strict"</div>
<div><br></div>
<div>==================</div>
<div>Here are other people also requesting the similar thing:</div>
<div><a href="http://stackoverflow.com/questions/613364/is-there-a-need-for-a-use-strict-python-compiler">http://stackoverflow.com/questions/613364/is-there-a-need-for-a-use-strict-python-compiler</a></div>
<div><a href="http://stackoverflow.com/questions/13425715/does-python-have-a-use-strict-and-use-warnings-like-in-perl">http://stackoverflow.com/questions/13425715/does-python-have-a-use-strict-and-use-warnings-like-in-perl</a></div>
<div><a href="http://stevesprogramming.blogspot.in/2013/03/why-python-needs-perls-use-strict.html">http://stevesprogramming.blogspot.in/2013/03/why-python-needs-perls-use-strict.html</a></div>
<div><a href="http://bytes.com/topic/python/answers/632587-python-feature-request-explicit-variable-declarations">http://bytes.com/topic/python/answers/632587-python-feature-request-explicit-variable-declarations</a></div>
<div><br></div>
<div><br></div>
<div>Zaxebo1</div>
<div><br></div>
</div></div>
Daniele Nicolodi | 25 Oct 03:36 2014
Picon

[Cython] [PATCH] explain how to compile C++ extensions up to Cython 0.21

---
 docs/src/userguide/wrapping_CPlusPlus.rst | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/docs/src/userguide/wrapping_CPlusPlus.rst b/docs/src/userguide/wrapping_CPlusPlus.rst
index 59c89a1..5119b63 100644
--- a/docs/src/userguide/wrapping_CPlusPlus.rst
+++ b/docs/src/userguide/wrapping_CPlusPlus.rst
 <at>  <at>  -141,6 +141,21  <at>  <at>  Note that the ``language`` option has no effect on user provided Extension
 objects that are passed into ``cythonize()``.  It is only used for modules
 found by file name (as in the example above).

+The ``cythonize()`` function in Cython versions up to 0.21 does not
+recognize the ``language`` option and it needs to be specified as an
+option to an :class:`Extension` that describes your extension and that
+is then handled by ``cythonize()`` as follows::
+
+   from distutils.core import setup, Extension
+   from Cython.Build import cythonize
+
+   setup(ext_modules = cythonize(Extension(
+              "rect",                                # the extesion name
+              sources=["rect.pyx", "Rectangle.cpp"], # the Cython source and
+                                                     # additional C++ source files
+              language="c++",                        # generate and compile C++ code
+         )))
+
 The options can also be passed directly from the source file, which is
 often preferable (and overrides any global option).  Starting with
 version 0.17, Cython also allows to pass external source files into the
--

-- 
2.1.1

Shang Yu | 20 Oct 00:54 2014
Picon

[Cython] Fwd: wrong c file

Sorry . I've found it's because of the following line

#cython:callspec="__hello",language_level=2

---------- Forwarded message ----------
From: Shang Yu <yusunn@...>
Date: 2014-10-19 22:10 GMT+08:00
Subject: wrong c file
To: cython-devel@...

Hi dear all,
I'm trying cyhotn(0.21) with following code (hello.pyx)

cdef void cfun():
print "hello world"

if __name__ == "__main__":
cfun()

the generated c file has following line

static void "__hello" __pyx_f_5hello_cfun(void) {

which can't compiled by c compiler , what's wrong with this ?
Many thanks !!!
Shang Yu | 19 Oct 16:10 2014
Picon

[Cython] wrong c file

Hi dear all,
I'm trying cyhotn(0.21) with following code (hello.pyx)

cdef void cfun():
print "hello world"

if __name__ == "__main__":
cfun()

the generated c file has following line

static void "__hello" __pyx_f_5hello_cfun(void) {

which can't compiled by c compiler , what's wrong with this ?
Many thanks !!!
Patrick Snape | 15 Oct 20:27 2014
Picon

[Cython] Strange bug? with np.int64_t

System information:

    Ubuntu 14.04 x64
    gcc: Version 4.8.2 (Ubuntu 4.8.2-19ubuntu1), Target: x86_64-linux-gnu


To reproduce:

    # distutils: language = c++
    import numpy as np
    cimport numpy as np
    cimport cython


    cdef test_np_int64(const np.int64_t test_var):
        cdef np.int64_t error = test_var / 2


This fails to compile with the error:

    In function ‘const __pyx_t_5numpy_int64_t     __Pyx_div___pyx_t_5numpy_int64_t__const__(__pyx_t_5numpy_int64_t, __pyx_t_5numpy_int64_t)’:
    error: assignment of read-only variable ‘q’
         q -= ((r != 0) & ((r ^ b) < 0));


Using just a regular int type:

    # distutils: language = c++
    import numpy as np
    cimport numpy as np
    cimport cython


    cdef test_int(const int test_var):
        cdef int no_error = test_var / 2

Works as expected.

Fixing this is as simple as removing the const that is being complained about. I assume this is a bug? I can't see why I wouldn't be allowed to perform that operation?

Regards,

Patrick
<div><div dir="ltr">
<div>System information:</div>
<div><br></div>
<div>&nbsp; &nbsp; Ubuntu 14.04 x64</div>
<div>&nbsp; &nbsp; gcc: Version 4.8.2 (Ubuntu 4.8.2-19ubuntu1), Target: x86_64-linux-gnu</div>
<div><br></div>
<div><br></div>To reproduce:<div><br></div>
<div>
<div>&nbsp; &nbsp; # distutils: language = c++</div>
<div>&nbsp; &nbsp;&nbsp;import numpy as np</div>
<div>&nbsp; &nbsp;&nbsp;cimport numpy as np</div>
<div>&nbsp; &nbsp;&nbsp;cimport cython</div>
<div><br></div>
<div><br></div>
<div>&nbsp; &nbsp;&nbsp;cdef test_np_int64(const np.int64_t test_var):</div>
<div>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;cdef np.int64_t error = test_var / 2</div>
<div><br></div>
<div><br></div>
</div>
<div>This fails to compile with the error:</div>
<div><br></div>
<div>
<div>&nbsp; &nbsp;&nbsp;In function &lsquo;const __pyx_t_5numpy_int64_t&nbsp;&nbsp; &nbsp;&nbsp;__Pyx_div___pyx_t_5numpy_int64_t__const__(__pyx_t_5numpy_int64_t, __pyx_t_5numpy_int64_t)&rsquo;:</div>
<div>&nbsp; &nbsp;&nbsp;error: assignment of read-only variable &lsquo;q&rsquo;</div>
<div>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;q -= ((r != 0) &amp; ((r ^ b) &lt; 0));</div>
</div>
<div><br></div>
<div><br></div>
<div>Using just a regular int type:</div>
<div><br></div>
<div>
<div>
<div>&nbsp; &nbsp; # distutils: language = c++</div>
<div>&nbsp; &nbsp;&nbsp;import numpy as np</div>
<div>&nbsp; &nbsp;&nbsp;cimport numpy as np</div>
<div>&nbsp; &nbsp;&nbsp;cimport cython</div>
</div>
<div><br></div>
<div><br></div>
<div>&nbsp; &nbsp; cdef test_int(const int test_var):</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; cdef int no_error = test_var / 2</div>
</div>
<div><br></div>
<div>Works as expected.</div>
<div><br></div>
<div>Fixing this is as simple as removing the const that is being complained about. I assume this is a bug? I can't see why I wouldn't be allowed to perform that operation?</div>
<div><br></div>
<div>Regards,</div>
<div><br></div>
<div>Patrick</div>
</div></div>
Stefan Behnel | 12 Oct 06:52 2014
Picon

[Cython] accidental breakage of 0.20.x branch

Hi,

I accidentally updated the 0.20.x branch to recent 0.21.x (typo), and then
had to force push it over to fix it. Sorry for that, I hope it doesn't
cause too much trouble.

Stefan
Николай | 10 Oct 15:04 2014
Picon

[Cython] compiler bug in 0.21

I found a bug in cython v0.21
Test source is attached.

regards,
Niki
--
|  (\_/)  This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
Attachment (cython_err.pyx): text/x-python, 182 bytes
Attachment (cy.trace): application/octet-stream, 6139 bytes
<div><div dir="ltr">I found a bug in cython v0.21<div>Test source is attached.<br clear="all"><div><br></div>
<div>regards,</div>
<div>Niki</div>-- <br>|&nbsp; (\_/)&nbsp; This is Bunny. Copy and paste<br>| (='.'=) Bunny into your signature to help<br>| (")_(") him gain world domination
</div>
</div></div>

Gmane