Hi, There's some kind of C++ enum issue in the Sage build.
Generated code in sage/libs/ppl.cpp: """ static PyObject *__pyx_pf_4sage_4libs_3ppl_11MIP_Problem_30solve( struct __pyx_obj_4sage_4libs_3ppl_MIP_Problem *__pyx_v_self) { enum Parma_Polyhedra_Library::PPL_MIP_Problem_Status __pyx_v_tmp; """ gcc error: """ sage/libs/ppl.cpp: In function 'PyObject* __pyx_pf_4sage_4libs_3ppl_11MIP_Problem_30solve(__pyx_obj_4sage_4libs_3ppl_MIP_Problem*)': sage/libs/ppl.cpp:5514:33: error: 'PPL_MIP_Problem_Status' in namespace 'Parma_Polyhedra_Library' does not name a type sage/libs/ppl.cpp:5514:67: error: invalid type in declaration before ';' token """ The type of "tmp" seems to be inferred. That might be a hint that it could be a problem in Cython. The Cython code in question is also a bit funny: sage/libs/ppl.pyx:1076 """ sig_on() try: tmp = self.thisptr.solve() # <<<<<<<<<<<<<< finally: sig_off() """ The try-finally is useless here, since the call to solve() cannot raise Python exceptions. The new try-finally code generation shows this clearly, it does not generate an exception handling block. The idea might have been that it could raise C++ exceptions, but they don't seem to be declared, so Cython won't do anything about them. Might be a hint that Cython could do more to make C++ exception handling safer by default. Stefan _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel