|
From: Luigi B. <lui...@gm...> - 2026-10-12 06:22:40
|
Hi Dirk, I suspect it's because 26.04 still carries swig 4.4.0. We're currently using the latest, 4.5.1. I'm not sure how to solve the problem of versions lagging behind, other than relying on our tarballs (that already contain the generated wrapper, but that I haven't provided for the pre-release; I might do that next time though). On Sun, Oct 11, 2026 at 12:18 AM Dirk Eddelbuettel <ed...@de...> wrote: > > On 9 October 2026 at 09:29, Dirk Eddelbuettel wrote: > | > | On 9 October 2026 at 09:12, Dirk Eddelbuettel wrote: > | | No SWIG release candidate this time? > | > | Never mind. I once again fell for 'tagged but no (pre-)release'. Built > and > | uploaded too. > > quantlib-swig failed at launchpad.net for 26.04 for both amd64 and arm64. > Log > for the former is at > > > https://launchpadlibrarian.net/880333797/buildlog_ubuntu-resolute-amd64.quantlib-swig_1.43.99-0.2604.0_BUILDING.txt.gz > > and contains this > > src/QuantLib/quantlib_wrap.cpp: In function ‘PyObject* > SWIG_runtime_data_module()’: > src/QuantLib/quantlib_wrap.cpp:1455:39: error: ‘PyImport_AddModuleRef’ was > not declared in this scope; did you mean ‘PyImport_AddModule’? > 1455 | Swig_runtime_data_module_global = > PyImport_AddModuleRef(SWIG_RUNTIME_MODULE); > | ^~~~~~~~~~~~~~~~~~~~~ > | PyImport_AddModule > src/QuantLib/quantlib_wrap.cpp: In function ‘int > SwigPyObject_Check(PyObject*)’: > src/QuantLib/quantlib_wrap.cpp:1057:44: error: > ‘PyType_GetFullyQualifiedName’ was not declared in this scope; did you mean > ‘SWIG_PyType_GetFullyQualifiedName’? > 1057 | # define SWIG_PyType_GetFullyQualifiedName > PyType_GetFullyQualifiedName > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp:2127:24: note: in expansion of macro > ‘SWIG_PyType_GetFullyQualifiedName’ > 2127 | PyObject *tpname = SWIG_PyType_GetFullyQualifiedName(op_type); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp: In function ‘int > SwigPyPacked_Check(PyObject*)’: > src/QuantLib/quantlib_wrap.cpp:1057:44: error: > ‘PyType_GetFullyQualifiedName’ was not declared in this scope; did you mean > ‘SWIG_PyType_GetFullyQualifiedName’? > 1057 | # define SWIG_PyType_GetFullyQualifiedName > PyType_GetFullyQualifiedName > | > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp:2544:24: note: in expansion of macro > ‘SWIG_PyType_GetFullyQualifiedName’ > 2544 | PyObject *tpname = SWIG_PyType_GetFullyQualifiedName(op_type); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp: In function ‘swig_type_info* > SWIG_Python_TypeQuery(const char*)’: > src/QuantLib/quantlib_wrap.cpp:1114:39: error: ‘PyDict_GetItemStringRef’ > was not declared in this scope; did you mean ‘PyDict_GetItemString’? > 1114 | # define SWIG_PyDict_GetItemStringRef PyDict_GetItemStringRef > | ^~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp:3277:3: note: in expansion of macro > ‘SWIG_PyDict_GetItemStringRef’ > 3277 | SWIG_PyDict_GetItemStringRef(cache, type, &obj); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/QuantLib/quantlib_wrap.cpp: In function ‘MatrixRow > Matrix___getitem__(QuantLib::Matrix*, QuantLib::Integer)’: > src/QuantLib/quantlib_wrap.cpp:10411:29: warning: comparison of integer > expressions of different signedness: ‘QuantLib::Integer’ {aka ‘int’} and > ‘QuantLib::Size’ {aka ‘long unsigned int’} [-Wsign-compare] > 10411 | if (i >= 0 && i < self->rows()) > | ~~^~~~~~~~~~~~~~ > In file included from /usr/include/ql/patterns/observable.hpp:32, > from /usr/include/ql/event.hpp:29, > from /usr/include/ql/cashflow.hpp:28, > from /usr/include/ql/quantlib.hpp:11, > from src/QuantLib/quantlib_wrap.cpp:6559: > src/QuantLib/quantlib_wrap.cpp: In member function ‘const > std::vector<double> OdeFct::operator()(QuantLib::Real, const > std::vector<double>&) const’: > src/QuantLib/quantlib_wrap.cpp:19453:73: warning: comparison of integer > expressions of different signedness: ‘Py_ssize_t’ {aka ‘long int’} and > ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] > 19453 | PyList_Check(pyResult.get()) && > PyList_Size(pyResult.get()) == y.size(), > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ > error: command '/usr/bin/x86_64-linux-gnu-g++' failed with exit code 1 > E: pybuild pybuild:485: build: plugin distutils failed with: exit code=1: > /usr/bin/python3 setup.py build > > which looks like a Python / SWIG issue? Luigi, any idea about this? > > Dirk > > -- > dirk.eddelbuettel.com | @eddelbuettel | ed...@de... > |