From: Tadashi Saito Date: 2003-07-07T14:43:23+09:00 Subject: [ruby-dev:20520] Re: [BigDecimal] renaming proposal 斎藤と申します。 言いだしっぺなのに、時間が取れずすみません。 ----- Original Message ----- From: "Yukihiro Matsumoto" Sent: Wednesday, June 25, 2003 12:45 PM Subject: [ruby-dev:20452] Re: [BigDecimal] renaming proposal > ちょうど1.8.0で仕様変更フェーズですから、 > > 1.8.0 新しいのを用意。古いのに警告を出す > 1.8.1 古いのを消す(別に消さなくてもいいけど) > > という移行手順が取れると思います。 自分は、BigDecimalについては「互換性のしがらみ」というのが ないものだと思っていました。 まつもとさんもご存知とは思いますが、BigFloatが改名され BigDecimalという名前のライブラリが生まれたのはrough以下に 入ってからであり、正式にはまだ一度もリリースされていない という見方からです。 また名前以上に (まだ詰める必要のある部分もありそうですが) mutable→immutableという結構抜本な変更もあり、事実それに 伴ってadd!等のメソッドは削除されています。 ということで、既にBigFloatとの互換性を損なう変更が 成されているので、そこまで気を使うよりも、必要な変更があれば すべきだと思っていました。 しかし、小林さんご自身をはじめとするBigFloatユーザからすれば、 できるだけ互換性を残して欲しいという考えもごもっともですよね。 その点、自分は配慮が足りませんでした。すみません。 ということでそのために、以下のようにしてはどうかというのが まつもとさんの提案の趣旨だったと思うのですが… どうでしょう? 小林さん。 もし削除するのがためらわれるのでしたら、#if・#endifの行が なくても構わないと思います。 Index: bigdecimal.c =================================================================== RCS file: /src/ruby/ext/bigdecimal/bigdecimal.c,v retrieving revision 1.9 diff -u -p -r1.9 bigdecimal.c --- bigdecimal.c 1 Jul 2003 14:14:18 -0000 1.9 +++ bigdecimal.c 7 Jul 2003 05:20:26 -0000 @@ -1066,6 +1066,15 @@ BigDecimal_to_s(int argc, VALUE *argv, V return rb_str_new2(psz); } +#if RUBY_VERSION_CODE < 181 +static VALUE +BigDecimal_to_parts(VALUE self) +{ + rb_warn("BigDecimal#to_parts is deprecated; use BigDecimal#split"); + return BigDecimal_split(self); +} +#endif + static VALUE BigDecimal_split(VALUE self) { @@ -1406,6 +1415,9 @@ Init_bigdecimal(void) rb_define_method(rb_cBigDecimal, "hash", BigDecimal_hash, 0); rb_define_method(rb_cBigDecimal, "to_s", BigDecimal_to_s, -1); rb_define_method(rb_cBigDecimal, "to_i", BigDecimal_to_i, 0); +#if RUBY_VERSION_CODE < 181 + rb_define_method(rb_cBigDecimal, "to_parts", BigDecimal_to_parts, 0); +#endif rb_define_method(rb_cBigDecimal, "split", BigDecimal_split, 0); rb_define_method(rb_cBigDecimal, "+", BigDecimal_add, 1); rb_define_method(rb_cBigDecimal, "-", BigDecimal_sub, 1); --- 斎藤ただし