So the difference is that I was wanting to make changes in the git repository that is at version 1.8. I would expect it to still work, though.
I can take a look at the scipy issue. -Bill On Feb 26, 2013, at 1:41 PM, Ralf Gommers wrote: > On Mon, Feb 25, 2013 at 6:12 AM, Bill Spotz <wfsp...@sandia.gov> wrote: > I wanted to take a stab at updating numpy.i to not use deprecated NumPy C/API > code. Nothing in the git logs indicates this has already been done. I added > > #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION > > to numpy.i right before it includes numpy/arrayobject.h. The built-in tests > for numpy.i should be sufficient to ferret out all of the deprecated calls. > When I try to make the tests, the compiler tells me that it has included > > npy_deprecated_api.h > > and I get a compiler error when it includes old_defines.h, telling me that it > is deprecated. Shouldn't my #define prevent this from happening? I'm > confused. Any guidance would be appreciated. > > Hi Bill, this works as expected for me. I did the following: > > 1. Build 1.7.0 release in-place > 2. Set PYTHONPATH to in-place build. > 3. $ cd doc/swig > 4. $ make test # runs all tests > 5. Add define in numpy.i like you did > 6. $ make test # now fails because old_defines.h wasn't included > > First failure is: > > Array_wrap.cxx:5506:20: error: ‘PyArrayObject’ has no member named ‘data’ > Array_wrap.cxx: In function ‘PyObject* _wrap_new_Array2(PyObject*, > PyObject*)’: > Array_wrap.cxx:5635:55: error: cannot convert ‘PyObject* {aka _object*}’ to > ‘const PyArrayObject* {aka const tagPyArrayObject*}’ for argument ‘1’ to ‘int > PyArray_TYPE(const PyArrayObject*)’ > error: command 'gcc' failed with exit status 1 > > > If you're about to update numpy.i, maybe you could take along the divergence > between the numpy and scipy versions of it? A ticket was just opened for > that: http://projects.scipy.org/scipy/ticket/1825 > I don't know how much work that would be, or why we even have two versions. > > Cheers, > Ralf > > > > Thanks, > Bill > > On Oct 9, 2012, at 9:18 PM, Tom Krauss wrote: > > > This code reproduces the error - I think it is small enough for email. > > (large) numpy.i not included, let me know if you want that too. Makefile > > will need to be tailored to your environment. > > If it's more convenient, or you have trouble reproducing, I can create a > > branch on github - let me know. > > > > On Tue, Oct 9, 2012 at 1:47 PM, Tom Krauss <thomas.p.kra...@gmail.com> > > wrote: > > I can't attach the exact code but would be happy to provide something > > simple that has the same issue. I'll post something here when I can get to > > it. > > - Tom > > > > > > On Tue, Oct 9, 2012 at 10:52 AM, Bill Spotz <wfsp...@sandia.gov> wrote: > > Tom, Charles, > > > > If you discuss this further, be sure to CC me. > > > > -Bill Spotz > > > > On Oct 9, 2012, at 8:50 AM, Charles R Harris wrote: > > > >> Hi Tom, > >> > >> On Tue, Oct 9, 2012 at 8:30 AM, Tom Krauss <thomas.p.kra...@gmail.com> > >> wrote: > >> Hi, > >> > >> I've been happy to use numpy.i for generating SWIG interfaces to C++. > >> > >> For a while, I've noticed this warning while compiling: > >> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/npy_deprecated_api.h:11:2: > >> warning: #warning "Using deprecated NumPy API, disable it by #defining > >> NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" > >> > >> and today tried to get rid of the warning. > >> > >> So, in numpy.i, I followed the warning's advice. I added the # def here: > >> > >> %{ > >> #ifndef SWIG_FILE_WITH_INIT > >> # define NO_IMPORT_ARRAY > >> #endif > >> #include "stdio.h" > >> #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION > >> #include <numpy/arrayobject.h> > >> %} > >> > >> SWIG was happy, but when compiling the C++ wrapper, there were many > >> warnings followed by many errors. The warnings were for redefinition of > >> NPY_MIN_BYTE and similar. The errors were for all kinds of stuff, excerpt > >> here: > >> native_wrap.cpp:3632: error: ‘PyArray_NOTYPE’ was not declared in this > >> scope > >> native_wrap.cpp:3633: error: cannot convert ‘PyObject*’ to ‘const > >> PyArrayObject*’ for argument ‘1’ to ‘int PyArray_TYPE(const > >> PyArrayObject*)’ > >> native_wrap.cpp: At global scope: > >> native_wrap.cpp:3877: error: ‘intp’ has not been declared > >> native_wrap.cpp: In function ‘int require_fortran(PyArrayObject*)’: > >> native_wrap.cpp:3929: error: ‘struct tagPyArrayObject’ has no member named > >> ‘nd’ > >> native_wrap.cpp:3933: error: ‘struct tagPyArrayObject’ has no member named > >> ‘flags’ > >> native_wrap.cpp:3933: error: ‘FARRAY’ was not declared in this scope > >> native_wrap.cpp:20411: error: ‘struct tagPyArrayObject’ has no member > >> named ‘data’ > >> > >> It looks like there is a new C API for numpy, and the version of numpy.i > >> that I have doesn't use it. > >> > >> Is there a new version of numpy.i available (or in development) that works > >> with the new API? Short term it will just get rid of a warning but I am > >> interested in a good long term solution in case I need to upgrade numpy. > >> > >> > >> In the long term we would like to hide the ndarray internals, essentially > >> making them private. There are still some incomplete areas, f2py and, > >> apparently, numpy.i. Your feedback here is quite helpful and if you have > >> some time we can try to get this straightened out. Could you attach the > >> code you are trying to interface? If you have a github account you could > >> also set up a branch where we could work on this. > >> > >> Chuck > >> _______________________________________________ > >> NumPy-Discussion mailing list > >> NumPy-Discussion@scipy.org > >> http://mail.scipy.org/mailman/listinfo/numpy-discussion > > > > ** Bill Spotz ** > > ** Sandia National Laboratories Voice: (505)845-0170 ** > > ** P.O. Box 5800 Fax: (505)284-0154 ** > > ** Albuquerque, NM 87185-0370 Email: wfsp...@sandia.gov ** _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion