[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00185] Re: FreeWnn-1.1.1-a012 がタイムアウトします
- To: freewnn@tomo.tomo.gr.jp
- Subject: [freewnn:00185] Re: FreeWnn-1.1.1-a012 がタイムアウトします
- From: KATAYAMA Yoshio <kate@XXXX>
- Date: Sat, 09 Oct 1999 07:00:25 +0900
- In-Reply-To: Your message of Fri, 08 Oct 1999 01:04:01 +0900. <19991008010401L.niioka@kk.iij4u.or.jp>
- Reply-To: freewnn@tomo.gr.jp
- Sender: kate@XXXX
片山@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