On 3/3/2011 10:54 PM, Ralf Gommers wrote:
On Mon, Feb 28, 2011 at 11:31 PM, Ralf Gommers
<ralf.gomm...@googlemail.com>  wrote:
On Mon, Feb 28, 2011 at 10:36 PM, Bruce Southey<bsout...@gmail.com>  wrote:
On 02/28/2011 02:00 AM, Ralf Gommers wrote:
Hi,

On Fri, Jan 28, 2011 at 7:15 AM, Travis Oliphant<oliph...@enthought.com>    
wrote:
The reason for a NumPy 1.6 suggestion, is that Mark (and others it would
seem) have additional work and features that do not need to wait for the
NumPy 2.0 ABI design to finalize in order to get out there.
If someone is willing to manage the release of NumPy 1.6, then it sounds
like a great idea to me.
This thread ended without a conclusion a month ago. Now I think master
is in a better state than a month ago for a release (py 2.4/2.5/3.x
issues and segfault on OS X fixed, more testing of changes), and I
have a better idea of my free time for March/April. Basically, I have
a good amount of time for the next couple of weeks, and not so much at
the end of March / first half of April due to an inter-continental
move. But I think we can get out a beta by mid-March, and I can manage
the release.

I've had a look at the bug tracker, here's a list of tickets for 1.6:
#1748 (blocker: regression for astype('str'))
#1619 (issue with dtypes, with patch)
#1749 (distutils, py 3.2)
#1601 (distutils, py 3.2)
#1622 (Solaris segfault, with patch)
#1713 (Solaris segfault)
#1631 (Solaris segfault)

The distutils tickets are resolved.

Proposed schedule:
March 15: beta 1
March 28: rc 1
April 17: rc 2 (if needed)
April 24: final release

Any comments on the schedule or tickets?

Before the first beta can be released I think #1748 should be fixed.
Before the first RC the Solaris segfaults should be investigated, and
documentation for the new iterator (Python docstrings and C API docs)
and datetime should be written.

Also, some testing on 64-bit Windows would be great, that usually
turns up new issues so the sooner the better.

Ralf

Hi Ralf,

the numpy master branch on github can not be compiled with Visual Studio. A patch is attached. I'll test the builds tomorrow.

Christoph

diff --git a/numpy/core/src/multiarray/arraytypes.c.src 
b/numpy/core/src/multiarray/arraytypes.c.src
index a5e4713..1b2f657 100644
--- a/numpy/core/src/multiarray/arraytypes.c.src
+++ b/numpy/core/src/multiarray/arraytypes.c.src
@@ -1596,6 +1596,7 @@ static void
         }
         /* convert from Python object to needed one */
 #if @convert@
