Shiro Kawai
shiro****@lava*****
2003年 5月 11日 (日) 17:21:45 JST
どうも。 From: OGURISU Osamu <oguri****@lagen*****> Subject: [Gauche-devel-jp] using gcc 3.0 and 3.2 on linux (Re: string->number) Date: Sun, 11 May 2003 16:29:08 +0900 > (1) --enable-threads を指定していないのに、gc/MakefileのDEFS に > -DGC_LINUX_THREADS=1 が含まれてしまって、最後のリンクで失敗 > -します。-enable-threads=noneや--enable-threads=pthreadsを指 > -定するとちゃんとmakeできます。 この問題はCVS版で、gc/configure.in を変更することで対応しました。 しかし、gcc-3ではプラットフォームによってコンパイラ自身がcore dump する場合があり、今は様子見モードです。 > test/number.scm内の > > (test* "complex reader (polar)" (make-polar -7.0 -3.0) -7****@-3*****) > (test* "complex reader (polar)" (make-polar 3.5 -3.0) 7/2****@-3*****) > > で失敗しています。なお、gcc-2.95やgcc-3.0ではこのtestを通ります。 > これは、皆目理由が分りません。 最適化によってfloating point arithmeticで使われるレジスタが変わって、 最後の桁にエラーが生じている、というのが考えられますね。 もし良ければ、最適化無しでコンパイルして試してみて下さい。 (number.c と stdlib.c だけで良いです)。 それでエラーが出なければ、最適化が原因ですので、 magnitudeとangleからcomplex numberを作る関数をひとつ 作って、number.cとstdlib.cで共用るようにすれば何とかなるかも しれません。 > それと、lib/gauche/numerical.scmのtypoがひとつありました ありがとうございます。修正しておきます。 --shiro