Commit e5688a61 authored by Stefan Behnel's avatar Stefan Behnel

merged 0.17 branch into master

parents 37a61d17 6ced0d1e
...@@ -40,3 +40,4 @@ ef9d2c680684d0df7d81f529cda29e9e1741f575 cython-0.10.1 ...@@ -40,3 +40,4 @@ ef9d2c680684d0df7d81f529cda29e9e1741f575 cython-0.10.1
a6b9f0a6d02d23fc3d3a9d0587867faa3afb2fcd 0.14.rc0 a6b9f0a6d02d23fc3d3a9d0587867faa3afb2fcd 0.14.rc0
15bf34c9387444e262acb1de594405444dd571a4 0.14 15bf34c9387444e262acb1de594405444dd571a4 0.14
5320ddd8c3a60d00e0513f9f70d6846cd449409b 0.17.beta1 5320ddd8c3a60d00e0513f9f70d6846cd449409b 0.17.beta1
275fb550c1d802da3df35ebae41e04eadc60e49e 0.17.2
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Cython Changelog Cython Changelog
================ ================
0.17.2 (2012-11-??) 0.17.2 (2012-11-20)
=================== ===================
Features added Features added
...@@ -13,6 +13,12 @@ Features added ...@@ -13,6 +13,12 @@ Features added
Bugs fixed Bugs fixed
---------- ----------
* Replacing an object reference with the value of one of its cdef attributes could generate incorrect C code that accessed the object after deleting its last reference.
* C-to-Python type coercions during cascaded comparisons could generate invalid C code, specifically when using the 'in' operator.
* "obj[1,]" passed a single integer into the item getter instead of a tuple.
* "obj[1,]" passed a single integer into the item getter instead of a tuple. * "obj[1,]" passed a single integer into the item getter instead of a tuple.
* Cyclic imports at module init time did not work in Py3. * Cyclic imports at module init time did not work in Py3.
......
...@@ -246,6 +246,6 @@ cdef extern from "Python.h": ...@@ -246,6 +246,6 @@ cdef extern from "Python.h":
# and the value is clipped to PY_SSIZE_T_MIN for a negative # and the value is clipped to PY_SSIZE_T_MIN for a negative
# integer or PY_SSIZE_T_MAX for a positive integer. # integer or PY_SSIZE_T_MAX for a positive integer.
bint PyIndex_Check(object o) bint PyIndex_Check "__Pyx_PyIndex_Check" (object)
# Returns True if o is an index integer (has the nb_index slot of # Returns True if o is an index integer (has the nb_index slot of
# the tp_as_number structure filled in). # the tp_as_number structure filled in).
...@@ -6,7 +6,7 @@ import cython ...@@ -6,7 +6,7 @@ import cython
# from cpython cimport ... # from cpython cimport ...
cdef extern from "Python.h": cdef extern from "Python.h":
int PyIndex_Check(object) int PyIndex_Check "__Pyx_PyIndex_Check" (object)
object PyLong_FromVoidPtr(void *) object PyLong_FromVoidPtr(void *)
cdef extern from "pythread.h": cdef extern from "pythread.h":
......
...@@ -115,7 +115,6 @@ static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *ac ...@@ -115,7 +115,6 @@ static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *ac
#define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__)
static CYTHON_INLINE void __Pyx_INC_MEMVIEW({{memviewslice_name}} *, int, int); static CYTHON_INLINE void __Pyx_INC_MEMVIEW({{memviewslice_name}} *, int, int);
static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW({{memviewslice_name}} *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW({{memviewslice_name}} *, int, int);
/////////////// MemviewSliceIndex.proto /////////////// /////////////// MemviewSliceIndex.proto ///////////////
static CYTHON_INLINE char *__pyx_memviewslice_index_full(const char *bufp, Py_ssize_t idx, Py_ssize_t stride, Py_ssize_t suboffset); static CYTHON_INLINE char *__pyx_memviewslice_index_full(const char *bufp, Py_ssize_t idx, Py_ssize_t stride, Py_ssize_t suboffset);
......
...@@ -52,12 +52,15 @@ ...@@ -52,12 +52,15 @@
(PyErr_Format(PyExc_TypeError, \ (PyErr_Format(PyExc_TypeError, \
"expected index value, got %.200s", Py_TYPE(o)->tp_name), \ "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
(PyObject*)0)) (PyObject*)0))
#define PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && !PyComplex_Check(o)) #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
!PyComplex_Check(o))
#define PyIndex_Check __Pyx_PyIndex_Check
#define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
#define __PYX_BUILD_PY_SSIZE_T "i" #define __PYX_BUILD_PY_SSIZE_T "i"
#else #else
#define __PYX_BUILD_PY_SSIZE_T "n" #define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z" #define CYTHON_FORMAT_SSIZE_T "z"
#define __Pyx_PyIndex_Check PyIndex_Check
#endif #endif
#if PY_VERSION_HEX < 0x02060000 #if PY_VERSION_HEX < 0x02060000
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment