[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:2815]Portable dumper



北口です。

> > というのを書いてから二ヶ月も経過していますが、ようやく
> > portable dumper そのものの説明を書いてみました。明らかに最後
> > の方は息切れしていますが、実際にどのように実装しているかの説
> > 明は code と共に出します。
> 
> というわけで、Emacs 20.7 に対する patch です。まだ作業中です
> が、だいたいの雰囲気は掴めると思います。Meadow に対する
> patch はもうちょっと後になります。いろいろと適当に実装してい
> るところもありますが、それはこれから修正していきます。たぶん
> だいたい動作するんではないか、と思いますが、よほどの物好きで
> ない限り、この code の使用はおすすめしません。
> 
> Portable dumper 付きの Emacs を作るには、この patch を Emacs
> 20.7 の source tree にあてて、普通にcompile してください。
> Build は
> 
> Finding pointers to doc strings...
> Finding pointers to doc strings...done
> Wrote /home/penny/work/emacs/lib-src/fns-20.7.1.el
> Dumping under names emacs and emacs-20.7.1
> 0 pure bytes used
> Adding new name: no such file or directory, /home/penny/work/emacs/src/emacs, /home/penny/work/emacs/src/emacs-20.7.1
> make: *** [emacs] Error 255
> 
> というようなことを言って途中で止まります。ここで、src
> directory に移動して ./temacs と入力すると普通の Emacs が立
> ち上がります。他の directory からだと dump された data がみ
> つからないので、bare Emacs が起動してしまいます。いまのとこ
> ろ、lisp.h で無理矢理 #define PDUMP していますので、
> configure の option は不要です。たぶん、
> #undef PDUMP な code は compile できないでしょう。

本質には関係ないですが、手元の FreeBSD 上では

・emacs.c
  #include <sys/stat.h> がなくて、struct stat のサイズなんか知らんで、
  と怒られた。
・alloc.c
  #include <stdio.h> がなくて、stderr が定義されてないで、と怒られた。

でした。

んで、C-xC-f でファイルを開こうとして、C-i で completion すると、
永野さんがおっしゃってたように Fgarbage_collect() で落ちました。
その core を gdb で見てみましたが、この mark_object() の呼び出しの
山を理解できるようになるには、かなり修行が必要そうですね...(^^;


--
Shuichi Kitaguchi // kit@xxxxxxxx / ki@xxxxxxxxxxxxxx