えぐち@エスアンドイー です。

>>> 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]のパッチは、そのままでは
  きっと正しく機能しないので、  結果は追究しないでください。^^;;

	えぐち