pycvodes/pykinsol failing to compile with python 3.9.1
jeremyagray opened this issue · 4 comments
I just upgraded my debian bullseye system to current, which pulled in python 3.9.1 and subsequently triggered a bunch of warnings like:
In file included from pycvodes/_cvodes.cpp:668:
external/anyode/include/anyode/anyode_numpy.hpp:205:61: warning: ‘PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)’ is deprecated [-Wdeprecated-declarations]
205 | PyObject * py_result = PyEval_CallObjectWithKeywords(this->py_jac, py_arglist, this->py_kwargs);
in pycvodes/anyode and pykinsol during compilation.
Python references: here and here.
This is just informational. Without further reading, I don't really now how serious this is so this may be fixable by ignoring the deprecation warning.
Thanks! Yes, one should fix deprecation warnings so that we don't risk having non-compiling versions on e.g. python 3.10.
Hopefully these two new releases are free of calls to those functions:
That sounds great. The trouble with extern
is of course worrisome. And yes, I don't think we should re-declare them. Perhaps adding some preprocessor guard in anyode_blas_lapack.hpp
based on a macro defined by sundials, and make sure sundials' header is included before anyode in pycvodes would do the trick?
It would be nice if we could reproduce the error from the current implementation in the CI run (.drone.yml
) of pycvodes, and then apply a proper fix. But as you know, I wasn't able to do so earlier.