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

[MD:2843]Make Portable Dumper fit with Meadow heap manager.



MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx> writes:

> 大まかにはMeadowはstartup時にVirtualAlloc()で、Emacsで使えるaddress空間を
> めいっぱいReserveしようとします。その後、gmalloc/r_alloc経由でやってくる
> morecoreから呼び出されるsbrk()呼び出しで、Reserveされた領域を少しづつcommit
> していくというapproachを取っています。
> 
> そういうわけで、Portable Dumperでは、Reserveされた領域の先頭部分を
> Memory Mapped Fileに割り当てるという作業をすれば良いと思います。いまは
> dumpされたheapをそのまま貼り付けているんですが。
> 
> しかし、ここで確か落とし穴があって、Windows9x系ではここでMMFが(エンロン騒ぎで
> 落ちている某Fundを思い出すな。)うまく動かないので、Windows9x系では、ReadFileで
> ごまかす必要があったと思います。

手元では Meadow 1.15pre1 の portable dumper 版が一応動いてい
るように見えますので、それを今日か明日に Meadow の CVS に
commit します (専用 branch に)。Windows の方は問答無用で 
malloc & read しているので、memory mapped file の実装の方は
よろしくお願いします。
# もし MMF で貼り付ける address がほぼ固定されるのであれば、
# PDUMP_OFFSET で今は hard code している値を変更できるように
# すると、load 時に relocate しなくて良くなってちょっと速く
# なるかもしれません。

-- 
Yoshiki Hayashi