[Mew-dist 14006] XEmacs + mewls (was: Re: b54)

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2000年 8月 31日 (木) 22:19:33 JST


白井です。

XEmacs 上で 1.95b56 を試してみたのですが、その感想です。

# emacs-version -> "21.2 (beta35) "Nike" XEmacs Lucid"
# Solaris 7 + UA-80(4CPU) + 2GByte Mem というなかなか速い構成。
# ただし、WinNT4.0 から ASTEC-X で使っています。

From: KOIE Hidetaka (鯉江英隆) <hide at example.com> さん曰く
Subject: [Mew-dist 13890] Re: b54
Message-ID: <00Aug21.164248jst.29570 at example.com>
Date: Mon, 21 Aug 2000 16:35:04 +0900

鯉江> emacsはスクロールが速いとジャンプスクロールしたり描画を止めたりするので
鯉江> その辺の関係でぎこちなくなるんでしょうか。
鯉江> だとすると、mewlsを起動するときにnice値を指定してやると
鯉江> emacsにできるだけCPUがまわってくるようになって
鯉江> なめらかになったりするかもしれません。(根拠なし)

# nice はやっていないけど。

私の XEmacs では "滑らかか、ぎこちないか" というレベルではなく、

1. その folder の Scan がすべて終了するまで、Summary buffer はユー
 ザから見て、書き変わらない。

2. Scan している間は XEmacs 上ではなんにも出来ない。

という感じで、call-process で呼んでいるのと、まったく同じ状態に
なります。;_;

XEmacs は debug option を全部はずして compile し直したりしてみま
した。また、鯉江さんの書かれた「PTY パッチ (X-Mail-Count: 13883)」
も全然だめでした。

結局、mewls が速すぎるのがいけないので、附属のパッチを使って
mewls をちょっとだけ遅くしていろいろ試してみたのですが、私の
XEmacs の場合、だいたい 'mewls --wait 20000' ぐらいが丁度良い感
じになりました。

私は 'C' は素人で、なおかつ、Solaris 7 でしか動かしていないので、
パッチの信憑性は 'ゼロ' ですが、世の中、こういう悩ましいことをし
ないとどうしようもない環境もあるよ、という報告まで。

## XEmacs でスムーズに動いている人っていらっしゃるのかしら?

ちなみに、Emacs 20.7 では 'mewls --wait 10000' ぐらいにすると、
folder を scan しながら、なんとか mew-pop もスムーズに動きました。

-- 
白井秀行 (mailto:shirai at example.com)

--- mewls.c.orig	Thu Aug 31 18:13:37 2000
+++ mewls.c	Thu Aug 31 18:14:39 2000
@@ -52,6 +52,7 @@
 
 int First = 0, Last = 0;
 int use_stat = 1;
+useconds_t Wait = 0;
 
 char *
 expandfolder(char *fld) {
@@ -158,8 +159,8 @@
 				putchar(*p++);
 		}
 	printf("\n");
-
 	fflush(stdout);
+	usleep(Wait);
 }
 
 void
@@ -344,6 +345,7 @@
 	" -n  --nostat           Don's use fstat().",
 	" -p  --pick             Pick expression.",
 	" -s  --src              Message source.",
+	" -w  --wait             Wait timer (microsecond).",
 	" -v  --version          Display the version.",
 	NULL
 };
@@ -369,6 +371,7 @@
 	{"nostat",   0, 0, 'n'},
 	{"pick",     1, 0, 'p'},
 	{"src",      1, 0, 's'},
+	{"wait",     1, 0, 'w'},
 	{"version",  0, 0, 'v'},    
 	{0, 0, 0, 0}
 };
@@ -386,7 +389,7 @@
 	char *p;
 	int index = 0;
 
-	while ((optc = getopt_long(argc, argv, "f:hnp:s:v", longopts, (int *)0)) != EOF)
+	while ((optc = getopt_long(argc, argv, "f:hnp:s:vw:", longopts, (int *)0)) != EOF)
 	{
 		switch (optc) {
 		case 'f':
@@ -414,6 +417,10 @@
 		case 'v':
 			version(progname);
 			exit(EXIT_SUCCESS);
+			break;
+		case 'w':
+			Wait = atoi(optarg);
+			if (Wait > 1000000) Wait = 1000000;
 			break;
 		default:
 			usage(progname);



Mew-dist メーリングリストの案内