[33242] trunk/dports/python/py-numeric

jmpp at macports.org jmpp at macports.org
Mon Jan 21 23:13:35 PST 2008


Revision: 33242
          http://trac.macosforge.org/projects/macports/changeset/33242
Author:   jmpp at macports.org
Date:     2008-01-21 23:13:34 -0800 (Mon, 21 Jan 2008)

Log Message:
-----------

Incorporate bug fixes for memory leaks, with the renaming of the submitted patch files to match our naming recommendations (port lint).
Closes #13666 (thanks for the submission!).

Modified Paths:
--------------
    trunk/dports/python/py-numeric/Portfile

Added Paths:
-----------
    trunk/dports/python/py-numeric/files/patch-Packages-dotblas-_dotblas.c.diff
    trunk/dports/python/py-numeric/files/patch-Src-arrayobject.c.diff
    trunk/dports/python/py-numeric/files/patch-changes.txt.diff
    trunk/dports/python/py-numeric/files/patch-ranf.c.diff

Removed Paths:
-------------
    trunk/dports/python/py-numeric/files/patch-ranf.c

Modified: trunk/dports/python/py-numeric/Portfile
===================================================================
--- trunk/dports/python/py-numeric/Portfile	2008-01-22 06:16:13 UTC (rev 33241)
+++ trunk/dports/python/py-numeric/Portfile	2008-01-22 07:13:34 UTC (rev 33242)
@@ -5,9 +5,9 @@
 
 name			py-numeric
 version			24.2
-revision		1
+revision		2
 categories		python devel math
-maintainers		nomaintainer
+maintainers		trashmail.net:macports_dharland
 platforms		darwin
 description		fast numerical array language for python
 long_description	Numerical Python adds a fast, compact, \
@@ -18,8 +18,11 @@
 distname		Numeric-${version}
 checksums		md5 2ae672656e06716a149acb048cca3093
 
-patchfiles		patch-ranf.c
-
+patchfiles		patch-ranf.c.diff \
+				patch-Src-arrayobject.c.diff \
+				patch-Packages-dotblas-_dotblas.c.diff \
+				patch-changes.txt.diff
+	
 platform darwin	8 {
 	build.env	CC=/usr/bin/gcc-4.0
 }