+        {
         PyObject *new, *args;
         /* call out to the Python builtin given by convstr */
         args = Py_BuildValue("(N)", temp);
@@ -1611,6 +1612,7 @@ static void
         if (temp == NULL) {
             return;
         }
+        }
 #endif /* @convert@ */
         if (@to@_setitem(temp,(char *)op, aop)) {
             Py_DECREF(temp);
diff --git a/numpy/core/src/multiarray/ctors.c 
b/numpy/core/src/multiarray/ctors.c
index 4fb6bc7..36e1cb4 100644
--- a/numpy/core/src/multiarray/ctors.c
+++ b/numpy/core/src/multiarray/ctors.c
@@ -2395,7 +2395,6 @@ PyArray_CopyAnyIntoOrdered(PyArrayObject *dst, 
PyArrayObject *src,
     PyArray_StridedTransferFn *stransfer = NULL;
     void *transferdata = NULL;
     NpyIter *dst_iter, *src_iter;
-    NPY_BEGIN_THREADS_DEF;
 
     NpyIter_IterNext_Fn dst_iternext, src_iternext;
     char **dst_dataptr, **src_dataptr;
@@ -2408,6 +2407,8 @@ PyArray_CopyAnyIntoOrdered(PyArrayObject *dst, 
PyArrayObject *src,
     npy_intp dst_size, src_size;
     int needs_api;
 
+    NPY_BEGIN_THREADS_DEF;
+
     if (!PyArray_ISWRITEABLE(dst)) {
         PyErr_SetString(PyExc_RuntimeError,
                 "cannot write to array");
diff --git a/numpy/core/src/multiarray/einsum.c.src 
b/numpy/core/src/multiarray/einsum.c.src
index 9200c7c..5233ea5 100644
--- a/numpy/core/src/multiarray/einsum.c.src
+++ b/numpy/core/src/multiarray/einsum.c.src
@@ -50,7 +50,7 @@
 #if NPY_EINSUM_DBG_TRACING
 #define NPY_EINSUM_DBG_PRINTF(...) printf(__VA_ARGS__)
 #else
-#define NPY_EINSUM_DBG_PRINTF(...)
+#define NPY_EINSUM_DBG_PRINTF
 #endif
 /**********************************************/
 
diff --git a/numpy/core/src/multiarray/item_selection.c 
b/numpy/core/src/multiarray/item_selection.c
index db379e5..022f3d9 100644
--- a/numpy/core/src/multiarray/item_selection.c
+++ b/numpy/core/src/multiarray/item_selection.c
@@ -1880,8 +1880,8 @@ finish:
     }
     else {
         for (i = 0; i < ndim; ++i) {
-            stride = ndim*NPY_SIZEOF_INTP;
             PyArrayObject *view;
+            stride = ndim*NPY_SIZEOF_INTP;
 
             view = (PyArrayObject *)PyArray_New(Py_TYPE(self), 1,
                                 &nonzero_count,
diff --git a/numpy/core/src/multiarray/new_iterator.c.src 
b/numpy/core/src/multiarray/new_iterator.c.src
index 1208e5d..3d8566f 100644
--- a/numpy/core/src/multiarray/new_iterator.c.src
+++ b/numpy/core/src/multiarray/new_iterator.c.src
@@ -50,7 +50,7 @@
 #if NPY_IT_DBG_TRACING
 #define NPY_IT_DBG_PRINTF(...) printf(__VA_ARGS__)
 #else
-#define NPY_IT_DBG_PRINTF(...)
+#define NPY_IT_DBG_PRINTF
 #endif
 /**********************************************/
 
diff --git a/numpy/core/src/umath/ufunc_object.c 
b/numpy/core/src/umath/ufunc_object.c
index e2e999b..07a308e 100644
--- a/numpy/core/src/umath/ufunc_object.c
+++ b/numpy/core/src/umath/ufunc_object.c
@@ -47,7 +47,7 @@
 #if NPY_UF_DBG_TRACING
 #define NPY_UF_DBG_PRINTF(...) printf(__VA_ARGS__)
 #else
-#define NPY_UF_DBG_PRINTF(...)
+#define NPY_UF_DBG_PRINTF
 #endif
 /**********************************************/
 
@@ -1762,7 +1762,6 @@ iterator_loop(PyUFuncObject *self,
     NpyIter *iter;
     char *baseptrs[NPY_MAXARGS];
     int needs_api;
-    NPY_BEGIN_THREADS_DEF;
 
     NpyIter_IterNext_Fn iternext;
     char **dataptr;
@@ -1771,6 +1770,8 @@ iterator_loop(PyUFuncObject *self,
 
     PyArrayObject **op_it;
 
+    NPY_BEGIN_THREADS_DEF;
+
     /* Set up the flags */
     for (i = 0; i < nin; ++i) {
         op_flags[i] = NPY_ITER_READONLY|
@@ -2792,7 +2793,6 @@ PyUFunc_ReductionOp(PyUFuncObject *self, PyArrayObject 
*arr,
     npy_uint32 op_flags[2];
     int i, idim, ndim, otype_final;
     int needs_api, need_outer_iterator;
-    NPY_BEGIN_THREADS_DEF;
 
     NpyIter *iter = NULL, *iter_inner = NULL;
 
@@ -2806,6 +2806,8 @@ PyUFunc_ReductionOp(PyUFuncObject *self, PyArrayObject 
*arr,
     int buffersize = 0, errormask = 0;
     PyObject *errobj = NULL;
 
+    NPY_BEGIN_THREADS_DEF;
+
     NPY_UF_DBG_PRINTF("\nEvaluating ufunc %s.%s\n", ufunc_name, opname);
 
 #if 0
@@ -3424,7 +3426,6 @@ PyUFunc_Reduceat(PyUFuncObject *self, PyArrayObject *arr, 
PyArrayObject *ind,
     npy_uint32 op_flags[3];
     int i, idim, ndim, otype_final;
     int needs_api, need_outer_iterator;
-    NPY_BEGIN_THREADS_DEF;
 
     NpyIter *iter = NULL;
 
@@ -3442,6 +3443,8 @@ PyUFunc_Reduceat(PyUFuncObject *self, PyArrayObject *arr, 
PyArrayObject *ind,
     int buffersize = 0, errormask = 0;
     PyObject *errobj = NULL;
 
+    NPY_BEGIN_THREADS_DEF;
+
     reduceat_ind = (npy_intp *)PyArray_DATA(ind);
     ind_size = PyArray_DIM(ind, 0);
     red_axis_size = PyArray_DIM(arr, axis);
@@ -3599,6 +3602,8 @@ PyUFunc_Reduceat(PyUFuncObject *self, PyArrayObject *arr, 
PyArrayObject *ind,
 
         NpyIter_IterNext_Fn iternext;
         char **dataptr;
+        npy_intp count_m1;
+        npy_intp stride0, stride1;
         npy_intp *stride;
         npy_intp *count_ptr;
         npy_intp stride0_ind = PyArray_STRIDE(op[0], axis);
@@ -3616,8 +3621,9 @@ PyUFunc_Reduceat(PyUFuncObject *self, PyArrayObject *arr, 
PyArrayObject *ind,
 
 
         /* Execute the loop with just the outer iterator */
-        npy_intp count_m1 = PyArray_DIM(op[1], axis)-1;
-        npy_intp stride0 = 0, stride1 = PyArray_STRIDE(op[1], axis);
+        count_m1 = PyArray_DIM(op[1], axis)-1;
+        stride0 = 0;
+        stride1 = PyArray_STRIDE(op[1], axis);
 
         NPY_UF_DBG_PRINTF("UFunc: Reduce loop with just outer iterator\n");
 
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to