Clean up the declaration of constants in numpy.pxd.
There are a large number of constants declared with 'cdef enum' in numpy.pxd. Most of them did not correctly match the definitions in the numpy headers -- either because of a missing 'ctypedef', or because numpy.pxd claimed that they were of a named enum type ('enum requirements') which did not actually exist. Somewhere between Cython 0.12.1 and 0.14.1, the latter issue broke my compile whenever I referred to np.NPY_F_CONTIGUOUS. Cython started generating code like: enum requirements __pyx_t_10 = NPY_F_CONTIGUOUS; PyArray_NewFromDescr(..., __pyx_t_10, ....); Since there is, in fact, no such thing as 'enum requirements', the C compiler objected. (In earlier version, no temporary variable was generated, so we got away with the incorrect declaration.) And since I had to fix the declaration of this particular enum, I figured I might as well double-check the rest as well, in case of similar problems arising in the future. With this patch, Cython can once again compile scikits.sparse v0.1.
Showing
Please register or sign in to comment