[#9569] Re: [ruby-ext:01030] Re: gnome-ruby package — Hiroshi IGARASHI <igarashi@...>
いがらしです。
5 messages
2000/04/14
[#9581] SIGFPE isn't raised on FreeBSD 4.0 — gotoken@... (GOTO Kentaro)
ごとけんです
18 messages
2000/04/18
[#9582] Re: SIGFPE isn't raised on FreeBSD 4.0
— ARIMA Yasuhiro <fit0298@...>
2000/04/18
有馬です。
[#9583] Re: SIGFPE isn't raised on FreeBSD 4.0
— EGUCHI Osamu <eguchi@...>
2000/04/18
えぐち@エスアンドイー です。
[#9587] Re: SIGFPE isn't raised on FreeBSD 4.0
— nobu.nakada@...
2000/04/18
なかだです。
[#9588] Re: SIGFPE isn't raised on FreeBSD 4.0
— matz@... (Yukihiro Matsumoto)
2000/04/18
まつもと ゆきひろです
[#9589] Re: SIGFPE isn't raised on FreeBSD 4.0
— nobu.nakada@...
2000/04/18
なかだです。
[#9590] Re: SIGFPE isn't raised on FreeBSD 4.0
— matz@... (Yukihiro Matsumoto)
2000/04/18
まつもと ゆきひろです
[#9591] Re: SIGFPE isn't raised on FreeBSD 4.0
— nobu.nakada@...
2000/04/18
なかだです。
[#9592] Re: SIGFPE isn't raised on FreeBSD 4.0
— matz@... (Yukihiro Matsumoto)
2000/04/18
まつもと ゆきひろです
[#9599] module_eval — Tadayoshi Funaba <tadf@...>
ふなばです。
7 messages
2000/04/20
[ruby-dev:9589] Re: SIGFPE isn't raised on FreeBSD 4.0
From:
nobu.nakada@...
Date:
2000-04-18 08:29:17 UTC
List:
ruby-dev #9589
なかだです。
At Tue, 18 Apr 2000 16:09:55 +0900,
matz@netlab.co.jp (Yukihiro Matsumoto) wrote:
> | [ruby-list:21974] もこれと関係するとしたら、プラットホーム依存のマク
> |ロがぞろぞろ並んでしまいそうなので、やっぱ configure じゃないですか。
>
> うーん、configureということには基本的には賛成なのですが、
>
> !DIV0_ALLOWED
>
> な環境では常に
>
> | fpsetmask(fpgetmask() & ~(FP_X_DZ|FP_X_INV|FP_X_OFL));
>
> が有効なものなんですか?
すいません。もちろんそうは問屋が卸しっこないので(^^;、こんなもんでしょ
うか。Free BSD 以外の環境だと fpsetmask() 相当の関数って何があるんでしょ
う?
AC_CACHE_CHECK(whether division by 0 is allowed, rb_cv_div0_allowed,
[AC_TRY_RUN([
double divide(x, y)
double x, y;
{
return x / y;
}
int main()
{
divide(1.0, 0.0);
return 0;
}
],
rb_cv_div0_allowed=yes,
rb_cv_div0_allowed=no,
rb_cv_div0_allowed=yes)])
if test "$rb_cv_div0_allowed" = yes; then
AC_DEFINE(DIV0_ALLOWED)
else
AC_CHECK_HEADERS(floatingpoint.h)
AC_CHECK_FUNCS(fpsetmask)
fi
--- .../numeric.c Tue Mar 7 23:19:35 2000
+++ numeric.c Tue Apr 18 17:19:38 2000
@@ -13,9 +13,11 @@
#include "ruby.h"
#include <math.h>
#include <stdio.h>
-#ifdef __FreeBSD__
+#ifndef DIV0_ALLOWED
+#ifdef HAVE_FLOATINGPOINT_H
#include <floatingpoint.h>
#endif
+#endif /* !DIV0_ALLOWED */
static ID coerce;
static ID to_i;
@@ -1451,10 +1453,12 @@ fix_zero_p(num)
void
Init_Numeric()
{
-#ifdef __FreeBSD__
+#ifndef DIV0_ALLOWED
+#ifdef HAVE_FPSETMASK
/* allow divide by zero -- Inf */
fpsetmask(fpgetmask() & ~(FP_X_DZ|FP_X_INV|FP_X_OFL));
#endif
+#endif /* !DIV0_ALLOWED */
coerce = rb_intern("coerce");
to_i = rb_intern("to_i");
--
そうだ 強気に ちょっと インチキに☆彡
中田 "Bugるくらいがちょうどいいかも;-)" 伸悦