[#19082] TermIO for ioctl — Shugo Maeda <shugo@...>

前田です。

19 messages 1999/12/01

[#19086] iconv wrapper — nobu.nakada@...

なかだです。

22 messages 1999/12/01
[#19103] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/02

いがらしです。

[#19104] Re: iconv wrapper — nobu.nakada@... 1999/12/02

なかだです。

[#19187] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/06

いがらしです。

[#19139] 簡易プリプロセッサ epp 0.1 — SASAKI Shunsuke <ele@...17.odn.ne.jp>

どうも。佐々木です。

12 messages 1999/12/03

[#19193] Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...>

はじめまして。黒崎と申します。最近 Ruby を使いはじめました。よろしく

18 messages 1999/12/06
[#19195] Japanese Regular Expression — gotoken@... (GOTO Kentaro) 1999/12/06

In message "[ruby-list:19193] Japanese Regular Expression"

[#19200] Re: Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...> 1999/12/06

gotoken さん、お返事ありがとうございます。

[#19206] Re: Japanese Regular Expression — matz@... (Yukihiro Matsumoto) 1999/12/06

まつもと ゆきひろです

[#19246] 破壊的イテレータ? — Hiroshi Saito <HiroshiSaito@...>

どうも、お世話になっております。サイトウです。

71 messages 1999/12/07
[#19257] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19259] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19278] オブジェクトの代入について — Hiroshi Saito <HiroshiSaito@...> 1999/12/08

サイトウです。

[#19296] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/08

In message "[ruby-list:19278] オブジェクトの代入について"

[#19316] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19325] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19328] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19331] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19337] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19343] Re: オブジェクトの代入について — ogino@... (Ogino Junya) 1999/12/09

荻野ともうします。

[#19351] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/09

[#19358] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19366] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/10

[#19249] ruby story ? — "Kikutani, Makoto" <kikutani@...>

Maya Stodteつー人からRuby storyについて話を聞きたいのだが、

29 messages 1999/12/07

[#19441] 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

49 messages 1999/12/13
[#19470] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19471] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19474] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19481] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#19482] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19483] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#23719] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#23722] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 2000/07/06

まつもと ゆきひろです

[#23723] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#19442] ClipBoard I/O 対応 — Itou-T15@...

クリップボードI/O はたいていファイルI/Oの様に抽象化されていないが

47 messages 1999/12/13
[#19465] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/13

[#19467] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/13

まつもと ゆきひろです

[#19508] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/14

[#19523] Re: ClipBoard I/O 対応 — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/15

なひです.

[#19551] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19556] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/15

まつもと ゆきひろです

[#19565] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19456] mod_ruby & eRuby — Wakou Aoyama <wakou@...>

青山です。

20 messages 1999/12/13
[#19490] Re: mod_ruby & eRuby — TAKAHASHI Masayoshi <maki@...> 1999/12/14

mod_ruby初心者の高橋征義です。

[#19484] Ruby Application Archive — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1999/12/14

[#19578] ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...>

はじめまして。ももたろといいますm(_ _)m

48 messages 1999/12/16
[#19581] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/16

原です。

[#19583] Re: ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...> 1999/12/16

こん○○は〜。ももたろです。

[#19622] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/17

原です。

[#19626] Re: ruby-list の過去ログの作り方 — matz@... (Yukihiro Matsumoto) 1999/12/17

まつもと ゆきひろです

[#19630] Re: ruby-list の過去ログの作り方 — Wakou Aoyama <wakou@...> 1999/12/17

青山です。

[#19698] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/19

原です。

[#19722] [PROPOSAL] Reimplement 'blade' (Re: ruby-list =?ISO-2022-JP? B??= の過去ログの作り方) — Hideto ISHIBASHI <s34204@...> 1999/12/20

石橋秀仁です。

[#19690] Book : rb_obj_call_init() — "Shigeo Kobayashi" <shigeo@...>

小林です。

29 messages 1999/12/19

[#19776] [mswin32] TCPSocket::new() raises Errno::ENOENT — "NAKAMURA, Hiroshi" <nakahiro@...>

なひです.

17 messages 1999/12/21
[#19789] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/12/21

小田@QNES です。

[#19858] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Katsuyuki Komatsu <komatsu@...> 1999/12/23

小松です。

[#19934] RD with method index (again) — Koji Arai <JCA02266@...>

新井です。

78 messages 1999/12/27
[#20160] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/10

新井です。

[#19937] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/27

Toshです。

[#19962] Re: RD with method index (again) — Koji Arai <JCA02266@...> 1999/12/28

新井です。

[#19988] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/29

Toshです。

[#20017] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/02

新井です。

[#20022] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#20025] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/03

新井です。

[#20032] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#20012] Re: RD with method index (again) — nobu.nakada@... 2000/01/02

なかだです。

[#20016] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/02

Toshです。

[#19976] Tell me your favorite tools — Yasushi Shoji <yashi@...>

やすしです。

25 messages 1999/12/28
[#20010] Re: Tell me your favorite tools — Yasushi Shoji <yashi@...> 2000/01/01

やすしです。

[#21496] Re: Tell me your favorite tools — OZAWA Sakuro <crouton@...> 2000/03/16

さくです。

[ruby-list:19891] Re: build on alpha (1/2)

From: EGUCHI Osamu <eguchi@...>
Date: 1999-12-26 16:09:12 UTC
List: ruby-list #19891
えぐち@エスアンドイー です。

#手違いで [ruby-list:19856] なくしてしまい
#body は復元したものの、 MID がおかしいかも知れません
#スレッドが正しくつながらなかったら御容赦ください _o_

>>> In message [ruby-list:19856] Re: build on alpha (1/2)
    On Thu, 23 Dec 1999 14:00:15 +0900, 中川 said:

中川> 中川です。
中川> 
中川> In message "[ruby-list:19825] Re: build on alpha (1/2)"
中川>     on 99/12/22, EGUCHI Osamu <eguchi@shizuokanet.ne.jp> wrote:
中川> 
中川>   > #引用元のマルチパートのエンコードに失敗してしまったので、
中川>   > #御見苦しいかも知れませんが、御勘弁を。
中川> 
中川> ごめんなさい。encoding を x-gzip64 で split されてしまったので元に戻らな
中川> かったみたいです。
中川> 
中川>   >   if (n1**2-1) / (n1+1) != (n1-1)
中川> 
中川>   > の / が事故現場だと思います。
中川>   > とすると、 n1 + 1 が 0 になっているのかなぁ?
中川> 
中川> ログを見ていただければ分りますが、n1+1 が 0 になっているわけではなさそう
中川> です。それより << の処理に問題がありそうです。

32bit マシンで 64bitマシンの状況を再現させる方法を、週末考えてみました。

考え付いた、再現と対策の方法は

  USHORT を unsigned int (32bit) にし、桁溢れが発生させる

  コンパイラの警告や make test でエラーが出た部分を
  long long にかえたりキャストしたりする事で黙らせる

というものです。(我ながら力業)

この方法で、 make test の marshal 以外の項目をパスする事が出来ました。
#面白い事に、加減算などは数%から十数%速度が向上しました
#が乗除算は数十%遅くなったです ^^;;

このメールのパッチは、 cvs の HEAD へのパッチです。
#このパッチでは、long long を元の long に直してあります。

	えぐち

Index: bignum.c
===================================================================
RCS file: /usr/home/eguchi/cvs.netlab.co.jp/ruby/bignum.c,v
retrieving revision 1.4
diff -d -u -r1.4 bignum.c
--- bignum.c	1999/12/06 09:03:49	1.4
+++ bignum.c	1999/12/26 13:53:40
@@ -13,15 +13,14 @@
 #include <ctype.h>
 
 VALUE rb_cBignum;
-typedef unsigned short USHORT;
 
 #define BDIGITS(x) RBIGNUM(x)->digits
-#define BITSPERDIG (sizeof(short)*CHAR_BIT)
-#define BIGRAD (1L << BITSPERDIG)
-#define DIGSPERINT ((unsigned int)(sizeof(long)/sizeof(short)))
+#define BITSPERDIG (sizeof(USHORT)*CHAR_BIT)
+#define BIGRAD (((unsigned long)1) << BITSPERDIG)
+#define DIGSPERINT ((unsigned int)(sizeof(long)/sizeof(USHORT)))
 #define BIGUP(x) ((unsigned long)(x) << BITSPERDIG)
 #define BIGDN(x) RSHIFT(x,BITSPERDIG)
-#define BIGLO(x) ((USHORT)((x) & (BIGRAD-1)))
+#define BIGLO(x) ((USHORT)((x)))
 
 static VALUE
 bignew_1(klass, len, sign)
@@ -263,7 +262,7 @@
 	num = c;
 	for (;;) {
 	    while (i<blen) {
-		num += zds[i]*base;
+		num += (unsigned long)zds[i] * base;
 		zds[i++] = BIGLO(num);
 		num = BIGDN(num);
 	    }
@@ -589,7 +588,7 @@
 
     len = RBIGNUM(x)->len;
     for (i = 0, num = 0; i < len; i++) {
-	num += BDIGITS(x)[i] + BDIGITS(y)[i];
+	num += (unsigned long)BDIGITS(x)[i] + BDIGITS(y)[i];
 	BDIGITS(z)[i] = BIGLO(num);
 	num = BIGDN(num);
     }
@@ -680,9 +679,11 @@
 	if (dd == 0) continue;
 	n = 0;
 	for (j = 0; j < RBIGNUM(y)->len; j++) {
-	    int ee = n + dd * BDIGITS(y)[j];
-	    n = zds[i + j] + ee;
-	    if (ee) zds[i + j] = BIGLO(n);
+	    long ee = n + dd * BDIGITS(y)[j];
+	    if (ee) {
+		n = zds[i + j] + ee;
+		zds[i + j] = BIGLO(n);
+	    }
 	    n = BIGDN(n);
 	}
 	if (n) {
@@ -737,13 +738,13 @@
     zds = BDIGITS(z);
     if (nx==ny) zds[nx+1] = 0;
     while (!yds[ny-1]) ny--;
-    if ((dd = BIGRAD/(int)(yds[ny-1]+1)) != 1) {
+    if ((dd = BIGRAD / (yds[ny - 1] + 1)) != 1) {
 	yy = rb_big_clone(y);
 	tds = BDIGITS(yy);
 	j = 0;
 	num = 0;
 	while (j<ny) {
-	    num += (long)yds[j]*dd;
+	    num += (long)yds[j] * dd;
 	    tds[j++] = BIGLO(num);
 	    num = BIGDN(num);
 	}
@@ -751,7 +752,7 @@
 	j = 0;
 	num = 0;
 	while (j<nx) {
-	    num += (long)xds[j]*dd;
+	    num += (long)xds[j] * dd;
 	    zds[j++] = BIGLO(num);
 	    num = BIGDN(num);
 	}
@@ -769,11 +770,13 @@
 	if (q) {
 	    i = 0; num = 0; t2 = 0;
 	    do {			/* multiply and subtract */
-		int ee;
+		long ee;
 		t2 += (long)yds[i] * q;
 		ee = num - BIGLO(t2);
-		num = zds[j - ny + i] + ee;
-		if (ee) zds[j - ny + i] = BIGLO(num);
+		if (ee) {
+		    num = zds[j - ny + i] + ee;
+		    zds[j - ny + i] = BIGLO(num);
+		}
 		num = BIGDN(num);
 		t2 = BIGDN(t2);
 	    } while (++i < ny);
@@ -781,9 +784,11 @@
 	    while (num) {		/* "add back" required */
 		i = 0; num = 0; q--;
 		do {
-		    int ee = num + yds[i];
-		    num = (long) zds[j - ny + i] + ee;
-		    if (ee) zds[j - ny + i] = BIGLO(num);
+		    long ee = num + yds[i];
+		    if (ee) {
+			num = (long)zds[j - ny + i] + ee;
+			zds[j - ny + i] = BIGLO(num);
+		    }
 		    num = BIGDN(num);
 		} while (++i < ny);
 		num--;
@@ -1143,7 +1148,7 @@
 	*zds++ = 0;
     }
     for (i=0; i<len; i++) {
-	num = num | *xds++<<s2;
+	num = num | (unsigned long)*xds++ << s2;
 	*zds++ = BIGLO(num);
 	num = BIGDN(num);
     }

In This Thread