Re: Undumpable object type : buffer, extent
"Stephen J. Turnbull" <[email protected]>
| Newsgroups | gmane.emacs.xemacs.design |
|---|---|
| Organization | The XEmacs Project |
| Message-ID | <[email protected]> |
>>>>> "Martin" == Martin Stjernholm <[email protected]> writes: Martin> I don't understand how that code affects dumping at all. XEmacs has a "portable dumper" facility, which knows about the representation of many Lisp objects. It serializes them and stores them in a separate "dump file". The process is reversed at execution time. This has given us trivial ports to many platforms (including Darwin) and avoided substantial pain (for example, the "Silence of the Lambs" GNU binutils releases that slice and dice the executable, requiring "ld -nocombreloc", did not affect "pdumped" XEmacs at all). The problem here is that some structures, in particular extents and buffers, cannot be dumped because they currently are implemented to refer to data structures are external to XEmacs (like Xlib's display and window structures). Apparently some of these objects, created by the cc-mode load process, are still somehow accessible to the portable dumper code when `dump-emacs' is called, resulting in a fatal error at dump time because the dump code doesn't know how to handle them. I would guess that what happens with unexec is that these structures are unexec'd into the executable file, constituting a memory leak that occurs before execution :-). I hope they're not accessible from Lisp (although they are accessible to the portable dumper), or I see crashes and data corruption in my crystal ball. Martin> Afaics it's just like any other code, except that it's Martin> executed directly at file load. Would it make any Martin> difference to put it in a function which is then called to Martin> initialize the c-emacs-features constant? Yes, with the caveat that it would have to be called at run-time (eg, from `c-mode'), not at dump-time. -- Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN Ask not how you can "do" free software business; ask what your business can "do for" free software.