[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00185] Re: FreeWnn-1.1.1-a012 がタイムアウトします



片山@PFUです。

Date: Fri, 08 Oct 1999 01:04:01 +0900
From: Kenichi Niioka (新岡賢一)  <niioka@kk.iij4u.or.jp>

>> a011からa012で浮動少数に関わる変更はRANDだけだと思うのですが、config.hの

整数0除算でも SIGFPE になりますから、必ずしも浮動小数点演算例外
とは言えませんが、

>>> 33885 jserver  GIO   fd 0 read 24 bytes
>>>       "\0\0\0\^X\0\0\0\0\0\0\0\0\0\0g=\M^?\M^?\M^?\M-}\M^?\M^?\M^?\M-}"
>>> 33885 jserver  RET   read 24/0x18
>>> 33885 jserver  PSIG  SIGFPE SIG_DFL

JS_HINDO_SET で死んでいますから、drand48 が関係してそうです。

>> "HAVE_DRAND48"と"HAVE_RAND_MAX"はどうなってますか?

>#define HAVE_DRAND48 1

>#define HAVE_RAND_MAX 1

drand48 や浮動小数点演算のオブジェクトが腐っているということはな
いでしょうか。次のプログラムを実行してみて下さい。

――――ここから――――ここから――――ここから――――ここから――――
#include <stdlib.h>

main(int argc, char **argv)
{
	int i;

	if (argc > 1) {
		for (i = 0; i < 100; i++) {
			printf("%5d %d\n",
				i, drand48() < (double)1 / ((i >> 2) + 1));
		}
	} else {
		for (i = 0; i < 100; i++) {
			printf("%5d %f\n", i, drand48());
		}
	}
	return 0;
}
――――ここまで――――ここまで――――ここまで――――ここまで――――

引数無しと有りで実行してみて下さい。実行を完了できるかが重要で、
表示される値そのものは気にしないで下さい。
--
片山@PFU