[#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:20453] Re: [BigDecimal] proposal to change specification

From: "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
Date: 2003-06-25 04:36:16 UTC
List: ruby-dev #20453
こんにちは、斎藤です。
お付き合いありがとうございます ^^;

----- Original Message ----- 
From: "Shigeo Kobayashi" <shigeo@tinyforest.gr.jp>
Sent: Wednesday, June 25, 2003 9:41 AM
Subject: [ruby-dev:20448] Re: [BigDecimal] proposal to change specification

> bigdecimal.c 内に(仕様が変更される可能性のある)他クラスに
> 関係する部分を入れたくないというのが本音です。
> 「Ruby + bigdecimal.dll(so) 」だけを配布したい場合もありますし。

そういう意味があったのですね。

では、[ruby-dev:16715]で石塚さんがおっしゃったように

> 思います。で, bigfloat側はrequireされたときにrationalが既に読み込まれて
> いたら bigloat-rational.rb を読み込み、逆にrationalがrequireされたときに、
> 既にbigfloatが読み込まれていたらbigloat-rational.rbを読み込むと.

とするのはどうでしょうか。双方でたった1行ずつの変更です。

小林さんがおっしゃっているのがそう意味ではなく、BigDecimalが
Rationalを知っている状態にしたくない、ということでしたら、

>     require 'bigdecimal'
>     require 'rational'
> と書いた時点で、相互変換のメソッドが使える状態

というのは無理そうなので、あきらめます。

とりあえずは、石塚さん案対応のパッチを。
(intern.h内の関数を使うのはお行儀が良くない?)

Index: ext/bigdecimal/bigdecimal.c
===================================================================
RCS file: /src/ruby/ext/bigdecimal/bigdecimal.c,v
retrieving revision 1.6
diff -u -r1.6 bigdecimal.c
--- ext/bigdecimal/bigdecimal.c 6 May 2003 13:18:26 -0000       1.6
+++ ext/bigdecimal/bigdecimal.c 25 Jun 2003 04:29:00 -0000
@@ -1445,6 +1445,8 @@
     rb_define_singleton_method(rb_cBigDecimal, "mult!", BigDecimal_mult3, 3);
     rb_define_singleton_method(rb_cBigDecimal, "div!",BigDecimal_divmod4, 4);
 #endif /* USE_MUTABLE_METHOD */
+
+    if(rb_provided("rational")) rb_require("bigdecimal-rational");
 }

 /*
Index: lib/rational.rb
===================================================================
RCS file: /src/ruby/lib/rational.rb,v
retrieving revision 1.12
diff -u -r1.12 rational.rb
--- lib/rational.rb     16 May 2003 17:18:56 -0000      1.12
+++ lib/rational.rb     25 Jun 2003 04:29:00 -0000
@@ -375,3 +375,5 @@
     alias ** rpower
   end
 end
+
+require 'bigdecimal-rational' if defined? BigDecimal

---
斎藤ただし


In This Thread