Added: trunk/dports/python/py-numeric/files/patch-Packages-dotblas-_dotblas.c.diff
===================================================================
--- trunk/dports/python/py-numeric/files/patch-Packages-dotblas-_dotblas.c.diff	                        (rev 0)
+++ trunk/dports/python/py-numeric/files/patch-Packages-dotblas-_dotblas.c.diff	2008-01-22 07:13:34 UTC (rev 33242)
@@ -0,0 +1,106 @@
+--- ./Packages/dotblas/dotblas/_dotblas.c.orig	2005-04-07 17:15:47.000000000 +1200
++++ ./Packages/dotblas/dotblas/_dotblas.c	2005-11-30 07:54:12.000000000 +1300
+@@ -52,7 +52,7 @@
+ static PyObject *dotblas_matrixproduct(PyObject *dummy, PyObject *args) {
+   PyObject *op1, *op2;
+   PyArrayObject *ap1, *ap2, *ret;
+-  int i, j, l, lda, ldb, matchDim = -1, otherDim = -1;
++  int i, j, l, lda, ldb, ldc, matchDim = -1, otherDim = -1;
+   int typenum;
+   int dimensions[MAX_DIMS], nd;
+   static const float oneF[2] = {1.0, 0.0};
+@@ -248,33 +248,34 @@
+     /* Matrix matrix multiplication -- Level 3 BLAS */  
+     lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
+     ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
++    ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
+     if (typenum == PyArray_DOUBLE) {
+       cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 		  1.0, (double *)ap1->data, lda,
+ 		  (double *)ap2->data, ldb,
+-		  0.0, (double *)ret->data, ldb);
++		  0.0, (double *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_FLOAT) {
+       cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 		  1.0, (float *)ap1->data, lda,
+ 		  (float *)ap2->data, ldb,
+-		  0.0, (float *)ret->data, ldb);
++		  0.0, (float *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_CDOUBLE) {
+       cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 		  oneD, (double *)ap1->data, lda,
+ 		  (double *)ap2->data, ldb,
+-		  zeroD, (double *)ret->data, ldb);
++		  zeroD, (double *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_CFLOAT) {
+       cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[1], ap2->dimensions[0],
+ 		  oneF, (float *)ap1->data, lda,
+ 		  (float *)ap2->data, ldb,
+-		  zeroF, (float *)ret->data, ldb);
++		  zeroF, (float *)ret->data, ldc);
+     }
+   }
+   else {
+@@ -334,7 +335,7 @@
+ static PyObject *dotblas_innerproduct(PyObject *dummy, PyObject *args) {
+   PyObject *op1, *op2;
+   PyArrayObject *ap1, *ap2, *ret;
+-  int i, j, l, lda, ldb;
++  int i, j, l, lda, ldb, ldc;
+   int typenum;
+   int dimensions[MAX_DIMS], nd;
+   static const float oneF[2] = {1.0, 0.0};
+@@ -525,33 +526,34 @@
+     /* Matrix matrix multiplication -- Level 3 BLAS */  
+     lda = (ap1->dimensions[1] > 1 ? ap1->dimensions[1] : 1);
+     ldb = (ap2->dimensions[1] > 1 ? ap2->dimensions[1] : 1);
++    ldc = (ret->dimensions[1] > 1 ? ret->dimensions[1] : 1);
+     if (typenum == PyArray_DOUBLE) {
+       cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 		  1.0, (double *)ap1->data, lda,
+ 		  (double *)ap2->data, ldb,
+-		  0.0, (double *)ret->data, ldb);
++		  0.0, (double *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_FLOAT) {
+       cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 		  1.0, (float *)ap1->data, lda,
+ 		  (float *)ap2->data, ldb,
+-		  0.0, (float *)ret->data, ldb);
++		  0.0, (float *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_CDOUBLE) {
+       cblas_zgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 		  oneD, (double *)ap1->data, lda,
+ 		  (double *)ap2->data, ldb,
+-		  zeroD, (double *)ret->data, ldb);
++		  zeroD, (double *)ret->data, ldc);
+     }
+     else if (typenum == PyArray_CFLOAT) {
+       cblas_cgemm(CblasRowMajor, CblasNoTrans, CblasTrans,
+ 		  ap1->dimensions[0], ap2->dimensions[0], ap1->dimensions[1],
+ 		  oneF, (float *)ap1->data, lda,
+ 		  (float *)ap2->data, ldb,
+-		  zeroF, (float *)ret->data, ldb);
++		  zeroF, (float *)ret->data, ldc);
+     }
+   }
+   else {
+@@ -703,7 +705,7 @@
+     /* Add some symbolic constants to the module */
+     d = PyModule_GetDict(m);
+ 
+-    s = PyString_FromString("$Id: _dotblas.c,v 1.3 2005/04/06 22:40:23 dmcooke Exp $");
++    s = PyString_FromString("$Id: _dotblas.c,v 1.4 2005/11/29 18:54:12 teoliphant Exp $");
+     PyDict_SetItemString(d, "__version__", s);
+     Py_DECREF(s);

Added: trunk/dports/python/py-numeric/files/patch-Src-arrayobject.c.diff
===================================================================
--- trunk/dports/python/py-numeric/files/patch-Src-arrayobject.c.diff	                        (rev 0)
+++ trunk/dports/python/py-numeric/files/patch-Src-arrayobject.c.diff	2008-01-22 07:13:34 UTC (rev 33242)
@@ -0,0 +1,20 @@
+--- ./Src/arrayobject.c.orig	2005-11-11 20:30:18.000000000 +1300
++++ ./Src/arrayobject.c	2006-03-10 17:55:59.000000000 +1300
+@@ -12,7 +12,7 @@
+   performance for heterogeneity.
+ */
+ 
+-/* $Id: arrayobject.c,v 1.107 2005/11/09 19:43:39 teoliphant Exp $ */
++/* $Id: arrayobject.c,v 1.108 2006/03/10 04:55:59 teoliphant Exp $ */
+ 
+ #include "Python.h"
+ #include <stddef.h>
+@@ -1866,9 +1866,7 @@
+     for (i=0; i<sz; i++) {
+ 	v=array_item((PyArrayObject *)self, i);
+ 	PyList_SetItem(lp, i, PyArray_ToList(v));
+-	if (((PyArrayObject *)self)->nd>1){
+-	    Py_DECREF(v);
+-	}
++	Py_DECREF(v);
+     }

Added: trunk/dports/python/py-numeric/files/patch-changes.txt.diff
===================================================================
--- trunk/dports/python/py-numeric/files/patch-changes.txt.diff	                        (rev 0)
+++ trunk/dports/python/py-numeric/files/patch-changes.txt.diff	2008-01-22 07:13:34 UTC (rev 33242)
@@ -0,0 +1,8 @@
+--- ./changes.txt.orig	2005-11-11 21:56:59.000000000 +1300
++++ ./changes.txt	2005-11-30 07:54:10.000000000 +1300
+@@ -1,3 +1,5 @@
++[1369004]     Problem with innerproduct in _dotblas.c 
++
+ Version 24.2
+               Support array interface in objecttype function.
+               Handle case where __array__ does not return a Numeric array.

Deleted: trunk/dports/python/py-numeric/files/patch-ranf.c
===================================================================
--- trunk/dports/python/py-numeric/files/patch-ranf.c	2008-01-22 06:16:13 UTC (rev 33241)
+++ trunk/dports/python/py-numeric/files/patch-ranf.c	2008-01-22 07:13:34 UTC (rev 33242)
@@ -1,11 +0,0 @@
---- ./Packages/RNG/Src/ranf.c.orig	2005-04-03 14:23:06.000000000 +0200
-+++ ./Packages/RNG/Src/ranf.c	2007-10-31 12:59:50.000000000 +0100
-@@ -149,7 +149,7 @@ void Mixranf(int *s,u32 s48[2])
- #else
- 	struct timeval tv;
- 	struct timezone tz;
--#if !defined(__sgi)
-+#if !defined(__sgi) && !defined(__APPLE__)
- 	int gettimeofday(struct timeval *, struct timezone *);
- #endif
- 

Copied: trunk/dports/python/py-numeric/files/patch-ranf.c.diff (from rev 33240, trunk/dports/python/py-numeric/files/patch-ranf.c)
===================================================================
--- trunk/dports/python/py-numeric/files/patch-ranf.c.diff	                        (rev 0)
+++ trunk/dports/python/py-numeric/files/patch-ranf.c.diff	2008-01-22 07:13:34 UTC (rev 33242)
@@ -0,0 +1,11 @@
+--- ./Packages/RNG/Src/ranf.c.orig	2005-04-03 14:23:06.000000000 +0200
++++ ./Packages/RNG/Src/ranf.c	2007-10-31 12:59:50.000000000 +0100
+@@ -149,7 +149,7 @@ void Mixranf(int *s,u32 s48[2])
+ #else
+ 	struct timeval tv;
+ 	struct timezone tz;
+-#if !defined(__sgi)
++#if !defined(__sgi) && !defined(__APPLE__)
+ 	int gettimeofday(struct timeval *, struct timezone *);
+ #endif
+ 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080121/37a8069d/attachment-0001.html


More information about the macports-changes mailing list