On Thursday 16 August 2007, mabshoff wrote: > Hello, > > I had a closer look and the problem seems to originate mostly in the > coercion code: > > I changed all single letter capital variables in > > sage/structure/coerce.pyx > sage/structure/element.pyx > sage/categories/action.pyx > sage/structure/parent.pyx > > but I still get a compilation failure in coerce.c (and others). If you > look at coerce.c lines 824, 825 you will see the PyObject _G and _S: > > struct __pyx_obj_4sage_10categories_6action_Action { > struct __pyx_obj_4sage_10categories_7functor_Functor __pyx_base; > struct __pyx_vtabstruct_4sage_10categories_6action_Action > *__pyx_vtab; > PyObject *_G; > PyObject *_S; > int _is_left; > PyObject *_op; > }; > > I did make all the changes needed in action.pyx, so can somebody > please tell me where G and S are defined in this context. I can edit > the c-files and make it compile, but that is obviously not the long > term solution. If I am not mistaken the coercision code was written by > Robert Bradshaw, so Robert do you have any idea? > > I did edit all the needed bits to make the coerce code compile, but > now I get the following failure in multi_polynomial_libsingular: > > gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes - > fPIC -I/extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular > -I/extra/home/mabshoff/SAGE-build/sage-2.8/local//include -I/extra/ > home/mabshoff/SAGE-build/sage-2.8/local//include/python -I/extra/home/ > mabshoff/SAGE-build/sage-2.8/devel//sage/sage/ext -I/extra/home/ > mabshoff/SAGE-build/sage-2.8/local/include/python2.5 -c sage/rings/ > polynomial/multi_polynomial_libsingular.cpp -o build/temp.solaris-2.9- > sun4u-2.5/sage/rings/polynomial/multi_polynomial_libsingular.o -w > cc1plus: warning: command line option "-Wstrict-prototypes" is valid > for Ada/C/ObjC but not for C++ > In file included from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/factory.h:43, > from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/interrupt.h:6, > from sage/rings/polynomial/ > multi_polynomial_libsingular.cpp:30: > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_array.h:38: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_array.h:44: error: expected constructor, destructor, or type > conversion before '&' token > In file included from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/factory.h:44, > from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/interrupt.h:6, > from sage/rings/polynomial/ > multi_polynomial_libsingular.cpp:30: > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_factor.h:40: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_factor.h:49: error: expected constructor, destructor, or type > conversion before '&' token > In file included from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/factory.h:45, > from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/interrupt.h:6, > from sage/rings/polynomial/ > multi_polynomial_libsingular.cpp:30: > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:27: error: expected constructor, destructor, or type > conversion before '&' token > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:47: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:78: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:79: error: ISO C++ forbids declaration of 'OSTREAM' with > no type > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:79: error: 'OSTREAM' is neither function nor member > function; cannot be declared friend > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:79: error: expected ';' before '&' token > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_list.h:86: error: expected constructor, destructor, or type > conversion before '&' token > In file included from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/factory.h:46, > from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/interrupt.h:6, > from sage/rings/polynomial/ > multi_polynomial_libsingular.cpp:30: > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:27: error: expected constructor, destructor, or type > conversion before '&' token > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:37: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:57: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:58: error: ISO C++ forbids declaration of 'OSTREAM' > with no type > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:58: error: 'OSTREAM' is neither function nor member > function; cannot be declared friend > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:58: error: expected ';' before '&' token > /extra/home/mabshoff/SAGE-build/sage-2.8/local//include/templates/ > ftmpl_matrix.h:93: error: expected constructor, destructor, or type > conversion before '&' token > In file included from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/tmpl_inst.h:8, > from /extra/home/mabshoff/SAGE-build/sage-2.8/local/ > include/singular/interrupt.h:8, > from sage/rings/polynomial/ > multi_polynomial_libsingular.cpp:30: > /extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular/ > class.h:43: error: 'OSTREAM' has not been declared > /extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular/ > class.h:44: error: ISO C++ forbids declaration of 'OSTREAM' with no > type > /extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular/ > class.h:44: error: 'OSTREAM' is neither function nor member function; > cannot be declared friend > /extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular/ > class.h:44: error: expected ';' before '&' token > /extra/home/mabshoff/SAGE-build/sage-2.8/local/include/singular/ > class.h:50: error: expected `;' before '}' token > error: command 'gcc' failed with exit status 1 > sage: There was an error installing modified sage library code. > > malb, any idea? I don't know that area of the code very well. It looks > like a missing include.
You can build libCF with and without IO support and apparently this got mixed up. This is why we build a stand-alone libCF/libfac after we built SINGULAR and libSINGULAR. This way we make sure OSTREAM is known properly. Short answer: I'll have look at it. Martin -- name: Martin Albrecht _pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99 _www: http://www.informatik.uni-bremen.de/~malb _jab: [EMAIL PROTECTED] --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---