Over the years I've spent some time building gambit with development versions of gcc; the gcc developers have been quite helpful in fixing bugs and removing inefficiencies uncovered by this testing before the official releases of gcc. There is some interest in using automatically-generated C code, like the code that gsc produces, as "extreme" test cases for gcc's internal algorithms.
Because of the timing of future linux releases, gcc-4.3.0, the next major release of gcc, will likely go into fedora, Open Suse, and a few other linux releases. I've started using it to compile gambit just to see what happens. For example, I found one important loop that was compiled to significantly slower code by development 4.3.0 than by the released 4.2.2 on x64-64, and I think that this will likely be fixed before release. Problems that arise in the development version of gcc that used to work in previous versions are quite likely to be fixed before release.
I just tried development gcc-4.3.0 on powerpc-apple-darwin8.10.0 (i.e, MacOS X 10.4.10 on powerpc) in 64-bit code and I got a segfault in the garbage collector when trying to calculate (expt 3 10000000). (I just tried it in 32-bit code and got segfault in a different place in the garbage collector.)
Perhaps I'm just feeling older and more tired than usual, but I sure would feel better if some other people downloaded the svn sources of gcc, built it, and tried building and testing gambit with it. (I looked at that GC segfault and the wind just went out of me.)
Instructions for downloading the svn development version of gcc are at
under "Using the SVN repository". You'll need to install a relatively recent version of gmp and mpfr. I build and configure gcc for the purposes of gcc testing with
../../mainline/configure --prefix=/pkgs/gcc-mainline --enable- languages=c --enable-checking=release --with-gmp=/pkgs/gmp-4.2.2 -- with-mpfr=/pkgs/gmp-4.2.2
and then
make bootstrap
It's not entirely trivial, but it may be of interest to some people who are into this kind of thing.
Brad
Afficher les réponses par date
On 11/1/07, Bradley Lucier lucier@math.purdue.edu wrote:
I'm getting heap overflow with gambit-c v4.0.0 gcc-3.4.6 :
root@localhost: /usr/v4.0.0/bin/gsi Gambit v4.0.0
(expt 3 10000000)
*** ERROR IN ##make-string -- Heap overflow 1>
I guess this is not the same as segfault.
On 11/1/07, naruto canada narutocanada@gmail.com wrote:
Is there a svn switch like "make"'s -j3 to make svn download faster? It's been 12 hours, and it's still going and going. svn help don't seem to show anything for multi-threaded download.
On 11/1/07, Bradley Lucier lucier@math.purdue.edu wrote:
Ok, it's probably gcc's fault, it did not even finish compiling gambit-c and crashes:
cd /build svn checkout svn://gcc.gnu.org/svn/gcc/trunk gcc-trunk tar -cj gcc-trunk/ > gcc-trunk-129819.tar.bz2 cd gcc-trunk ./configure --prefix=/build/gcc-mainline \ --enable-languages=c --enable-checking=release \ --with-gmp=/build/gmp-4.2.1 --with-mpfr=/build/mpfr-2.3.0 make bootstrap make install
cd /build tar xvfz gambc-v4_0_1.tgz cd gambc-v4_0_1 export PATH=/build/gcc-mainline/bin:$PATH gcc --version ./configure --prefix=/build --enable-single-host --enable-gcc-opts make || sleep 99999999
making all in include make[1]: Entering directory `/build/gambc-v4_0_1/include' make[1]: Leaving directory `/build/gambc-v4_0_1/include' making all in lib make[1]: Entering directory `/build/gambc-v4_0_1/lib' gcc -I../include -I. -O2 -pipe -Wall -W -Wno-unused -O1 -fno-math-errno -fschedule-insns2 -fno-trapping-math -fno-strict-aliasing -fwrapv -fmodulo-sched -freschedule-modulo-scheduled-loops -fomit-frame-pointer -fPIC -fno-common -mieee-fp -DHAVE_CONFIG_H -D___PRIMAL -D___LIBRARY -D___GAMBCDIR=""/build/v4.0.1"" -c _io.c {standard input}: Assembler messages: {standard input}:2977: Warning: end of file not at end of a line; newline inserted {standard input}:3058: Error: suffix or operands invalid for `mov' gcc: Internal error: Killed (program cc1) Please submit a full bug report. See http://gcc.gnu.org/bugs.html for instructions. make[1]: *** [_io.o] Error 1 make[1]: Leaving directory `/build/gambc-v4_0_1/lib' make: *** [all-recursive] Error 1
Brad
On 11/1/07, naruto canada narutocanada@gmail.com wrote:
Wait a minute, I got the same error with gcc-3.4.6 too.
Brad