えぐち@エスアンドイー です。 >>> In message [ruby-list:19522] Re: build on alpha On Wed, 15 Dec 1999 12:26:01 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) said: matz> まつもと ゆきひろです matz> matz> In message "[ruby-list:19520] Re: build on alpha" matz> on 99/12/15, EGUCHI Osamu <eguchi / shizuokanet.ne.jp> writes: matz> matz> |ところで、ちょっと 64bit 化 による恩恵について考えましたが、 matz> |演算単位が倍になるので Bignum が速くなりそうな気がします。 matz> |しかし、調べてみたら matz> | matz> | typedef unsigned short USHORT; matz> | matz> |に固定でしたので、現状は貢献していないようです。 matz> matz> shortが32bitってことは...ないでしょうね。 これはないでしょう。 もし short が 32bit だと、16bit な型がなくて不便でしょう。 # short short とか long char とかはないとして ^^;; matz> 理論上はshortがlongの倍あればよいわけですが、どこかでintをま matz> ぜてたりしそうな気がします。たとえば、このパッチの中でさえ matz> matz> | #define BITSPERDIG (sizeof(short)*CHAR_BIT) matz> matz> なんてのがあるわけだし。ほんとは matz> matz> | #define BITSPERDIG (sizeof(USHORT)*CHAR_BIT) matz> matz> でなくちゃ。 ほんとだぁ、まだあるかなぁ、、 気づいた範囲内では + ruby.h の struct RBignum で unsigned short *digits としている + marshal が、*digits が 2 バイトであることを仮定している ∴marshal で store されたデータが、いじると非互換になる + など、小手先で対応できない物も多いので、ちょっと深く考えてみます。 というわけで、[ruby-list:19520]のパッチは、そのままでは きっと正しく機能しないので、 結果は追究しないでください。^^;; えぐち