[Mew-dist 08872] range, cache, ...
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
1999年 5月 20日 (木) 16:46:57 JST
b27 では、"g" したときに range を訊かずに、update だと思って scan する
ようになりました。また長年、Summary モードのマークを保存したいという要
望もあります。
それで、"g" したときの仕組みをおさらいしてみると、
(1) Summary バッファのタイムスタンプと .mew-cache のタイムスタンプを比べる
→ .mew-cache の方が新しいなら、これを読み込む
(2) フォルダであるディレクトリと .mew-cache のタイムスタンプを比べる
→ ディレクトリの方が新しいなら、差分を scan する
(e.g. コマンドラインで imget した場合。
+inbox から refile した後の +foo)
<問題A> NFS
通常ファイルを書くと、ディレクトリが更新され、次にファイルが更新されま
す。よって、ファイルのタイムスタンプはディレクトリよりも新しくなること
が期待されています。しかし、NFS では期待通りにはならないことがあるよう
です。それで、酒井さんは、Mail/cache みたいなキャッシュ専用のディレク
トリに書き込むという解決方法を提案してます。
長所:(1) と (2) に依存関係がなくなる
短所: 今までのキャッシュが使えなくなる(移行コマンドを用意すべき)
<問題B> "s" したときのデフォルトの range
真面目に "g" でフォルダに行く人は、必ずキャッシュが最新になります(差分
が scan される)。この場合、"s" とコマンドを打つ人は、おそらくキャッシュ
をフラッシュしたい人なので、デフォルトは "all" であるべきでしょう。
バッファ操作でフォルダに行く人は、"s" したときに "update" の方がいいん
じゃないかと思います。
"g" ではなく、バッファ操作でフォルダに行く人はどれぐらいいるでしょうか?
<問題C> マークの保存
仮定:<問題A> の解決案を採用し、(1) と (2) に依存関係がなくなったとする。
キャッシュ(マーク)を保存するタイミングには 2 つの候補があります。
(a) マークを付けたとき
(b) Emacs を終了するとき
さて、複数の Emacs を開いて、キャッシュを競合して読み書きしている状況
を考えましょう。(b) では同期をとる間隔があまりにも長いので、きっとうま
く行きません。よって、(a) になりますが、マークを付けるたびにキャッシュ
を保存するのは重いかなとも思います。
--かず@どうしよう
Mew-dist メーリングリストの案内