永野です。 たいへんお待たせいたしました。すみません。Emacs 21.1 用の portable dumper です。まだ Un*x 上でしか動きません。お時間のある方、どうか動か してみてください。よろしくお願いします。 使い方は、emacs-21.1.tar.gz を展開してこの patch をあて、autoconf で configure 等々を作り直してから、./configure --with-pdump=debug; make して下さい。=debug を付けると、dump 時と load 時に stderr に message を出し、load 完了後に test case を走らせ、recursive-edit に入る前に3回 GC します。=debug なしの状態はまだろくに test していないので、まずは付 けてお試し下さい。 開発は Linux kernel 2.2.19, gcc 3.0.3, GNU bunutils 2.11.2 上で行ない、 Debian testing ベースの Linux kernel 2.4.15, gcc 2.95.4, GNU binutils 2.11.92.0.12.3 上でも動作確認をしています。安定度は、完全に動きはじめ たのが昨日で、それから自分の .emacs を読ませ、丸1日ほど pdump 版の Emacs を使って、cc-mode などを使って code の整形や patch の作成をやっ て、original と違う挙動はまだ見付けていません。(さすがにこいつで mail を送受信する勇気はまだありません……) code の中身についてですが、書き足した string data, interval, hash table について現在は dump の時に思いっきり手抜きをして、load 時にたく さんの仕事をしているので(せっかくの Lisp_Object mmap 領域が copy-on-write で汚れまくってしまうのも勿体ない)、global var. の退避忘 れなどの bug が片付き、Windows への porting が済んでから、Meadow 2 の beta release までにはもっとまともな実装に差しかえます。特に string data 領域を mmap 可能にするのを優先します(どうしてそうなっていないんだ ろう;;)。手抜きといえば hash table はかなりメチャクチャなことをしてい ますが、hash table は現状、数自体が少なく、しかもまともに Vector から 要素を読んで rehash しようと思ったら僕の力では何年かかるか分からないの で;;、しばらくはこれでいいかと思っています。 言うまでもありませんが、original の emacs-21.1.tar.gz と少しでも挙動が 違うものは全て bug です。ご報告よろしくお願いいたします。 -- Keiichiro Nagano
Attachment:
pdump21-knagano-020314.diff.gz
Description: Binary data