2009/7/22 Dr. David Kirkby <david.kir...@onetel.net>: > > John Cremona wrote: >> If by "this code" you mean paripriv.h then that belongs to pari, i.e. >> is upstream. But sage/ext/fast_callable.c will have been written by >> someone who subscribes to this list, I hope! >> >> John > > But the build of pari works fine, including the lines in paripriv.h. If > the code is commented out, pari will not build. Hence I personally don't > feel happy to report this to the pari developers, as I don't understand > why the code is implemented in the first place. The person(s) that wrote > this code, would be in a much better position than me to make a good > statement to the pair developers - if it is their fault at all, which I > somewhat doubt myself.
I don't think I explained well what I meant. Certainly, the pari code is fine as it is. But when that include file is included by another file, it may be that some macros have been defined in that environment which change the content of those 3 lines. e.g. in line 258: GEN ZY_ZXY_resultant_all(GEN A, GEN B0, long *lambda, GEN *LPRS); The macro cannot be GEN or A or B or lambda since they occur on other lines which cause no trouble. It is most unlikely to be the function name! But it could be LPRS. I think that to debug this you would need to give the compile command which caused the error: gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall (etc etc) and add the flag "-E" which means " Preprocess only; do not compile, assemble or link", pipe the (long) output of that to a file and search it for where paripric.h is included. That might tell you whether the file has been corrupted by macro definitions as I suspect. If this works, then the next step will be to find out where the offending macros are defined and then who wrote that code and then get the macros changed... John > > Dave > >> >> 2009/7/22 Dr. David Kirkby <david.kir...@onetel.net>: >>> John Cremona wrote: >>> >>>> Line 428 defines an enum struct which is only relevant for gp. >>>> The >>>> earlier two have no numeric constants that I can see but the function >>>> prototypes have variables in upper case, and it's possible that these >>>> are macros which are getting expanded into numbers. >>>> >>>> John >>> Thank you John, >>> >>> I still don't feel happy about debugging this code, which I don't >>> understand at all. Perhaps someone who has some idea what is is all >>> supposed to be doing can look at it. I assume this is code which someone >>> reading this list probably wrote, rather than code which is buggy and >>> needs reporting to an upstream developer. >>> >>> Dave >>> >>>> 2009/7/22 Dr. David Kirkby <david.kir...@onetel.net>: >>>>> Pari build fine on Solaris now. However, many packages later, there is a >>>>> failure when building the 'modified sage library code' which is related >>>>> to the inclusion of the pari header file >>>>> >>>>> $SAGE_HOME/local/include/pari/paripriv.h >>>>> >>>>> There are according to gcc on Solaris a problem with this file. I see >>>>> the exact same issue on t2 as I do on my home machine and William has >>>>> said he has seen it on OpenSolaris too. >>>>> >>>>> gcc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall >>>>> -Wstrict-prototypes -fPIC >>>>> -I/export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include >>>>> -I/export/home/dr kirkby/sage/sage-4.1.1.alpha0/local//include/csage >>>>> -I/export/home/drkirkby/sage/ sage-4.1.1.alpha0/devel//sage/sage/ext >>>>> -I/export/home/drkirkby/sage/sage-4.1.1.a lpha0/local/include/python2.6 >>>>> -c sage/ext/fast_callable.c -o build/temp.solaris- >>>>> 2.10-sun4u-2.6/sage/ext/fast_callable.o -w >>>>> In file included from sage/ext/fast_callable.c:141: >>>>> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:258: >>>>> error: expected ';', ',' or ')' before numeric constant >>>>> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:259: >>>>> error: expected ';', ',' or ')' before numeric constant >>>>> In file included from sage/ext/fast_callable.c:141: >>>>> /export/home/drkirkby/sage/sage-4.1.1.alpha0/local//include/pari/paripriv.h:428: >>>>> error: expected identifier before numeric constant >>>>> error: command 'gcc' failed with exit status 1 >>>>> sage: There was an error installing modified sage library code >>>>> ERROR installing SAGE >>>>> >>>>> real 43m59.533s >>>>> user 42m14.541s >>>>> sys 1m30.477s >>>>> sage: An error occurred while installing sage-4.1.1.alpha0 >>>>> >>>>> Commenting out lines 258, 259 and 428 in the pari header file allows the >>>>> "modified sage library code" to build, but it's probably not the right >>>>> thing to do. Trying to build pari with those lines commented out fails, >>>>> as pari does reference them. >>>>> >>>>> It's a bit difficult to report this to the pari developers, as their >>>>> code works fine - it is the inclusion of one of their header files in >>>>> the modified sage library which is causing the problem. >>>>> >>>>> The file that includes the header file is >>>>> $SAGE_HOME/devel/sage-main/sage/ext/fast_callable.c >>>>> >>>>> which at the top says: >>>>> >>>>> /* Generated by Cython 0.11.1 on Wed Jul 22 02:56:31 2009 */ >>>>> >>>>> Further down (line 141) I see: >>>>> >>>>> #include "pari/paripriv.h" >>>>> >>>>> So Cython is generating a C file (fast_callable.c), which includes a >>>>> pari header file (paripriv.h), which causes problems. >>>>> >>>>> >>>>> Is there anyone feel able to help on this? >>>>> >>>>> It is *not* something I feel able to debug. Anyone that has an account >>>>> on sage.math will have an account on 't2' and so will able to test this >>>>> for themselves. >>>>> >>>>> Dave >>>>> >>>>> >>>>> >>> >> >> > >> > > > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---