中川です。 From: matz / netlab.co.jp (Yukihiro Matsumoto) Subject: [ruby-list:8684] Re: can't build 1.1b9_28 on digital-unix Date: Fri, 10 Jul 1998 18:29:52 +0900 > おかしいですね.このパッチはどうでしょう.関係ないかな. 残念ながら同じ結果でした。 どうも bignorm() があやしいのでこんなことを してみました。sizeof(VALUE)==4 の時とつじつまをあわせてる だけです。理屈はわかってません(キッパリ) *** ruby-1.1b9_30/bignum.c Thu Jul 09 17:40:11 1998 --- ruby-1.1b9_30-alpha/bignum.c Fri Jul 10 21:32:09 1998 *************** *** 85,93 **** while (len-- && !ds[len]) ; RBIGNUM(x)->len = ++len; ! if (len*sizeof(USHORT) < sizeof(VALUE) || ! (len*sizeof(USHORT) == sizeof(VALUE) && ! ds[sizeof(VALUE)/sizeof(USHORT)-1] <= 0x3fff)) { long num = 0; while (len--) { num = BIGUP(num) + ds[len]; --- 85,93 ---- while (len-- && !ds[len]) ; RBIGNUM(x)->len = ++len; ! if (len*sizeof(USHORT)*2 < sizeof(VALUE) || ! (len*sizeof(USHORT)*2 == sizeof(VALUE) && ! ds[sizeof(VALUE)/sizeof(USHORT)/2-1] <= 0x3fff)) { long num = 0; while (len--) { num = BIGUP(num) + ds[len]; % make test test succeeded % ruby -e 'p 1<<1014' 175555970201398037864189960037990696642380564349834626243584063630598316216309534309285622385163609395625111210811907575838661883607828732903171318983861449587663958422720200465138886329341888788528401320395513446131006525725061407689368272012526598792334483090416306874948482361796597953940777665648656384 % ruby -e 'p 2**1014' 175555970201398037864189960037990696642380564349834626243584063630598316216309534309285622385163609395625111210811907575838661883607828732903171318983861449587663958422720200465138886329341888788528401320395513446131006525725061407689368272012526598792334483090416306874948482361796597953940777665648656384 % ruby -e 'p (-1<<1014)' -175555970201398037864189960037990696642380564349834626243584063630598316216309534309285622385163609395625111210811907575838661883607828732903171318983861449587663958422720200465138886329341888788528401320395513446131006525725061407689368272012526598792334483090416306874948482361796597953940777665648656384 うまくいっているようです。 綺麗なパッチはどうすればいいのかわからないので よろしくお願いします m(_ _)m -- 中川 剛 / nakagawa / shizuokanet.ne.jp