まつもと ゆきひろです

In message "[ruby-list:8669] Re: can't build 1.1b9_28 on digital-unix"
    on 98/07/10, Go Nakagawa <nakagawa / shizuokanet.ne.jp> writes:

|中川です。

|> |> % ruby -e 'p 1<<1014'
|> |> % ruby -e 'p 2**1014'
|> 
|> こちらも教えて下さいね.
|
|1.1b9_29, 1.1b9_29+[ruby-list:8660]のパッチ、1.1b9_30 で同じ
|結果になりました。

ありがとうございます.お手数かけます.うちのalphaマシンが動
くようになれば64bitアーキテクチャのテストも出来るんでしょう
けど(今はビデオカードがない).

|% ruby -e 'p (-1<<32)'
|0

おかしいですね.このパッチはどうでしょう.関係ないかな.

--- numeric.c	1998/07/09 08:40:18	1.1.1.2.2.24
+++ numeric.c	1998/07/10 09:11:42
@@ -1096,8 +1096,9 @@
 {
-    long val, width;
+    long val;
+    int width;
 
     val = NUM2LONG(x);
-    width = NUM2LONG(y);
+    width = NUM2INT(y);
     if (width > (sizeof(VALUE)*CHAR_BIT-1)
-	|| (unsigned long)val>>(sizeof(VALUE)*CHAR_BIT-1-width) > 0) {
+	|| ((unsigned long)val)>>(sizeof(VALUE)*CHAR_BIT-1-width) > 0) {
 	return big_lshift(int2big(val), y);

|% ruby -e 'p 2**1014'
|0

げ.おかしいなあ.b9_30ではlongに依存する部分はなくしたと思っ
たのになあ.