[Gauche-devel-jp] using gcc 3.0 and 3.2 on linux

Back to archive index

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



Gauche-devel-jp メーリングリストの案内
Back to archive index