[#20392] [BigDecimal] proposal to change specification — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>

斎藤と申します。

25 messages 2003/06/20
[#20407] Re: [BigDecimal] proposal to change specification — "Shigeo Kobayashi" <shigeo@...> 2003/06/22

小林です。

[#20447] [BigDecimal] renaming proposal — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>

斎藤です。

47 messages 2003/06/24
[#20621] Re: [BigDecimal] renaming proposal — "Shigeo Kobayashi" <shigeo@...> 2003/07/11

小林@MAILチェック中です。

[#20628] Re: [BigDecimal] renaming proposal — "Shigeo Kobayashi" <shigeo@...> 2003/07/11

小林です。

[ruby-dev:20410] Re: [BigDecimal] proposal to change specification

From: "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
Date: 2003-06-23 03:12:35 UTC
List: ruby-dev #20410
斎藤と申します。

> いやぁ、こういう風にしっかり見て下さる人がいると
> ほんとうに助かります。斎藤さん感謝です。

とんでもないです。こういう提案の時期が遅れてしまい、
申しわけないです。

>(snip)
> 後日、当てます。

ありがとうございます。よろしくお願いします。


BigDecimal#signの件はとりあえず置いておいて、
とり急ぎバグの修正を。

・NTと_MSC_VERがdefineされている環境でのisinf()の定義を修正

でも正直、どんな環境でこの部分が意味を持つのか正直
分かってません…ごめんなさい。手元のWindowsXP+VS.NET2002で
win32/configure.batを使ってnmakeすると、この部分は
無視されているようでした。

・lib/bigdecimal-rational.rb中のto_rでの、NoMethodErrorを修正

修正後でも、BigDecimal本体より早くrequireするとNameErrorになったり

% ruby -rbigdecimal-rational -rbigdecimal -rrational  -e 'print "ok\n"'
/usr/local/lib/ruby/1.8/i686-linux/bigdecimal.so: BigDecimal is
 already defined (NameError)

Rationalより早くrequireすると警告が出たり

% ruby  -rbigdecimal -rbigdecimal-rational -rrational  -e 'print "ok\n"'
/usr/local/lib/ruby/1.8/rational.rb:47: warning: already initialized
 constant Rational
ok

するものの、それ以外はうまく行っているように思えます。

あとついでに、VPrint()の定義を#ifdef _DEBUGで囲っておきました。

ということで以下のパッチも、よろしくお願いします。

Index: bigdecimal.c
===================================================================
RCS file: /src/ruby/ext/bigdecimal/bigdecimal.c,v
retrieving revision 1.6
diff -u -r1.6 bigdecimal.c
--- bigdecimal.c 6 May 2003 13:18:26 -0000 1.6
+++ bigdecimal.c 22 Jun 2003 16:22:51 -0000
@@ -39,7 +39,7 @@
 #ifdef _MSC_VER
 #include <float.h>
 #define isnan(x) _isnan(x)
-#define isinf(x) (!(_finite(x)))
+#define isinf(x) (!(_finite(x))&&!(_isnan(x)))
 #endif /* _MSC_VER */
 #endif /* defined NT */
 #include "ruby.h"
@@ -2980,6 +2980,7 @@
     return (int)val;
 }

+#ifdef _DEBUG
 /*
  *    cntl_chr ... ASCIIZ Character, print control characters
  *     Available control codes:
@@ -3082,6 +3083,7 @@
     }
     return (int)nc;
 }
+#endif /* _DEBUG */

 static void
 VpFormatSt(char *psz,S_INT fFmt)
Index: lib/bigdecimal-rational.rb
===================================================================
RCS file: /src/ruby/ext/bigdecimal/lib/bigdecimal-rational.rb,v
retrieving revision 1.1
diff -u -r1.1 bigdecimal-rational.rb
--- lib/bigdecimal-rational.rb 28 Mar 2003 05:00:21 -0000 1.1
+++ lib/bigdecimal-rational.rb 22 Jun 2003 16:22:51 -0000
@@ -12,7 +12,7 @@
        else
           denominator = base ** denomi_power
        end
-       Rational.new(numerator,denominator)
+       Rational(numerator,denominator)
     end
 end

--
斎藤ただし


In This Thread