From: Arjen M. <Arj...@de...> - 2013-10-18 07:08:05
|
Hi Alan, (changed the subject to better reflect the content) The problems I had before with building the Python bindings had to do with MinGW and the location of the Numpy package. The current problems are however of a very different nature. I removed the #define NPY_NO_DEPRECATED_API ... line from plplotcmodule.i, even though this has been in there for a long time, and that helped a bit: the complaints about PyArray_FLOAT are gone. The other error messages still exist, though. It concerns lines like: tmpGrid2.xg[i] = (PLFLT *) ( PyArray_DATA( pltr_xg ) + i * size ); PyArray_DATA is a helper function of type "void *". Now that I look at it in the morning with a fresh cup of coffee, I think the problem is clear: pointer arithmetic on a "void *" pointer. My hunch is that this line should read: tmpGrid2.xg[i] = ((PLFLT *) PyArray_DATA( pltr_xg ) + i * size ); Yes, a quick test shows that then the messages disappear. This requires some further investigation. The PyArray_FLOAT symbol occurs only in the function do_mapform_callback(), in an #ifdef block, controlled by PL_HAVE_PTHREAD. As I am trying to build it on bare Windows, that macro is not defined and so I get into the #else branch. My question: Is the #ifdef really required? One branch uses PyArray_SimpleNewFromData() and the other PyArray_FromDimsAndData(). Neither strikes me as very dependent on Pthread capabilities, but that is only judging from the name and the calls themselves. I have not looked at the documentation. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |