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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.