原です。

In [ruby-math:00967]

>正木です。
>
>In [ruby-math:00963]
>
>|原です。
>|
>||Fixnum と Bignum の区別は Ruby の内部事情ですから、出来る限り
>||user に意識させるべきではないと考えます。
>|
>|同意します。変ですねえ。どこから意見が分かれているのでしょう。(^^;
>
>これは原さんが"組み込みのメソッドを書く人"の立場だからではないでしょ
>うか。
>私は"組み込みのメソッドを使う"ユーザーの立場から書いています。
>
>例えば整数の"/" の再定義をする際に、Fixnum,Bignum 双方を書き換えない
>といけないのは、わずらわしくないですか?
>gcd や isqrt を再定義することは実際にはないかも知れませんが、
>bitlength を負数に対しても定義したいと思う人はいるかも知れません。

Bignum が bignum.c にまとめられているのは、多分、将来 Bignum の別の
実装に取り替えられる事が考慮されているのだと思います。その点につい
てはユーザーにちょっと不便を強いているといえますね。

>Ruby では Linux 等と同じくユーザーが source code に手を入れて自分の使
>い易いようにするのは許されているはず(ひょっとして間違っていますか?)
>なので、例えばある人が bignum.c に新しい method を付け加えたいと思った
>とします。
>その際既に定義してある関数が Integer に対して定義してあって、その引数
>が Fixnum か Bignum かを気にしなくて済むようになっていた方が使いやすい
>ことは例をあげるまでもなく明らかではないでしょうか?
>
>今 bignum.c を見直していて初めて気が付きましたが rb_big_mul(x, y) だけ
>は x が Fixnum の場合にも対応しています。他の関数もそうなっていれば随分
>楽なのにと思います。

いや今そういう事はどうでも良くてですね。いや、良くなくてそれはそれ
て必要な議論なのですが、それは別の機会にする事として、問題となって
いるのは明日にでも 1.8.1 の preview が出るとして、そこに書き込むメ
ソッドをどうするか、という話なんですよ。ビットシフトは Fixnum と
Bignum に書かれていて、bitlength が Integer に書かれている状態に作
者は絶えられないでしょう。だからありえるのは、bitlength を Fixnum 
と Bignum に分けて書き加えるか、numeric.c を全面的に書き換えて、
Fixnum と Bignum を Integer に統合するかどちらかなんです。

後者にはまだまだ議論が必要であるし、それをする人もすぐには出てこな
いでしょうから、さしあたって現状に沿った手軽な方法を取り、正木さん
の問題提起は後でゆっくり検討することにしませんか?

と、作者の代弁風な口をきいていますが、まつもとさんはどう考えている
のかな?